首页 > 数据库 >SqlServer性能检测之Sql语句排查

SqlServer性能检测之Sql语句排查

时间:2024-01-29 14:24:11浏览次数:26  
标签:语句 last Sql offset SqlServer time statement SQL

很多时候,我们在用SQL语句查询数据时,难免会漏掉对SQL语句性能的考虑,所以有时就会造成SqlServer服务占用过高的问题,为了大致排查是哪些SQL语句造成的问题,我们可以通过如下SQL查询出最近所有耗时最大的SQL语句,具体查询SQL语句如下所示:

SELECT s2.dbid,
       s1.sql_handle,
       (
           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,
       last_worker_time '最后执行总耗时(毫秒)',
       last_execution_time '最后执行时间',
       total_worker_time '所有执行总耗时(毫秒)',
       min_worker_time '执行最小耗时(毫秒)',
       max_worker_time '执行最大耗时(毫秒)',
       execution_count,
       plan_generation_num,
       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 last_worker_time DESC,
         s1.sql_handle,
         s1.statement_start_offset,
         s1.statement_end_offset;

执行效果:

image

标签:语句,last,Sql,offset,SqlServer,time,statement,SQL
From: https://www.cnblogs.com/qubernet/p/17994410

相关文章

  • GaussDB(for MySQL)剪枝功能,让查询性能提升70倍!
    作者,祝青平,华为云数据库内核高级工程师。擅长数据库优化器内核研发,9年数据库内核研发经验,参与多个TP以及AP数据库的研发工作。近日,华为云数据库社区下面有这样一条用户提问留言:请问,如何通过MySQL提升DISTINCT,尤其是多表连接下DISTINCT的查询效率?在回答这个问题之前,我们先了解一......
  • MySQL InnoDB MVCC
    MVCC-基本概念当前读读取的是记录的最新版本,读取时还要保证其他并发事务不能修改当前记录,会对读取的记录进行加锁。对于我们日常的操作,如:select...lockinsharemode(共享锁),select...forupdate,update,insert,delete(排他锁)都是一种当前读。快照读简单的selec......
  • MySQL InnoDB事务原理
    事务事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 特性原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。一致性(Consistency):事务完成时,必......
  • Windows安装MySql时出现“Failed to find valid data directory”的错误
    1、......
  • MySql执行Sql语句时出现“MySqlException: Parameter ‘@maxNo‘ must be defined.”
    1、......
  • mysql
    主键为什么推荐使用intlong1、建立主键索引的树,主键如果为int,long,比较大小时,比较快,可以快速定位到需要的数据2、存储小,所以不推荐uuid,uuid查询慢为什么推荐主键自增?1、主键自增时,新插入的数据都是递增的,在维护B+树时,不需要在中间插入值,只需要追加到最后,也就意味着不需要分裂......
  • GaussDB(for MySQL)剪枝功能,让查询性能提升70倍!
    作者,祝青平,华为云数据库内核高级工程师。擅长数据库优化器内核研发,9年数据库内核研发经验,参与多个TP以及AP数据库的研发工作。近日,华为云数据库社区下面有这样一条用户提问留言:请问,如何通过MySQL提升DISTINCT,尤其是多表连接下DISTINCT的查询效率?在回答这个问题之前,我们先了解一下DI......
  • MySQL InnoDB引擎架构
    逻辑存储结构:表空间(ibd文件):一个mysql实例可以对应多个表空间,用于存储记录,索引等数据。段:分为数据段(Leafnodesegment),索引段(Non-leafnodesegment)、回滚段(Rollbacksegment),InnoDB是索引组织表,数据段就是B+树的叶子节点,索引段即为B+树的非叶子节点。段用来管理多个Exte......
  • SqlServer还原数据库出现“无法在服务器上访问指定的路径或文件”提示的解决办法
    1、......
  • mysql锁
    锁分类读锁(共享锁)写锁(排他锁)按照锁的粒度划分全局锁锁整个数据库,一般用于数据迁移、数据备份表锁一般用于altertable、droptable、truncktable、locktable行所select...forudpate、insert、update、delete间隙锁select...fromstudentwhereid>=10and......