首页 > 解决方案 > SQL Server:如何查看对表的查询统计信息

问题描述

我想找出最常对表进行哪些查询。这些统计信息存储在 SQL Server 的什么位置?

标签: sql-serverstatisticsdatabase-administration

解决方案


除了使用扩展事件之外,SQL Server 还提供对系统动态管理视图 (DMV) 中这些统计信息的访问。这些视图是暂时的,不会在重新启动后持续存在。

有许多使用这些视图作为临时机制的示例,用于查找对表进行了哪些查询。

一些可以帮助您入门的方法:

SELECT * FROM sys.dm_exec_query_stats

SELECT TOP 1 * FROM sys.dm_exec_query_stats T1
CROSS APPLY sys.dm_exec_query_plan (T1.plan_handle )

SELECT TOP 1 * FROM sys.dm_exec_query_stats T1
CROSS APPLY sys.dm_exec_SQL_text (T1.SQL_handle )

请参阅https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-query-stats-transact-sql

根据 SQL Server 的版本,您可能希望使用管理数据仓库、查询存储或第 3 方监控工具将此数据保存到管理数据库。

请参阅https://docs.microsoft.com/en-us/sql/relational-databases/data-collection/configure-the-management-data-warehouse-sql-server-management-studio


推荐阅读