简介  大家都知道使用sp_who2这个命令来查看当前正在的执行的SQL语句的spids.但是显示

的信息有限.比如,它只显示执行SELECT,DELETE,UPDATE等.看不到实际的sql命令.

知道正在执行哪条sql语句对于我们debug程序,找出哪些语句花费很长时间,或是哪些语句产生

堵塞来说非常重要.而且这个常用来查看存储过程执行到哪一步.执行到哪个语句.

所以我们需要一个比sp_who2更好的命令来做这些工作.

这个命令使用SQL的动态管理视图 Dynamic Management Views (DMVs).所以只用执行在SQL2005或是

更高的版本上.

返回字段简介:

列名

类型

描述

spid

smallint

SQL Server process ID.

ecid

smallint

Econtext ID

dbid

smallint

数据库ID

nt_username

nchar(128)

用户名

status

nchar(30)

状态

wait_type

bigint

当前等待的 milliseconds.

Individual Query

varchar

当前执行的SQL语句

Parent Query

varchar

上层的SQL语句

program_name

nchar(128)

程序名称

Hostname

nchar(128)

主机名

nt_domain

nchar(128)

域名

Start_time

datetime

开始时间

CREATE PROC [dbo].[dba_WhatSQLIsExecuting]

AS

/*--------------------------------------------------------------------

Purpose: Shows what individual SQL statements are currently executing.

----------------------------------------------------------------------

Parameters: None.

Revision History:

24/07/2008 Ian_Stirk@yahoo.com Initial version

Example Usage:

1. exec YourServerName.master.dbo.dba_WhatSQLIsExecuting

---------------------------------------------------------------------*/

BEGIN

-- Do not lock anything, and do not get held up by any locks.

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

-- What SQL Statements Are Currently Running?

SELECT [Spid] = session_Id

, ecid

, [Database] = DB_NAME(sp.dbid)

, [User] = nt_username

, [Status] = er.status

, [Wait] = wait_type

, [Individual Query] = SUBSTRING (qt.text,

er.statement_start_offset/2,

(CASE WHEN er.statement_end_offset = -1

THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2

ELSE er.statement_end_offset END -

er.statement_start_offset)/2)

,[Parent Query] = qt.text

, Program = program_name

, Hostname

, nt_domain

, start_time

FROM sys.dm_exec_requests er

INNER JOIN sys.sysprocesses sp ON er.session_id = sp.spid

CROSS APPLY sys.dm_exec_sql_text(er.sql_handle)as qt

WHERE session_Id > 50 -- Ignore system spids.

AND session_Id NOT IN (@@SPID) -- Ignore this current statement.

ORDER BY 1, 2

END

from http://www.diybl.com/course/7_databases/sql/sqlServer/20090520/167430.html

延伸阅读coded by nessus

mysql查询正在执行的存储过程,[转]ms sql server 存储过程,查看正在执行的sql语句...相关推荐

  1. mySql 查询当天、本周、最近7天、本月、最近30天的语句

    mySql 查询当天.本周.最近7天.本月.最近30天的语句 原创 2017年04月13日 16:40:38 标签: 962 编辑 删除 -- 当天 SELECT * FROM 表名 WHERE wh ...

  2. sql server存储过程修改,存储到mysql笔记

    由于有些项目要迁移到mysql上,数据迁移用MySQLWorkbench就能很好的迁移,最难的是存储过程之类的. 下面是sql server存储过程和mysql存储过程的转化: SQL SERVER: ...

  3. SQL Server 存储过程

    本章内容简介: • 存储过程的定义以及何时需要使用一个存储过程 • 如何创建.修改和删除存储过程 • 传递输入和输出参数的方式 • 错误处理 • 性能考虑事项 • 如何使用调试器 存储过程很有用.如果 ...

  4. db2 删除存储过程_数据库教程-SQL Server存储过程使用及异常处理

    SQL Server存储过程 存储过程(Procedure)是数据库重要对象之一,也是数据库学习的重点之一.本文,我们以SQL Server为例对存储过程的概念.定义.调用.删除及存储过程调用异常等通 ...

  5. sql server 存储过程的详解

    SqlServer存储过程详解 1.创建存储过程的基本语法模板: if (exists (select * from sys.objects where name = 'pro_name'))drop ...

  6. sql游标 while_用SQL Server中的排名函数替换SQL While循环和游标,以提高查询性能

    sql游标 while SQL While loop and cursor are the most common approach to repeat a statement on conditio ...

  7. SQL Server存储过程初学者

    In this article, we will learn how to create stored procedures in SQL Server with different examples ...

  8. SQL Server统计信息以及如何在SQL中执行更新统计信息

    This article gives a walk-through of SQL Server Statistics and different methods to perform SQL Serv ...

  9. oracle如何调试sql,调试oracle与调试sql server存储过程

    [IT168 技术]关于存储过程的调试,知道方法以后很简单,但在不知道的时候,为了测试一个存储过程的正性,print,插入临时表等可谓是使出了浑身解数,烦不胜烦.下面就把我工作中调试oracle存储过 ...

  10. sql server存储过程基本写法

    sql server存储过程的优点 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度. 2.当对数据 ...

最新文章

  1. PHP date 格式化一个本地时间/日期
  2. 科大星云诗社动态20210829
  3. 【火炉炼AI】机器学习013-用朴素贝叶斯分类器估算个人收入阶层
  4. matlab 判断一个数组中有没有重复的元素
  5. 升级.Net Core RC1的类库项目
  6. html 中 标签里面的id 和 name 有什么区别?
  7. mac怎么设置默认浏览器 mac默认浏览器设置方法
  8. Skywalking-05:在Skywalking RocketBot上添加监控图表
  9. 滚动页面一定距离后固定导航条
  10. 因未交赎金,世界航天巨头机密文档遭勒索软件公开
  11. 20165301陈潭飞2017-2018-2 20165301 实验三《Java面向对象程序设计》实验报告
  12. kd树 python实现_kd树 寻找k近邻算法 python实现
  13. python的变量在使用前不需要先赋值_每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。_学小易找答案...
  14. 计算机函数公式法计算出总分的式子,excel计算百分比公式的用法
  15. centos安装git(centos安装vmware tools)
  16. requests/lxml的简单用例
  17. 【3】Maxwell轴向电机“单边磁拉力”仿真设置
  18. Matlab S-Function详解
  19. 利用Linux的/proc/stat获取指定进程的cpu占有率及内存
  20. python基础: 字符串操作

热门文章

  1. go语言map遍历时删除是安全的, 且可以完全删除
  2. 腾讯万亿级Elasticsearch应用及优化解密
  3. Spark没有读取HDFS文件的方法?那textFile是怎么读的?
  4. mybatis集成JNDI【注部署项目后测试代码在jsp或servlet中】
  5. java基础----递归实现文件搜索
  6. 《FlaskWeb开发:基于Python的Web应用开发实战》笔记
  7. vb 如何给静态变量赋初值
  8. JDK14性能管理工具:jstat使用介绍
  9. python安装后在哪里找_python安装后的目录在哪里
  10. Android--多个Activity共享Socket--单例模式