查看資料庫基本運行資訊時 : CPU IO Recompile Select 都是我們要查看的要點。可以利用一下語句進行查看
--CPU
SELECT TOP 10 total_worker_time AS TotalTime, total_worker_time/execution_count AS avg_cpu_cost, plan_handle, execution_count, (SELECT SUBSTRING(text,statement_start_offset/2 + 1, (CASE WHEN statement_end_offset = -1 THEN LEN(CONVERT(NVARCHAR(MAX),text))*2 ELSE statement_end_offset END - statement_start_offset)/2) FROM sys.dm_exec_sql_text(sql_handle))AS query_text FROM sys.dm_exec_query_stats ORDER BY [avg_cpu_cost] DESC
--IO
SELECT TOP 10 (total_logical_reads/execution_count) AS avg_logical_reads, (total_logical_writes/execution_count) AS avg_logical_writes, (total_physical_reads/execution_count) AS avg_phys_reads, execution_count, (SELECT SUBSTRING(text,statement_start_offset/2 + 1, (CASE WHEN statement_end_offset = -1 THEN LEN(CONVERT(NVARCHAR(MAX),text))*2 ELSE statement_end_offset END - statement_start_offset)/2) FROM sys.dm_exec_sql_text(sql_handle))AS query_text FROM sys.dm_exec_query_stats ORDER BY (total_logical_reads+total_logical_writes) DESC
--Recompile
SELECT TOP 10 plan_generation_num,execution_count, (SELECT SUBSTRING(text,statement_start_offset/2 + 1, (CASE WHEN statement_end_offset = -1 THEN LEN(CONVERT(NVARCHAR(MAX),text))*2 ELSE statement_end_offset END - statement_start_offset)/2) FROM sys.dm_exec_sql_text(sql_handle))AS query_text FROM sys.dm_exec_query_stats WHERE plan_generation_num >1 ORDER BY plan_generation_num DESC
--Select
SELECT TOP 10 total_worker_time/execution_count AS avg_cpu_cost,plan_handle, execution_count, (SELECT SUBSTRING(text,statement_start_offset/2 + 1, (CASE WHEN statement_end_offset = -1 THEN LEN(CONVERT(NVARCHAR(MAX),text))*2 ELSE statement_end_offset END - statement_start_offset)/2) FROM sys.dm_exec_sql_text(sql_handle))AS query_text FROM sys.dm_exec_query_stats ORDER BY execution_count DESC --本篇文章轉自: