sql-server - 在特定数据库中查找具有索引扫描的查询
问题描述
我如何使用查询存储(不是 dm_exec 表)在 sql 中找到特定数据库中的索引扫描的查询。我需要查询才能找到。
解决方案
以下查询可能有助于解决您的问题
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%'