慢查询日志是用来记录在 SQL Server 中执行时间超过指定时间的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率低,以便进行优化。通常,SQL Server 慢查询日志是排查问题的 SQL 语句,以及检查当前 SQL Server 性能的一个重要功能。
本文为您介绍通过控制台查询和下载慢查询日志。
说明:
日志时间默认为北京时间,若修改了默认时区,则日志数据的存储时间显示为实例服务器所在时区时间,但控制台显示会是北京(UTC+8)时间。
SQL Server 慢查询相关说明
慢查询日志默认开启采集,不支持关闭。
慢查询采集阈值默认为1秒(1秒=1000毫秒),超过1秒的执行 SQL 会被记录为慢查询日志。
慢查询日志文件默认每5分钟采集一次,即每5分钟内,超过1秒的执行 SQL 均会被记录。
慢查询日志保留时间默认为7天,到期后自动删除。
慢日志文件包含的字段说明
字段名称 | 描述 |
client_app_name | 客户端应用程序名称。 |
client_hostname | 客户端主机名。 |
cpu_time | 远程过程调用所使用的 CPU 时间,单位:微秒。 |
duration | 完成远程过程调用所需时间,单位:微秒。 |
last_row_count | 最后执行的 SQL 语句返回的行数。 |
line_number | SQL 语句在源文件中的行号。 |
logical_reads | 执行期间进行的逻辑读取次数。 |
offset | SQL 语句在源文件中的起始偏移量。 |
offset_end | SQL 语句在源文件中的结束偏移量。 |
parameterized | 指示 SQL 语句是否已参数化。 |
physical_reads | 执行期间进行的物理读取次数。 |
row_count | 返回的行数。 |
spills | 查询执行期间溢出数据库写入的页数。 |
sql_text | SQL 语句的文本内容。 |
statement | 执行的 SQL 语句。 |
username | 执行操作的用户名。 |
writes | 查询执行期间进行的写入次数。 |
connection_reset_option | 用于重置连接的选项。此此段仅适用于重置连接远程过程调用。 |
client_connection_id | 在连接时客户端提供的可选标识符。 |
data_stream | 用于重播跟踪的远程过程调用二进制流。 |
database_name | 数据库名称。 |
object_name | 远程过程调用所引用的对象名称。 |
output_parameters | 从远程过程调用返回的输出参数。 |
query_plan_hash | 查询计划哈希,使用此哈希可以标识相似的查询执行计划。您可以使用查询计划哈希找到具有类似执行计划的查询的累计开销。 |
result | 远程过程调用的返回值。 |
操作步骤
1. 登录 SQL Server 控制台。
2. 在上方选择地域,找到需要查询或下载慢查询日志的实例,单击实例 ID 或在其操作列单击管理,进入实例管理页。
3. 在实例管理页,选择操作日志 > 慢查询日志,可以查看慢查询日志列表。
支持查看的字段信息为:文件名、文件生成开始时间、文件生成结束时间、文件大小、操作(下载)。
支持根据时间范围检索慢日志:近5分钟、近15分钟、近半小时、近1小时、近3小时、近24小时、今天、昨天、近3天、近7天、近30天以及自定义时间段。
4. 在操作列单击下载,即可下载慢查询日志文件。
相关 API
API | 描述 |
接口(DescribeSlowlogs)用于获取慢查询日志文件信息。 |