首页 > 解决方案 > MSSQL:如何获取读表的统计信息?

问题描述

有没有办法从 mssql 表中获取“选择”的数量?

我的意思是不重写应用程序来记录每个请求或不解析 sql 配置文件日志......

是否有任何内置工具(sql 请求)?

标签: sql-server

解决方案


SQL Server 维护自上次重新启动以来的索引使用统计信息。您可以使用下面查询中的user_reads列来获取所需的统计信息:

SELECT  OBJECT_NAME(ddius.[object_id], ddius.database_id) AS [object_name] ,
        ddius.index_id ,
        ddius.user_seeks ,
        ddius.user_scans ,
        ddius.user_lookups ,
        ddius.user_seeks + ddius.user_scans + ddius.user_lookups 
                                                     AS user_reads ,
        ddius.user_updates AS user_writes ,
        ddius.last_user_scan ,
        ddius.last_user_update
FROM    sys.dm_db_index_usage_stats ddius
WHERE   ddius.database_id > 4 -- filter out system tables
        AND OBJECTPROPERTY(ddius.OBJECT_ID, 'IsUserTable') = 1
        AND ddius.index_id > 0  -- filter out heaps 
        AND database_id = DB_ID()
ORDER BY user_reads  DESC 

推荐阅读