1、查找目前SQL Server所执行的SQL语法,并展示资源情况:

SQL code

?

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
SELECT  s2.dbid ,
         DB_NAME(s2.dbid) AS [数据库名] ,
         --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 [语句] ,
         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 [最大逻辑写]
 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

2、展示耗时查询:

SQL code

?

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 
   
 SELECT EQS.total_worker_time AS TotalWorkerTime 
       ,EQS.total_logical_reads + EQS.total_logical_writes AS TotalLogicalIO 
       ,EQS.execution_count As ExeCnt 
       ,EQS.last_execution_time AS LastUsage 
       ,EQS.total_worker_time / EQS.execution_count as AvgCPUTimeMiS 
       ,(EQS.total_logical_reads + EQS.total_logical_writes) / EQS.execution_count  
        AS AvgLogicalIO 
       ,DB.name AS DatabaseName 
       ,SUBSTRING(EST.text 
                 ,1 + EQS.statement_start_offset / 2 
                 ,(CASE WHEN EQS.statement_end_offset = -1  
                        THEN LEN(convert(nvarchar(max), EST.text)) * 2  
                        ELSE EQS.statement_end_offset END  
                  - EQS.statement_start_offset) / 2 
                 AS SqlStatement 
       -- Optional with Query plan; remove comment to show, but then the query takes !!much longer time!! 
       --,EQP.[query_plan] AS [QueryPlan] 
 FROM sys.dm_exec_query_stats AS EQS 
      CROSS APPLY sys.dm_exec_sql_text(EQS.sql_handle) AS EST 
      CROSS APPLY sys.dm_exec_query_plan(EQS.plan_handle) AS EQP 
      LEFT JOIN sys.databases AS DB 
          ON EST.dbid = DB.database_id      
 WHERE EQS.execution_count > @MinExecutions 
       AND EQS.last_execution_time > DATEDIFF(MONTH, -1, GETDATE()) 
 ORDER BY AvgLogicalIo DESC 
         ,AvgCPUTimeMiS DESC

3、当前进程及其语句:

SQL code

?

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 
 SELECT PRO.loginame AS LoginName 
       ,DB.name AS DatabaseName 
       ,PRO.[status] as ProcessStatus 
       ,PRO.cmd AS Command 
       ,PRO.last_batch AS LastBatch 
       ,PRO.cpu AS Cpu 
       ,PRO.physical_io AS PhysicalIo 
       ,SES.row_count AS [RowCount] 
       ,STM.[text] AS SQLStatement 
 FROM sys.sysprocesses AS PRO 
      INNER JOIN sys.databases AS DB 
          ON PRO.dbid = DB.database_id 
      INNER JOIN sys.dm_exec_sessions AS SES 
         ON PRO.spid = SES.session_id 
      CROSS APPLY sys.dm_exec_sql_text(PRO.sql_handle) AS STM      
 WHERE PRO.spid >= 50  -- Exclude system processes 
 ORDER BY PRO.physical_io DESC 
         ,PRO.cpu DESC;

4、存储过程执行情况:

SQL code

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- Stored Procedure Execution Statistics 
 SELECT ISNULL(DBS.name''AS DatabaseName 
       ,OBJECT_NAME(EPS.object_id, EPS.database_id) AS ObjectName 
       ,EPS.cached_time AS CachedTime 
       ,EPS.last_elapsed_time AS LastElapsedTime 
       ,EPS.execution_count AS ExecutionCount 
       ,EPS.total_worker_time / EPS.execution_count AS AvgWorkerTime 
       ,EPS.total_elapsed_time / EPS.execution_count AS AvgElapsedTime 
       ,(EPS.total_logical_reads + EPS.total_logical_writes) 
        / EPS.execution_count AS AvgLogicalIO 
 FROM sys.dm_exec_procedure_stats AS EPS 
      LEFT JOIN sys.databases AS DBS 
          ON EPS.database_id = DBS.database_id 
 ORDER BY AvgWorkerTime DESC;

5、开销较大的查询:

SQL code

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*
 开销较大的查询
 */
 SELECT  ss.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    SELECT    S.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
           FROM      sys.dm_exec_query_stats s
           GROUP BY  S.plan_handle
         AS ss
         CROSS APPLY sys.dm_exec_sql_text(ss.plan_handle) t
 ORDER BY sum_total_logical_reads DESC  
SQL code

?

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语句执行情况的更多相关文章

  1. 使用 sql server 默认跟踪分析执行的 SQL 语句

    如果没有启用 SQL SERVER 的跟踪器来跟踪 SQL SERVER 的 SQL 执行情况,又想查最近的 SQL 执行情况,网上一般说是使用 LogExprorer 这个工具,网上找了这个工具很久 ...

  2. sql server中如何查看执行效率不高的语句

    sql server中,如果想知道有哪些语句是执行效率不高的,应该如何查看呢?下面就将为您介绍sql server中如何查看执行效率不高的语句,供您参考.   在测量功能时,先以下命令清除sql se ...

  3. Sql server的Merge语句,源表中如果有重复数据会导致执行报错

    用过sql server的Merge语句的开发人员都应该很清楚Merge用来做表数据的插入/更新是非常方便的,但是其中有一个问题值得关注,那就是Merge语句中的源表中不能出现重复的数据,我们举例来说 ...

  4. [SQL] sql server中如何查看执行效率不高的语句

    sql server中,如果想知道有哪些语句是执行效率不高的,应该如何查看呢?下面就将为您介绍sql server中如何查看执行效率不高的语句,供您参考.在测量功能时,先以下命令清除sql serve ...

  5. Linux下用freetds执行SQL Server的sql语句和存储过程

    Linux下用freetds执行SQL Server的sql语句和存储过程 http://www.linuxidc.com/Linux/2012-06/61617.htm freetds相关 http ...

  6. SQL Server查看Sql语句执行的耗时和IO消耗

    原文:SQL Server查看Sql语句执行的耗时和IO消耗 在做系统过程中,经常需要针对某些场景进行性能优化,那么如何判定性能优化的效果呢?肯定需要知道优化之前Sql语句的耗时和优化之后Sql语句的 ...

  7. SQL Server服务器名称与默认实例名不一致的修复方法

    SQL Server服务器名称与默认实例名不一致的修复方法 分类: 个人累积 SQl SERVER 数据库复制2011-08-10 09:49 10157人阅读 评论(0) 收藏 举报 sql ser ...

  8. SQL SERVER 作业(或叫执行计划)

    如果在SQL Server 里需要定时或者每隔一段时间执行某个存储过程或3200字符以内的SQL语句时,可以用管理->SQL Server代理->作业来实现. 1.管理->SQL S ...

  9. SQL Server经典sql语句大全(转)

    一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...

随机推荐

  1. 20172301 《Java软件结构与数据结构》实验三报告

    20172301 <Java软件结构与数据结构>实验三报告 课程:<Java软件结构与数据结构> 班级: 1723 姓名: 郭恺 学号:20172301 实验教师:王志强老师 ...

  2. 007.FTP虚拟用户访问

    一 虚拟用户优点 可对每个用户进行单独设定权限. 每个用户单独配置文件,单独指定主目录,而不能访问系统的其它资源. 注意:虚拟用户目录和本地用户访问目录不冲突. 二 配置虚拟用户步骤 添加虚拟用户口令 ...

  3. 【python学习-3】python数据类型

    1.数字 在python 2.x中,数字类型有4种,int.long.float 和 complex(复数):而python 3 中,只有 int.float 和 complex 3种,python ...

  4. BZOJ.1013.[JSOI2008]球形空间产生器(高斯消元)

    题目链接 HDU3571 //824kb 40ms //HDU3571弱化版 跟那个一比这个太水了,练模板吧. //列出$n+1$个二次方程后两两相减,就都是一次方程了. #include <c ...

  5. 【BZOJ-1913】signaling信号覆盖 极角排序 + 组合

    1913: [Apio2010]signaling 信号覆盖 Time Limit: 20 Sec  Memory Limit: 64 MBSubmit: 1232  Solved: 506[Subm ...

  6. 喵哈哈村的魔法考试 Round #6 (Div.3) 题解

    有任何问题 直接联系QQ:475517977 喵哈哈村的代码传说 第一章 冒泡排序 第一题就是排序嘛,在ACM/OI竞赛中,我只推崇一种排序方法,就是直接调用algorithm里面的sort函数. # ...

  7. j.u.c系列(11)---之并发工具类:Exchanger

    写在前面 前面三篇博客分别介绍了CyclicBarrier.CountDownLatch.Semaphore,现在介绍并发工具类中的最后一个Exchange.Exchange是最简单的也是最复杂的,简 ...

  8. 【shell学习笔记】curl命令总结

    2014-12-16 20:34 文思海辉 =========== CURL命令总结 1. 下载 curl -o [文件名称] www.baidu.com 2. 显示 HTTP request头信息 ...

  9. MongoDB+MongoVUE安装及入门

    前言及概念 据说nodejs和mongoDB是一对好基友,于是就忍不住去学习了解了一下MongoDB相关的一些东西, 那么,MongoDB是什么?这里的五件事是每个开放人员应该知道的: MongoDB ...

  10. jPlayer插件的使用

    文讲一下本人在使用jPlayer插件时的整个过程.出现的BUG已经解决办法. 最近在做bootstrap项目,项目中需要一个响应式.兼容IE7的视频播放插件,经过上网查找,找到了所谓可以兼容到IE6的 ...