博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql server查询IO消耗大的排查sql诊断语句
阅读量:2046 次
发布时间:2019-04-28

本文共 989 字,大约阅读时间需要 3 分钟。

前段时间网站访问量增大,云服务器后台监控告警提示IOPS过大。我使用以下sql语句很快就找到sql server占用IO在的相关功能模块。

 

select top 50     (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,     statement_start_offset as stmt_start_offset, statement_end_offset as stmt_end_offset,substring(sql_text.text, (statement_start_offset/2), case when (statement_end_offset -statement_start_offset)/2 <=0 then 64000else (statement_end_offset -statement_start_offset)/2 end) as exec_statement,  sql_text.text,plan_text.*from sys.dm_exec_query_stats  cross apply sys.dm_exec_sql_text(sql_handle) as sql_textcross apply sys.dm_exec_query_plan(plan_handle) as plan_textorder by --(total_logical_reads + total_logical_writes) /Execution_count Desc (total_logical_reads + total_physical_reads) /Execution_count Desc

 

可以找到avg_pshs_reads比较大的行,从text字段把对应的sql语句赋值出来。

常用的两种解决办法:

1、优化对应的sql语句(比如增加索引)

2、使用缓存

转载地址:http://hyoof.baihongyu.com/

你可能感兴趣的文章
Java集合详解7:一文搞清楚HashSet,TreeSet与LinkedHashSet的异同
查看>>
Java集合详解8:Java集合类细节精讲,细节决定成败
查看>>
Java并发指南1:并发基础与Java多线程
查看>>
Java并发指南2:深入理解Java内存模型JMM
查看>>
Java并发指南3:并发三大问题与volatile关键字,CAS操作
查看>>
Java并发指南4:Java中的锁 Lock和synchronized
查看>>
Java并发指南5:JMM中的final关键字解析
查看>>
Java并发指南6:Java内存模型JMM总结
查看>>
Java并发指南7:JUC的核心类AQS详解
查看>>
Java并发指南8:AQS中的公平锁与非公平锁,Condtion
查看>>
Java网络编程和NIO详解6:Linux epoll实现原理详解
查看>>
Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理
查看>>
Java网络编程与NIO详解8:浅析mmap和Direct Buffer
查看>>
Java网络编程与NIO详解10:深度解读Tomcat中的NIO模型
查看>>
Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)
查看>>
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
查看>>
深入理解JVM虚拟机3:垃圾回收器详解
查看>>
深入理解JVM虚拟机4:Java class介绍与解析实践
查看>>
深入理解JVM虚拟机5:虚拟机字节码执行引擎
查看>>
深入理解JVM虚拟机6:深入理解JVM类加载机制
查看>>