- 文档首页
数据库工作台
veDB MySQL 用户指南
运维管理
观测诊断
SQL 洞察与审计管理
SQL 洞察与审计管理
数据库工作台 DBW 提供 SQL 洞察与审计功能,该功能可以捕获、审查和分析所有的 SQL 语句,以此来帮助您提升数据库的性能和稳定性。本文介绍 SQL 洞察与审计功能的注意事项、优势和开启、关闭、查看的操作步骤。
背景信息
SQL 洞察与审计包含数据库审计和全量 SQL 洞察两个功能。SQL 洞察与审计以数据库审计为基础,因此在全量 SQL 洞察时,默认同步开启数据库审计。
SQL 洞察与审计功能支持自动记录和分析数据库内核生成的 SQL 语句,包括执行账号、IP 地址和执行详情等信息。其中 SQL语句类型包括 SELECT、INSERT、UPDATE、DELETE、ALTER、CREATE、DROP、RENAME、TRUNCATE 和 OTHER(其他全部 SQL 类型)。
目前数据库审计已在全部地域上线,全量 SQL 洞察功能仅在中国地域华北2(北京)、华东2(上海)、华南1(广州),以及海外地域亚太东南(柔佛)发布上线。关于 SQL 洞察与审计的计费信息,请参见计费项与价格。 优势
- CPU 消耗低:SQL 语句是数据库内核生成的,对系统的 CPU 资源消耗非常低。
- 提供全面视角:SQL 洞察与审计可以捕获和分析所有在数据库实例中运行的所有 SQL 语句,为您提供全面的视角,可以用于发现数据库实例的性能瓶颈。
- 问题定位和诊断:通过对实时监控和历史趋势的分析,SQL 洞察与审计可以帮助您定位和诊断数据库实例的问题,例如慢查询、并发死锁等。
- 优化数据库结构:SQL 洞察与审计功能可提供查看哪些表被经常使用,哪些 SQL 语句最耗费资源等信息,从而帮助您改进数据库的结构。
- 提升数据库的可用性和稳定性:SQL 洞察与审计可以帮助您更好地了解数据库实例的整体运行状况,从而提升数据库的可用性和稳定性。
注意事项
- SQL 洞察与审计的数据基于数据库内核分析生成,其准确性可能受以下因素影响:
- 查询结果集过大时,可能导致部分信息统计不完整或不准确。
- 存储位置:SQL 审计数据由 DBW 提供存储,不占用数据库实例自身存储空间。
- 分层存储策略超出标准保留期限的审计日志将自动转存至低频存储:
- 低频存储单价显著低于标准存储,适用于长期归档、访问频率低的历史日志。
- 虽读取时可能产生少量 Retrieval(取回)费用,但整体成本远低于长期使用标准存储。
- 在保障数据可查性的前提下,有效降低长期存储开支。
- 开启 SQL 洞察与审计时,系统将自动启用 V2 审计。
- 关闭 SQL 洞察与审计后,所有历史审计数据将被永久清除。
- 请务必在关闭前将所需数据下载至本地,避免不可逆的数据丢失。
- 若数据库实例被删除,该实例关联的 SQL 洞察与审计功能将自动关闭并清空数据。
- 系统最多记录 8KB(8192 字节) 的 SQL 语句,超出部分将被截断。实际可记录长度还受实例参数控制:
- 当配置参数 > 8KB 时,仍以 8KB 为上限。
说明
由于系统在采集时会添加内部前缀标识,实际可记录的 SQL 长度略小于设定值。
- 系统下载的全量 SQL 文件采用 .gz(Gzip)格式进行压缩。当您使用的是 macOS 系统时,需根据以下提示解压下载后的文件:
- 使用系统自带的 gzip 或 gunzip 命令行工具解压:打开终端 Terminal 使用系统自带的 gzip 或 gunzip 命令行工具进行解压。命令格式为 gzip -d 你的文件名.gz 或 gunzip 你的文件名.gz。
- 使用 tar 工具解压:下载安装 tar 工具进行解压。命令格式为 tar -xz --force-local -f 文件名.gz。
计费规则:
- 推广期后:按实际使用时长计费,详细信息,请参见计费项与价格。
前提条件
- 已创建云数据库 veDB MySQL 版实例。详细操作,请参见创建实例。
开启 SQL 洞察与审计
-
- 在页面右上角的下拉列表中,选择目标数据库类型即云数据库 veDB MySQL 版。
设置 SQL 洞察与审计
- 在页面右上角的下拉列表中,选择目标数据库类型即云数据库 veDB MySQL 版。
查看全量 SQL 洞察信息
说明
- 当 SQL 语句执行成功时,仅表示该 SQL 语句在执行过程中未出现异常且已顺利完成执行。例如,在发生事务回滚的情况下,若事务中的单条 SQL 执行成功且无异常,则该条 SQL 会被判定为执行成功。
- 查询 SQL 洞察与审计信息时,仅支持在数据库实例 SQL 存储时长范围内设置任意的查询开始时间,查看最多 24 小时的数据。如需查询更大时间范围的 SQL 记录,建议您导出后进行查询。导出功能会异步导出日志,适合大时间范围内的查询。
- 在 SQL 洞察与审计功能中不仅支持查看全量 SQL 的趋势、SQL 模板还包括 SQL 明细。
- 在页面右上角的下拉列表中,选择目标数据库类型即云数据库 veDB MySQL 版。
- 在 SQL 洞察与审计页签,查看全量 SQL 洞察信息、SQL 明细和 SQL 写分析,具体如下所示。
在全量 SQL 洞察页签的全量 SQL 洞察子页签,查看实例内 SQL 的发展趋势和 SQL 模板列表。同时,也可以按需选择实例节点查看指定节点的全量 SQL 洞察信息。具体如下所示:
- 在全量 SQL 洞察页签的全量 SQL 洞察子页签,按需选择需要查看全量 SQL 洞察的时间范围,您可以在数据库实例 SQL 存储时长范围内设置任意的查询开始时间,查看最多 24 小时的数据。由于 SQL 洞察记录所有数据库行为,会记录大量 SQL 语句,在线查询选择时间范围过大,会导致长时间没有返回查询结果,甚至查询超时。
- 查看选定时间段内实例的 SQL 发展趋势和 SQL 模板列表,具体如下所示:
- 全量 SQL 趋势:在指定时间段内,可查看 SQL 在执行耗时的性能分析和统计,在全量 SQL 趋势区域,您可以查看以下信息:
- 执行耗时阶段:支持按需勾选查看包括 CPU Time、ThreadScheduleTime、ThreadWaitTime、RowLockWaitTime、MDLWaitTime、LatchWaitTime、SocketSendTime、CCLWaitTime 和 TRXCommitTime 指标项在各时间点的发展趋势。
- 执行耗时分布:展示选定时间段内,所有 SQL 的执行耗时分布,将执行耗时分为 7 个区间,每分钟计算一次,具体如下所示:
- (0,1]ms:表示满足 0ms < 执行耗时 ≤ 1ms SQL 执行次数占比。
- (1,2]ms:表示满足 1ms < 执行耗时 ≤ 2ms SQL 执行次数占比。
- (2,3]ms:表示满足 2ms < 执行耗时 ≤ 3ms SQL 执行次数占比。
- (3,10]ms:表示满足 3ms < 执行耗时 ≤ 10ms SQL 执行次数占比。
- (10,100]ms:表示满足 10ms < 执行耗时 ≤ 100ms SQL 执行次数占比。
- (0.1,1]s:表示满足 0.1s < 执行耗时 ≤ 1s SQL 执行次数占比。
- >1 s:表示满足 1s < 执行耗时 SQL 执行次数占比。
- 执行次数:执行时间段内 SQL 执行次数的统计。支持查看各时间点的执行总次数的发展趋势。
- SQL 模板列表:在 SQL 模板列表区域,支持通过包括数据库名、表名、SQL 类型、平均扫描行数及执行次数维度进行精准筛选。
- 按需求筛选后,列表将展示丰富的性能指标包括平均 SQL 执行耗时、SQL 耗时(ms)、SQL 模板、SQL 类型、数据库名称、表名、SQL 执行总耗时、执行次数、CPU 总耗时、平均 CPU 耗时、平均 innoDB 锁等待耗时、平均 MDL 锁等待耗时、平均 Latch 等待耗时、平均事务提交耗时、平均 SQL 限流等待耗时、平均 Socket 发送数据耗时、平均线程调度等待耗时、平均线程等待耗时、平均影响行数、平均扫描行数、平均返回行数、平均发送字节数、平均逻辑页读取次数、平均 IO 读取字节数、平均 IO 读页面数量、平均磁盘临时表数量。
- 单击 SQL 模板,在 SQL 详情控制面板,查看该 SQL 模板的执行次数、执行耗时、影响行数、返回行数、SQL 模板、SQL 文本和 SQL 优化,您也可以单击收藏图标,便于后续查看目标 SQL 模板。
说明
- SQL 执行总耗时 = 平均 SQL 执行耗时 * 执行次数。
- CPU 总耗时 = 平均 CPU 耗时 * 执行次数。
- 在 SQL 优化建议对话框,查看 SQL 优化建议包括执行的 SQL 语句、执行计划、优化建议包括索引优化和 SQL 改写。
- 收藏 SQL 模板:在 SQL 模板列表区域,单击目标 SQL 模板操作列的收藏图标,收藏 SQL 模板。
- 查看收藏的 SQL 模板:在 SQL 模板列表区域,单击我收藏的,可以查看您在所有 SQL 模板列表中收藏的 SQL 模板,您也可以单击目标 SQL 模板的操作列,取消您收藏的 SQL 模板。
- 在全量 SQL 洞察子页签,勾选时间对比,按需选择需要对比查看全量 SQL 洞察的时间段,查看执行耗时阶段、执行耗时分布、执行次数和对比时间段内的 SQL 模板列表等信息。
说明
- ThreadScheduleTime:内核维度的运行时(RT)时间。
- 您也可以单击目标 SQL 文本操作列的查看执行计划,在执行计划对话框查看更多信息。
通过写分析,您可以全面监控和分析数据库的写入操作。 在写分析子页签,您可以按需查看指定时间(按需选择需要查看全量 SQL 写分析的时间范围,您可以在数据库实例 SQL 存储时长范围内设置任意的查询开始时间,查看最多 24 小时的数据。由于 SQL 洞察记录所有数据库行为,会记录大量 SQL 语句,在线查询选择时间范围过大,会导致长时间没有返回查询结果,甚至查询超时。)、指定数据库和表内数据库的写入操作,包括表名、数据库名称、执行次数、SQL 平均耗时、DML 总执行时间、DML 执行次数、DML 平均执行耗时、DML 平均扫描行、DML 平均影响行数、DML 平均 InnoDB 行锁等待时间、DML 平均 MDL 锁等待时间、DML 最大执行耗时、DDL 总执行时间、DDL 执行次数、DDL 平均执行耗时、DDL 平均扫描行、DDL 平均影响行数、DDL 平均 InnoDB 行锁等待时间、DDL 平均 MDL 锁等待时间和 DDL 最大执行耗时。 同时,您也可以单击目标表的表名,查看关于表的更多信息,具体如下所示:
- DML:在目标表控制面板的 DML 子页签,您可以查看在指定时间内表内执行的 DML 明细,包括 DML 的执行次数、总耗时和影响行数。
- DDL:在目标表控制面板的 DDL 子页签,您可以查看在指定时间内表内执行的 DDL 明细,包括 DDL 的执行次数、总耗时和影响行数。
- SQL 模板列表:在目标表控制面板的 SQL 模板区域,您可以查看在指定时间内表内每个 SQL 模板的平均 SQL 执行耗时、SQL 耗时(ms)、SQL 模板、SQL 类型、数据库名称、表名、SQL 执行总耗时、执行次数、CPU 总耗时、平均 CPU 耗时、平均 innoDB 锁等待耗时、平均 MDL 锁等待耗时、平均 Latch 等待耗时、平均事务提交耗时、平均 SQL 限流等待耗时、平均 Socket 发送数据耗时、平均线程调度等待耗时、平均线程等待耗时、平均影响行数、平均扫描行数、平均返回行数、平均发送字节数、平均逻辑页读取次数、平均 IO 读取字节数、平均 IO 读页面数量、平均磁盘临时表数量。
- 单击 SQL 模板,在 SQL 详情控制面板,查看表级别 SQL 模板的执行次数、执行耗时、影响行数、返回行数、SQL 模板和 SQL 文本。
下载全量 SQL
说明
- 如果要查看或下载导出日志文件,请单击下载图标,然后选择导出历史。
- 系统下载的全量 SQL 文件采用 .gz(Gzip)格式进行压缩。当您使用的是 macOS 系统时,需根据以下提示解压下载后的文件:
- 使用系统自带的 gzip 或 gunzip 命令行工具解压:打开终端 Terminal 使用系统自带的 gzip 或 gunzip 命令行工具进行解压。命令格式为 gzip -d 你的文件名.gz 或 gunzip 你的文件名.gz。
- 使用 tar 工具解压:下载安装 tar 工具进行解压。命令格式为 tar -xz --force-local -f 文件名.gz。
- 在页面右上角的下拉列表中,选择目标数据库类型即云数据库 veDB MySQL 版。
- 在 SQL 洞察与审计页签,按需下载 SQL 数据:
下载所有 TOP SQL
下载所有全量 SQL 明细
下载表内全量 SQL 写分析
- 在全量 SQL 洞察子页签的 SQL 模板区域,单击下载图标。
- 在导出所有 TOP SQL 对话框,按需勾选需要导出的数据库实例字段。
在 SQL 明细子页签,单击下载图标,选择下载类型。
- 在导出数据对话框,按需勾选需要下载审计日志的字段。
- 在导出审计日志对话框,配置相关参数信息,具体如下表所示。
- 在数据库审计页签,单击下载图标,然后选择导出历史。
- 在导出历史对话框,选择状态为已生成的目标任务,单击操作列下的下载文件。
- 在写分析子页签,按需设置时间、数据库名称和表名。
- 在导出所有 TOP SQL 对话框,按需勾选需要导出的列表字段。
Q:数据库审计与 SQL 洞察与审计以及全量 SQL 洞察的关系是?
Q:在 SQL 洞察与审计中,当前只开启了数据库审计,如果想再开启全量 SQL 洞察,如何操作?
最近更新时间:2026.09.01 14:02:00