SQL Server 统计后台sql语句执行情况

SELECT TOP 100 
            qs.total_worker_time/1000     AS [总消耗CPU 时间(ms)],
            qs.execution_count             [运行次数],
            qs.total_worker_time / qs.execution_count / 1000  AS [平均消耗CPU 时间(ms)],
            last_execution_time         AS  [最后一次执行时间],
            max_worker_time / 1000  As  [最大执行时间(ms)],
            SUBSTRING(qt.text,qs.statement_start_offset / 2 + 1,
                             (CASE 
                                        WHEN qs.statement_end_offset = -1 
                                            THEN DATALENGTH(qt.text) 
                                        ELSE qs.statement_end_offset 
                                END - qs.statement_end_offset) 
                             / 2 + 1)       AS  [使用CPU的语法],
            qt.text                                    AS  [完整语法],
            dbname=db_name(qt.dbid),
            object_name(qt.objectid, qt.dbid)        ObjectName
FROM sys.dm_exec_query_stats qs WITH (nolock)            
                CROSS apply sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE execution_count > 1 and last_execution_time >= CONVERT(datetime,'2023-09-28 05:00:00',20)            
ORDER BY last_execution_time asc            

你可能感兴趣的:(数据库,sql)