合 MSSQL查询历史SQL语句的执行计划
Tags: MSSQLSQL Server执行计划
简介
视图 sys.dm_exec_query_stats
是 SQL Server 中的一个动态管理视图(Dynamic Management View,DMV)。它提供了有关执行过的查询的性能统计信息,包括查询的执行次数、持续时间、逻辑读取次数、物理读取次数等。
sys.dm_exec_query_stats
视图的列提供了以下重要的统计信息:
sql_handle
:查询的标识符,可用于从其他 DMV 中获取查询计划信息。execution_count
:查询执行的次数。total_worker_time
:查询的总工作时间(以微秒为单位)。total_logical_reads
:查询的总逻辑读取次数。total_physical_reads
:查询的总物理读取次数。total_logical_writes
:查询的总逻辑写入次数。total_elapsed_time
:查询的总经过时间(以微秒为单位)。
通过查询 sys.dm_exec_query_stats
视图,你可以获取查询的执行统计信息,并对查询的性能进行分析和优化。你可以根据需要使用其他 DMV(如 sys.dm_exec_requests
和 sys.dm_exec_sql_text
)联接查询,获取更详细的查询信息,如执行计划和查询文本等。
请注意,sys.dm_exec_query_stats
视图中的统计信息在 SQL Server 重启或缓存清除后会重置。因此,如果你需要长期跟踪和存储查询的性能统计信息,建议将其导出到其他表或存储过程中进行保存。
视图 sys.dm_exec_requests
是 SQL Server 中的一个动态管理视图(Dynamic Management View,DMV)。它提供了有关当前执行的请求(包括查询、备份、还原等)的信息,包括请求的状态、等待信息、执行进度等。
sys.dm_exec_requests
视图的列提供了以下重要的信息:
session_id
:请求所属的会话标识符。request_id
:请求的标识符,唯一标识一个请求。start_time
:请求的开始时间。status
:请求的状态,如运行中(RUNNING)、等待(WAITING)、完成(COMPLETED)等。command
:请求执行的命令类型,如 SELECT、INSERT、UPDATE、BACKUP 等。blocking_session_id
:如果请求被阻塞,该列指示阻塞请求的会话标识符。wait_type
:如果请求正在等待某个资源,该列指示等待的资源类型。wait_time
:请求等待的时间长度(以毫秒为单位)。cpu_time
:请求已使用的 CPU 时间(以毫秒为单位)。total_elapsed_time
:请求的总经过时间(以毫秒为单位)。percent_complete
:请求的完成百分比。
通过查询 sys.dm_exec_requests
视图,你可以获取当前执行请求的信息,包括请求的状态、执行进度、等待情况等。这些信息对于监视和诊断正在执行的请求以及优化查询性能非常有用。