# 查看全量SQL
#### 操作场景
全量SQL功能支持采集并持久化GaussDB数据库实例上的执行SQL语句，便于用户查看SQL语句的指标统计、执行详情等信息。
支持实例级配置，可设置是否过滤系统用户和默认数据保留天数，并能按需选择要采集的SQL语句类型，以满足用户差异性采集需求。
您还可以通过查询表定义功能识别出SQL文本中的表名信息，并根据表名、Schema名以及库名进行表定义的查询。
#### 前提条件
- 登录账号需要具备授权项"gaussdb:instance:listFullSql"和"gaussdb:instance:operateFullSql"。
- 登录账号需要具备LTS云日志服务的API授权项："lts:groups:\*"、"lts:topics:\*"和"lts:logs:list"。
- "全量SQL"和"表定义"为白名单开放。
- 云日志服务LTS状态正常。
- 对接CCMS服务，托管LTS云日志服务对应内置账号。
 
#### 约束限制
- GaussDB实例的数据库引擎版本大于等于V2.0-8.0.1，内核版本大于等于505.0.0，支持开启全量SQL功能。
- GaussDB实例及各采集节点的状态都必须是正常的。
- 全量SQL批量采集上报至云日志服务LTS会存在延迟（最大2分钟） ，并非实时采集。注意，在业务并发高峰期，可能会存在少量数据丢失。
- 最大支持最近30天内的全量SQL数据查询。
- 采集的全量SQL数据超期会自动删除，请根据业务要求，合理设置保留天数，最大不超过30天，最小支持1天。超期数据将不支持查询。
- 全量SQL开启后可能对数据库性能产生短暂影响。
- 开启操作会自动对接云日志服务LTS，采集到的全量SQL记录会不断持久化到LTS中（索引字段占比：100%），会持续产生费用，具体计费可参考LTS的[定价详情](https://www.huaweicloud.com/pricing/calculator.html?tab=detail#/lts)。
- 请确认管理面和实例各节点的时间是同步的（UTC-0时间戳是一致的），最多不超过10秒，否则影响整体功能。
- GaussDB实例删除时，需要先手动关闭全量SQL；如果不再需要使用已采集的全量SQL数据，可登录云日志服务LTS，手动删除对应的日志组或日志流。
- 数据库引擎版本大于等于V2.0-3.208.0，内核版本大于等于503.1.0.SPC1200的实例支持查询表定义。版本号查询方法请参见[查看云数据库GaussDB数据库和内核引擎版本](https://support.huaweicloud.com/productdesc-gaussdb/gaussdb_01_012.html#section2)。
 
#### 开启全量SQL
1. [登录云数据库GaussDB控制台](https://console.huaweicloud.com/gaussdb/?locale=zh-cn#/gaussdb/management/list)。
2. 在"实例管理"页面，选择指定的实例，单击实例的名称，进入实例详情页面。
3. 单击"诊断优化 \> SQL诊断"。
4. 在"全量SQL"页面，单击"开启全量SQL"右侧的![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680012939.png "点击放大")，在弹框中填写全量SQL配置参数。
   
   图1开启全量SQL   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853099.png "点击放大")
   
   - 全量SQL数据默认保留时间：设置采集的全量SQL在云日志服务LTS中的保留天数，过期才会自动清理。默认为7天，可选1\~30。
   
   - 过滤系统用户：开启后，全量SQL采集将会跳过系统用户所执行的SQL记录。默认开启。
   
   - LTS日志组：智能运维特性专用的日志组配置，每个实例均会按需独立设置。开启全量SQL时自动创建，删除实例后，如果不再需要，可登录云日志服务LTS进行删除，详见[删除日志组](https://support.huaweicloud.com/usermanual-lts/lts_04_0003.html#section3)。
   
   - LTS日志流：全量SQL功能专用日志流配置，每个实例均会按需独立设置。开启全量SQL时自动创建，并进行相关配置。
   
   - 采集SQL类型：用于配置需要采集的SQL语句类型。提供了常见的几类SQL类别选择，如果目标SQL类型不在快捷类别选择中，可以通过自定义选项，按需进行添加。
   
   
   
   
5. 单击"开启"，下发全量SQL开启任务。 
   请耐心等待全量SQL开启完成，直至界面页面提示开启成功。
   
   
 
#### 查看全量SQL统计信息
1. [登录云数据库GaussDB控制台](https://console.huaweicloud.com/gaussdb/?locale=zh-cn#/gaussdb/management/list)。
2. 在"实例管理"页面，选择指定的实例，单击实例的名称，进入实例详情页面。
3. 单击"诊断优化 \> SQL诊断 \> 全量SQL"。
4. 在"全量SQL统计"页签，单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773394.png "点击放大")按钮，即可查询归一化SQL的统计数据。默认展示近1小时的数据。
   
   可按需调整搜索条件，以缩小结果范围，便于精确获取目标记录。如调整时间区间，组合过滤SQL文本（不超过5个）、归一化SQL ID以及其他扩展字段。
   图2搜索条件   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773384.png "点击放大")
   
   
   
5. 展开对应行，查看指定的归一化SQL下SQL执行记录的汇总列表。 
   图3查询某个归一化SQL下全量SQL记录列表   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933262.png "点击放大")
   
   - 支持二级列表的过滤查询，以提高搜索精度。
   
   - 界面列表查询不支持后端分页，默认一次性最多返回前200条记录数据（由系统参数"LIST_FULL_SQL_PAGE_LIMIT"控制，默认为200），并由前端进行分页展示，如果实际条目数超过200条，建议缩小搜索范围，以查找目标记录。
   
   - 目前的排序功能是基于界面展示的最多200条记录进行的缓存排序。
   
   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
   全量SQL统计视图要素：
   - 展示基于归一化SQL ID（对应内核字段：unique_sql_id）的SQL分组统计数据。
   
   - 展开"归一化SQL ID"，可下钻展示对应SQL ID在执行入口组件上的SQL记录列表。
   
   - 执行入口组件是业务SQL在实例中最先执行的组件。分布式实例为CN，集中式实例为DN。且对应执行记录中应用名称不以cn_开头。
   
   - 对于P阶段的预编译SQL（对应唯一SQL ID为0），不会进行展示。
    
   
   
6. 单击操作列中的"查看SQL"按钮，可查看采集的SQL和解析后的原始SQL。 
   开启track_stmt_parameter参数后，会把SQL文本中的变量替换成真实值，展示原始的SQL。对于track_stmt_parameter参数关闭时采集的SQL文本，无法获取到SQL参数变量的值，展示的内容为空。如何修改参数请参考[修改实例参数](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_166.html#ZH-CN_TOPIC_0000002649932710__section267472834710)。
   
   
7. 单击操作列中的"更多 \> 查看更多"按钮，即可查看该行SQL记录的其他参数字段信息，仅包含SQL在入口组件上执行的详细信息。 
   图4查询SQL在入口组件上执行详情信息   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933266.png "点击放大")
   
   
   
   
8. 单击操作列中的"更多 \> 链路详情"，查看SQL完整链路在各组件上的执行记录详情。对于分布式实例，一般会展示SQL在CN和DN上的执行记录。
9. 单击操作列中的"更多 \> 查看耗时"，即可查看该行SQL记录在入口组件上的耗时信息。 
   图5查询SQL在入口组件上的耗时统计   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680012945.png "点击放大")
   
   对于SQL完整链路的耗时分析，可单击"更多 \> 链路耗时"查看。详情可参考[SQL全链路分析](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_702.html)。
   
   
 
#### 查看全量单条SQL列表
1. [登录云数据库GaussDB控制台](https://console.huaweicloud.com/gaussdb/?locale=zh-cn#/gaussdb/management/list)。
2. 在"实例管理"页面，选择指定的实例，单击实例的名称，进入实例详情页面。
3. 单击"诊断优化 \> SQL诊断 \> 全量SQL"。
4. 进入"全量单条SQL"页签，单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773392.png "点击放大")按钮，即可查询指定区间内的全量SQL记录。默认展示近1小时的数据。
   
   图6查询全量单条SQL数据列表   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680012947.png "点击放大")
   
   可按需调整搜索条件，以缩小结果范围，便于精确获取目标记录。如调整时间区间，组合过滤SQL文本、有效DB时间等。
   - SQL文本，支持多次合并查询，可以连续多次输入，不超过5个。
   
   - 有效DB时间、CPU执行时间、IO执行时间、执行器内执行时间支持区间范围过滤。
   
   
   图7搜索条件   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853115.png "点击放大")
   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
   全量单条SQL视图要素：
   - 展示的是SQL在执行入口组件上的记录 。对于分布式实例，仅展示CN组件上的SQL记录。
   
   - 单击"唯一SQL ID"，即可查询该SQL的完整执行链路详情。对于分布式实例，会展示在CN和DN上的SQL数据。
   
   - 执行入口组件是业务SQL在实例中最先执行的组件。分布式实例为CN，集中式实例为DN。且对应执行记录中应用名称不以cn_开头。
   
   - 对于P阶段的预编译SQL（对应唯一SQL ID为0），不会进行展示。
   
   - 对于分布式实例，相关信息（如有效DB时间、CPU执行时间、IO执行时间、执行器内执行时间），均为单个组件上的耗时记录，而非该SQL对应完整链路的聚合耗时（各组件上对应时间的累加）。 可通过单击操作列中的"更多\>链路详情"按钮，查看该SQL完整链路的简要耗时统计以及SQL命中率估计。此外，也可以单击操作列中的"更多\>链路耗时"按钮，查看该SQL完整链路的详细耗时分布。
     
    
   
   
5. 单击操作列中的"查看SQL"按钮，可查看采集的SQL和解析后的原始SQL。 
   开启track_stmt_parameter参数后，会把SQL文本中的变量替换成真实值，展示原始的SQL。对于track_stmt_parameter参数关闭时采集的SQL文本，无法获取到SQL参数变量的值，展示的内容为空。如何修改参数请参考[修改实例参数](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_166.html#ZH-CN_TOPIC_0000002649932710__section267472834710)。
   
   
6. 单击操作列中的"更多 \> 查看更多"按钮，即可查看该行SQL记录的其他参数字段信息，仅包含SQL在入口组件上执行的详细信息。 
   图8查询SQL在入口组件上执行详情信息   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933266.png "点击放大")
   
   
7. 单击操作列中的"更多 \> 链路详情"，查看SQL完整链路在各组件上执行记录的详情数据及各阶段耗时等统计记录。对于分布式实例，可以查看该SQL在CN和DN组件上的执行记录详情。 
   图9查询SQL完整链路的阶段耗时统计和执行详情数据   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853097.png "点击放大")
   
   
8. 单击操作列中的"更多 \> 查看耗时"，可以查看该行SQL记录在入口组件上的耗时信息。 
   图10查询SQL在入口组件上的耗时统计   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933272.png "点击放大")
   
   
   
9. 单击操作列中的"更多 \> 链路耗时"按钮，可以查看该SQL记录的完整链路耗时信息，包含在各个组件上的耗时记录分布。 
   图11查询SQL完整链路耗时   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680012941.png "点击放大")
   
   此外，还可以参考[SQL全链路分析](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_702.html)，获取链路参数说明和其他信息。
   
   
 
#### 修改默认配置
1. [登录云数据库GaussDB控制台](https://console.huaweicloud.com/gaussdb/?locale=zh-cn#/gaussdb/management/list)。
2. 在"实例管理"页面，选择指定的实例，单击实例的名称，进入实例详情页面。
3. 单击"诊断优化 \> SQL诊断"。
4. 在"全量SQL"页面，单击"修改默认配置"文本按钮，在弹框中修改全量SQL配置参数。 
   图12修改全量SQL默认配置   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853105.png "点击放大")
   
   
   
5. 单击"修改"，下发全量SQL配置修改任务。
6. 请耐心等待全量SQL配置修改完成，直至页面提示修改成功。
 
#### 关闭全量SQL
1. [登录云数据库GaussDB控制台](https://console.huaweicloud.com/gaussdb/?locale=zh-cn#/gaussdb/management/list)。
2. 在"实例管理"页面，选择指定的实例，单击实例的名称，进入实例详情页面。
3. 单击"诊断优化 \> SQL诊断"。
4. 在"全量SQL"页面，单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853111.png)，然后在弹框中单击"确定"，关闭全量SQL。
5. 请耐心等待全量SQL关闭完成，直至页面提示关闭成功。
 
#### 创建SQL PATCH
1. [登录云数据库GaussDB控制台](https://console.huaweicloud.com/gaussdb/?locale=zh-cn#/gaussdb/management/list)。
2. 在"实例管理"页面，选择指定的实例，单击实例的名称，进入实例详情页面。
3. 单击"诊断优化 \> SQL诊断 \> 全量SQL"。
4. 在"全量SQL统计"页签，单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853117.png "点击放大")展开目标行数据，或进入"全量单条SQL"页签。
5. 对于需要操作的SQL，单击操作列的 "SQL PATCH"，显示"SQL PATCH详情"页面。 
   - 如果没创建SQL PATCH，输入PATCH名称、PATCH内容，单击"创建"，则可创建SQL PATCH。
     图13SQL PATCH   
     ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773386.png "点击放大") 
   
   - 如果已创建SQL PATCH，则显示SQL PATCH信息。
     图14SQL PATCH详情   
     ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853101.png "点击放大")
     - 状态：单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773378.png)，可开启或关闭SQL PATCH。关闭SQL PATCH，状态显示未生效，开启SQL PATCH，状态显示生效中。
     
     - 单击"删除"，则可删除SQL PATCH。
      
   
   
   
   
 
#### 查询表定义
1. [登录云数据库GaussDB控制台](https://console.huaweicloud.com/gaussdb/?locale=zh-cn#/gaussdb/management/list)。
2. 在"实例管理"页面，选择指定的实例，单击实例的名称，进入实例详情页面。
3. 单击"诊断优化 \> SQL诊断 \> 全量SQL"。
4. 在"全量SQL统计"页签，单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853117.png "点击放大")展开目标行数据，或进入"全量单条SQL"页签。
5. 单击"操作"列的"更多 \> 表定义"。在"表定义"页面，查看"识别到的表"。 
   如未识别到表，请单击"添加识别到的表"填写表名后进行表定义查询。如识别结果有误，请单击"编辑"进行修改并保存后再进行表定义查询。
   
   
6. 单击指定表名前的![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853107.png)进行表定义的查询。
   
   图15表定义   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773374.png)
   
   
7. 单击表定义中的SQL语句查看具体的表定义信息。 
   图16表定义具体信息   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773388.png "点击放大")
   
   
 
