检测Sql Server服务器SQL语句执行情况
1、查找目前SQL Server所执行的SQL语法,并展示资源情况:
|  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29 | SELECTs2.dbid ,         DB_NAME(s2.dbid) AS[数据库名] ,         --s1.sql_handle ,         ( SELECTTOP1                     SUBSTRING(s2.text, statement_start_offset / 2 + 1,                               ( ( CASEWHENstatement_end_offset = -1                                        THEN( LEN(CONVERT(NVARCHAR(MAX), s2.text))                                               * 2 )                                        ELSEstatement_end_offset                                   END) - statement_start_offset ) / 2 + 1)         ) AS[语句] ,         execution_count AS[执行次数] ,         last_execution_time AS[上次开始执行计划的时间] ,         total_worker_time AS[自编译以来执行所用的 CPU 时间总量(微秒)] ,         last_worker_time AS[上次执行计划所用的 CPU 时间(微秒)] ,         min_worker_time AS[单次执行期间曾占用的最小 CPU 时间(微秒)] ,         max_worker_time AS[单次执行期间曾占用的最大 CPU 时间(微秒)] ,         total_logical_reads AS[总逻辑读] ,         last_logical_reads AS[上次逻辑读] ,         min_logical_reads AS[最少逻辑读] ,         max_logical_reads AS[最大逻辑读] ,         total_logical_writes AS[总逻辑写] ,         last_logical_writes AS[上次逻辑写] ,         min_logical_writes AS[最小逻辑写] ,         max_logical_writes AS[最大逻辑写] FROMsys.dm_exec_query_stats ASs1         CROSSAPPLY sys.dm_exec_sql_text(sql_handle) ASs2 WHEREs2.objectid ISNULL ORDERBYlast_worker_time DESC | 
2、展示耗时查询:
|  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30 | -- List expensive queries  DECLARE@MinExecutions int;  SET@MinExecutions = 5    SELECTEQS.total_worker_time ASTotalWorkerTime        ,EQS.total_logical_reads + EQS.total_logical_writes ASTotalLogicalIO        ,EQS.execution_count AsExeCnt        ,EQS.last_execution_time ASLastUsage        ,EQS.total_worker_time / EQS.execution_count asAvgCPUTimeMiS        ,(EQS.total_logical_reads + EQS.total_logical_writes) / EQS.execution_count          ASAvgLogicalIO        ,DB.nameASDatabaseName        ,SUBSTRING(EST.text                  ,1 + EQS.statement_start_offset / 2                  ,(CASEWHENEQS.statement_end_offset = -1                          THENLEN(convert(nvarchar(max), EST.text)) * 2                          ELSEEQS.statement_end_offset END                  - EQS.statement_start_offset) / 2                  ) ASSqlStatement        -- Optional with Query plan; remove comment to show, but then the query takes !!much longer time!!        --,EQP.[query_plan] AS [QueryPlan]  FROMsys.dm_exec_query_stats ASEQS       CROSSAPPLY sys.dm_exec_sql_text(EQS.sql_handle) ASEST       CROSSAPPLY sys.dm_exec_query_plan(EQS.plan_handle) ASEQP       LEFTJOINsys.databases ASDB           ONEST.dbid = DB.database_id       WHEREEQS.execution_count > @MinExecutions        ANDEQS.last_execution_time > DATEDIFF(MONTH, -1, GETDATE())  ORDERBYAvgLogicalIo DESC         ,AvgCPUTimeMiS DESC | 
3、当前进程及其语句:
|  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19 | -- Current processes and their SQL statements  SELECTPRO.loginame ASLoginName        ,DB.nameASDatabaseName        ,PRO.[status] asProcessStatus        ,PRO.cmd ASCommand        ,PRO.last_batch ASLastBatch        ,PRO.cpu ASCpu        ,PRO.physical_io ASPhysicalIo        ,SES.row_count AS[RowCount]        ,STM.[text] ASSQLStatement  FROMsys.sysprocesses ASPRO       INNERJOINsys.databases ASDB           ONPRO.dbid = DB.database_id       INNERJOINsys.dm_exec_sessions ASSES          ONPRO.spid = SES.session_id       CROSSAPPLY sys.dm_exec_sql_text(PRO.sql_handle) ASSTM       WHEREPRO.spid >= 50  -- Exclude system processes  ORDERBYPRO.physical_io DESC         ,PRO.cpu DESC; | 
4、存储过程执行情况:
|  1  2  3  4  5  6  7  8  9  10  11  12  13  14 | -- Stored Procedure Execution Statistics  SELECTISNULL(DBS.name, '') ASDatabaseName        ,OBJECT_NAME(EPS.object_id, EPS.database_id) ASObjectName        ,EPS.cached_time ASCachedTime        ,EPS.last_elapsed_time ASLastElapsedTime        ,EPS.execution_count ASExecutionCount        ,EPS.total_worker_time / EPS.execution_count ASAvgWorkerTime        ,EPS.total_elapsed_time / EPS.execution_count ASAvgElapsedTime        ,(EPS.total_logical_reads + EPS.total_logical_writes)         / EPS.execution_count ASAvgLogicalIO  FROMsys.dm_exec_procedure_stats ASEPS       LEFTJOINsys.databases ASDBS           ONEPS.database_id = DBS.database_id  ORDERBYAvgWorkerTime DESC; | 
5、开销较大的查询:
|  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21 | /* 开销较大的查询 */ SELECTss.SUM_execution_count ,         t.text ,         ss.SUM_total_elapsed_time ,         ss.sum_total_worker_time ,         ss.sum_total_logical_reads ,         ss.sum_total_logical_writes FROM( SELECTS.plan_handle ,                     SUM(s.execution_count) SUM_Execution_count ,                     SUM(s.total_elapsed_time) SUM_total_elapsed_time ,                     SUM(s.total_worker_time) SUM_total_worker_time ,                     SUM(s.total_logical_reads) SUM_total_logical_reads ,                     SUM(s.total_logical_writes) SUM_total_logical_writes           FROMsys.dm_exec_query_stats s           GROUPBYS.plan_handle         ) ASss         CROSSAPPLY sys.dm_exec_sql_text(ss.plan_handle) t ORDERBYsum_total_logical_reads DESC | 
|  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21 | select er.session_id, cast(csql.text AS varchar(255)) AS CallingSQL from master.sys.dm_exec_requests er WITH (NOLOCK) CROSS APPLY fn_get_sql (er.sql_handle) csql where er.session_id =309 | 
检测Sql Server服务器SQL语句执行情况的更多相关文章
- 使用 sql server 默认跟踪分析执行的 SQL 语句
		如果没有启用 SQL SERVER 的跟踪器来跟踪 SQL SERVER 的 SQL 执行情况,又想查最近的 SQL 执行情况,网上一般说是使用 LogExprorer 这个工具,网上找了这个工具很久 ... 
- sql server中如何查看执行效率不高的语句
		sql server中,如果想知道有哪些语句是执行效率不高的,应该如何查看呢?下面就将为您介绍sql server中如何查看执行效率不高的语句,供您参考. 在测量功能时,先以下命令清除sql se ... 
- Sql server的Merge语句,源表中如果有重复数据会导致执行报错
		用过sql server的Merge语句的开发人员都应该很清楚Merge用来做表数据的插入/更新是非常方便的,但是其中有一个问题值得关注,那就是Merge语句中的源表中不能出现重复的数据,我们举例来说 ... 
- [SQL] sql server中如何查看执行效率不高的语句
		sql server中,如果想知道有哪些语句是执行效率不高的,应该如何查看呢?下面就将为您介绍sql server中如何查看执行效率不高的语句,供您参考.在测量功能时,先以下命令清除sql serve ... 
- Linux下用freetds执行SQL Server的sql语句和存储过程
		Linux下用freetds执行SQL Server的sql语句和存储过程 http://www.linuxidc.com/Linux/2012-06/61617.htm freetds相关 http ... 
- SQL Server查看Sql语句执行的耗时和IO消耗
		原文:SQL Server查看Sql语句执行的耗时和IO消耗 在做系统过程中,经常需要针对某些场景进行性能优化,那么如何判定性能优化的效果呢?肯定需要知道优化之前Sql语句的耗时和优化之后Sql语句的 ... 
- SQL Server服务器名称与默认实例名不一致的修复方法
		SQL Server服务器名称与默认实例名不一致的修复方法 分类: 个人累积 SQl SERVER 数据库复制2011-08-10 09:49 10157人阅读 评论(0) 收藏 举报 sql ser ... 
- SQL SERVER  作业(或叫执行计划)
		如果在SQL Server 里需要定时或者每隔一段时间执行某个存储过程或3200字符以内的SQL语句时,可以用管理->SQL Server代理->作业来实现. 1.管理->SQL S ... 
- SQL Server经典sql语句大全(转)
		一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ... 
随机推荐
- Android-贪吃蛇小游戏-分析与实现-Kotlin语言描述
			Android-贪吃蛇小游戏-分析与实现-Kotlin语言描述 Overview 本章的主要的内容是贪吃蛇小游戏的分析和实现,关于实现的具体代码可以在,文章底部的github的链接中找到. 整个游戏通 ... 
- VM 虚拟机网络配置
			VM网络设置,一共有四种模式. 分别是 1:bridge:桥接,直接和真实网卡相连.如果你要让虚拟机也要上网,就必须选这项,并且要配置和真实网卡在同一网段的IP地址. 2:host-only: 仅主机 ... 
- hash tree算法
			本文转载自:http://blog.csdn.net/yuanrxdu/article/details/22474697 Merkle Tree是Dynamo中用来同步数据一致性的算法,Merkle ... 
- 20172308《Java软件结构与数据结构》第三周学习总结
			教材学习内容总结 第 5 章 队列 队列: 一种线性集合,其元素从一端加入,从另一端删除 元素处理:FIFO 与栈的比较 异:(1) 栈的处理过程只在栈的某一端进行:队列的处理过程在队列的两端进行.( ... 
- c# -- 解决vs使用本地iis运行项目支持局域网访问的问题(附防火墙端口开放步骤)
			用vs运行项目时,有时候需要局域网内不同设备进行访问调试~ 以前解决过这个问题,这次用了部新电脑,问题又出现了,改了配置还是不行,原来还差了一步防火墙端口开放访问. 于是写了这篇分享,备忘~ 操作步骤 ... 
- 接口开发-基于SpringBoot创建基础框架
			说到接口开发,能想到的开发语言有很多种,像什么Java啊..NET啊.PHP啊.NodeJS啊,太多可以用.为什么选择Java,究其原因,最后只有一个解释,那就是“学Java的人多,人员招聘范围大,有 ... 
- An Isolated DAC Using PWM Output
			An Isolated DAC Using PWM Output Arduino‘s (ATmega328P) PWM outputs via analogWrite can be convenien ... 
- STM32F103ZET6 用定时器级联方式输出特定数目的PWM
			STM32F103ZET6 用定时器级联方式输出特定数目的PWM STM32F103ZET6里共有8个定时器,其中高级定时器有TIM1-TIM5.TIM8,共6个. 这里需要使用定时器的级联功能,ST ... 
- 各种版本的ST-LINK仿真器
			1.ST官方正式出版了两种仿真器:ST-LINK.ST-LINK/V2,其他型号(ST-LINK II,ST-LINK III,…)要么是国内公司生产,要么是开发板自带的:2.在ST官网ST-LINK ... 
- [廖雪峰] Git 分支管理(1):创建与合并分支(HEAD、master、dev、指针)
			每次提交,Git 都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在 Git 里,这个分支叫主分支,即 master 分支.HEAD 严格来说不是指向提交,而是指向 mas ... 
