首页 > 解决方案 > 在特定数据库中查找具有索引扫描的查询

问题描述

我如何使用查询存储(不是 dm_exec 表)在 sql 中找到特定数据库中的索引扫描的查询。我需要查询才能找到。

标签: sql-serverindexingsql-query-store

解决方案


以下查询可能有助于解决您的问题

SELECT * FROM (
SELECT 
        databases.name,
    dm_exec_sql_text.text AS TSQL_Text,
    dm_exec_query_stats.creation_time, 
    dm_exec_query_stats.execution_count,
    dm_exec_query_stats.total_worker_time AS total_cpu_time,
    dm_exec_query_stats.total_elapsed_time, 
    dm_exec_query_stats.total_logical_reads, 
    dm_exec_query_stats.total_physical_reads, 
    dm_exec_query_plan.query_plan
FROM sys.dm_exec_query_stats 
CROSS APPLY sys.dm_exec_sql_text(dm_exec_query_stats.plan_handle)
CROSS APPLY sys.dm_exec_query_plan(dm_exec_query_stats.plan_handle)
INNER JOIN sys.databases
ON dm_exec_sql_text.dbid = databases.database_id

) AS TMP_TBL WHERE CAST(query_plan AS nvarchar(max)) LIKE '%Clustered Index Scan%'

推荐阅读