查询耗时的SQL语句

Posted 呼哈嘿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查询耗时的SQL语句相关的知识,希望对你有一定的参考价值。

语句示例:

SELECT TOP 100
        s2.dbid ,
        s1.total_worker_time / s1.execution_count AS [Avg CPU Time] ,
        ( SELECT TOP 1
                    SUBSTRING(s2.text, statement_start_offset / 2 + 1,
                              ( ( CASE WHEN statement_end_offset = -1
                                       THEN ( LEN(CONVERT(NVARCHAR(MAX), s2.text))
                                              * 2 )
                                       ELSE statement_end_offset
                                  END ) - statement_start_offset ) / 2 + 1)
        ) AS sql_statement ,
        execution_count ,
        plan_generation_num ,
        last_execution_time ,
        total_worker_time ,
        last_worker_time ,
        min_worker_time ,
        max_worker_time ,
        total_physical_reads ,
        last_physical_reads ,
        min_physical_reads ,
        max_physical_reads ,
        total_logical_writes ,
        last_logical_writes ,
        min_logical_writes ,
        max_logical_writes
FROM    sys.dm_exec_query_stats AS s1
        CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2
WHERE   s2.objectid IS NULL
ORDER BY s1.total_worker_time DESC;

查询结果见下图:

字段说明 见下图(更多信息见:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2012/ms189741(v=sql.110)):

以上是关于查询耗时的SQL语句的主要内容,如果未能解决你的问题,请参考以下文章

利用SQL活动和监视器找出耗时与占用CPU较高的不良SQL语句

Microsoft SQL Server 代码片段收集

oracle如何抓取耗时最多的sql语句或过程

Oracle 中最耗时的 5 个 SQL 查询

数据库查询性能 LinqDB vs Sql查询

SqlServer查看表存储过程耗时查询当前进程开销较大的语句