当前位置:Gxlcms > 数据库问题 > sqlserver 抓取所有执行语句 SQL语句分析 死锁 抓取

sqlserver 抓取所有执行语句 SQL语句分析 死锁 抓取

时间:2021-07-01 10:21:17 帮助过:76人阅读

放到数据库表中后,因为是结构化数据,所以分析也特别容易,一下贴一张图.抓取的结果放在表中,是会覆盖原表中的数据.还有它抓取数据中,界面在不断的闪烁.也在列表中增加,如果服务器显卡不佳,一会

就给卡死,所以开启以后直接最小化,抓取完毕直接用任务处理器杀掉进程就行.抓取时间跟你们要分析的片段有关.然后用SQL语句直接查出耗时前10,然后个人认领回去修改就行.我存在本地数据库

名字DataA中的表InitTableInfo,这样我们就可以查询下

use DataA

select top 100 datediff(second, StartTime, EndTime) costtime,
       RowNumber,
       TextData,
       ApplicationName,
       ClientProcessID,
       SPID
  from InitTableInfo
 where StartTime is not null
   and EndTime is not null
 order by costtime desc

以下是结果展示

技术图片

第一个是花费的时间,还有对应的语句,以及一些额外的信息.可以看到一些用时最大的达到20多秒.很吓人的额.这样贴出来让个人认领去修改.达到提升执行效率的目的.

2.死锁

程序运行中一些关键模块,比如会员积分和金额代金券等,有些人写的因为不够注意或者当时水平不行,容易些一些死锁.这样我们需要有一个分析的路径.

如果再程序中加入try catch来捕获,自己写的熟悉的模块还好,如果是别人写的另外时间紧任务重.你一时发现不了,你就可以启用死锁了

技术图片

deadlock graph 会把找到的deadlock放到一个xdl文件中,这玩意用文件夹也打的开,可以分别存储每个deadlock发生的语句和占用的资源.这时间你就可以根据这玩意处理了.

一般处理死锁是相同顺序的读写\优化索引和最小限度的使用表里的数据,对于抓取数据,进行使用行级锁和页级锁.对于非必要的数据进行脏读.单独说又是很多了.这里只介绍工具

保存好的死锁文件,可以送给你的各位同事,

 

sqlserver 抓取所有执行语句 SQL语句分析 死锁 抓取

标签:src   try catch   code   tor   pre   class   spi   很多   覆盖   

人气教程排行