初涉SQL Server性能问题(3/4):列出阻塞的会话
2015-06-03 14:34
375 查看
在 初涉SQL Server性能问题(2/4)里,我们讨论了列出等待资源或正运行的会话脚本。这篇文章我们会看看如何列出包含具体信息的话阻塞会话清单。
View Code
/***************************************************************************************** STEP 4: List the Open session with transaction which is not active ****************************************************************************************/ SELECT es.session_id, es.login_name, es.HOST_NAME, DB_NAME(SP.dbid) AS DatabaseName, sp.lastwaittype, est.TEXT,cn.last_read, cn.last_write, CASE WHEN es.program_name LIKE '%SQLAgent - TSQL JobStep%' THEN(SELECT 'SQL AGENT JOB: '+name FROM msdb..sysjobs WHERE job_id=MASTER.DBO.ConvertStringToBinary (LTRIM(RTRIM((SUBSTRING(es.program_name,CHARINDEX('(job',es.program_name,0)+4,35))))) )ELSE es.program_name END AS program_name FROM sys.dm_exec_sessions es INNER JOIN sys.dm_tran_session_transactions st ON es.session_id = st.session_id INNER JOIN sys.dm_exec_connections cn ON es.session_id = cn.session_id INNER JOIN sys.sysprocesses SP ON SP.spid=es.session_id LEFT OUTER JOIN sys.dm_exec_requests er ON st.session_id = er.session_id AND er.session_id IS NULL CROSS APPLY sys.dm_exec_sql_text(cn.most_recent_sql_handle) est WHERE (DATEDIFF(SS,cn.last_read,GETDATE())+DATEDIFF(SS,cn.last_write,GETDATE()))>30 AND lastwaittype NOT IN ('BROKER_RECEIVE_WAITFOR' ,'WAITFOR') GO
View Code
相关文章推荐
- 设置oracle数据库密码永不过期(ORA-28002)
- redis 的 getSet方法的过程
- 初涉SQL Server性能问题(2/4):列出等待资源的会话
- 初涉SQL Server性能问题(1/4):服务器概况
- Mysql事务,并发问题,锁机制
- [C#-SQLite] SQLite一些奇怪的问题
- pl/sql_4_事务
- MySQL数据恢复--binlog
- JDBC数据库常用操作(mysql)
- pl/sql_4_游标(光标)
- 使用sqlldr命令导入资料到Oracle数据库表中的示例说明
- SQL on Hadoop中出现CPU bound的主要原因
- MYSQL Error2003错误解决方案
- SQL时间格式化
- sqlmap的POST注入
- SQLServer2008找出所有包含172.17.224.40字样的存储过程
- mysql存储过程循环语句简单例子
- 基于ORACLE数据库的循环建表及循环创建存储过程的SQL语句实现
- oracle 数据类型详解---日期型
- oracle 数据类型详解---日期型