zoukankan      html  css  js  c++  java
  • 【SQL.SERVER.DMVS.实战】学习笔记(二)

    ----------------------------------------------------------------------------------------------------------- 
    --查询数据库中当前阻塞及被阻塞的程序 -- Code for dbo.dba_BlockTracer CREATE Function [dbo].[dba_GetSQLForSpid] ( @spid SMALLINT ) RETURNS NVARCHAR(4000) /*------------------------------------------------- Purpose: Returns the SQL text for a given spid. --------------------------------------------------- Parameters: @spid - SQL Server process ID. Returns: @SqlText - SQL text for a given spid. Revision History: 01/12/2006 Ian_Stirk@yahoo.com Initial version Example Usage: SELECT dbo.dba_GetSQLForSpid(51) SELECT dbo.dba_GetSQLForSpid(spid) AS [SQL text] , * FROM sys.sysprocesses WITH (NOLOCK) --------------------------------------------------*/ BEGIN DECLARE @SqlHandle BINARY(20) DECLARE @SqlText NVARCHAR(4000) -- Get sql_handle for the given spid. SELECT @SqlHandle = sql_handle FROM sys.sysprocesses WITH (nolock) WHERE spid = @spid -- Get the SQL text for the given sql_handle. SELECT @SqlText = [text] FROM sys.dm_exec_sql_text(@SqlHandle) RETURN @SqlText END GO
    CREATE PROC [dbo].[dba_BlockTracer] AS /*-------------------------------------------------- Purpose: Shows details of the root blocking process, together with details of any blocked processed ---------------------------------------------------- Parameters: None. Revision History: 19/07/2007 Ian_Stirk@yahoo.com Initial version Example Usage: 1. exec YourServerName.master.dbo.dba_BlockTracer --------------------------------------------------*/ BEGIN -- Do not lock anything, and do not get held up by any locks. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED -- If there are blocked processes... IF EXISTS(SELECT 1 FROM sys.sysprocesses WHERE blocked != 0) BEGIN -- Identify the root-blocking spid(s) SELECT distinct t1.spid AS [Root blocking spids] , t1.[loginame] AS [Owner] , master.dbo.dba_GetSQLForSpid(t1.spid) AS 'SQL Text' , t1.[cpu] , t1.[physical_io] , DatabaseName = DB_NAME(t1.[dbid]) , t1.[program_name] , t1.[hostname] , t1.[status] , t1.[cmd] , t1.[blocked] , t1.[ecid] FROM sys.sysprocesses t1, sys.sysprocesses t2 WHERE t1.spid = t2.blocked AND t1.ecid = t2.ecid AND t1.blocked = 0 ORDER BY t1.spid, t1.ecid -- Identify the spids being blocked. SELECT t2.spid AS 'Blocked spid' , t2.blocked AS 'Blocked By' , t2.[loginame] AS [Owner] , master.dbo.dba_GetSQLForSpid(t2.spid) AS 'SQL Text' , t2.[cpu] , t2.[physical_io] , DatabaseName = DB_NAME(t2.[dbid]) , t2.[program_name] , t2.[hostname] , t2.[status] , t2.[cmd] , t2.ecid FROM sys.sysprocesses t1, sys.sysprocesses t2 WHERE t1.spid = t2.blocked AND t1.ecid = t2.ecid ORDER BY t2.blocked, t2.spid, t2.ecid END ELSE -- No blocked processes. PRINT 'No processes blocked.' END GO
  • 相关阅读:
    【软件工程实践 · 团队项目】 第一次作业
    课下作业2
    实验三 敏捷开发与XP实践
    2017-2018-1 20155315 《信息安全系统设计基础》第11周学习总结
    2017-2018-1 20155315 《信息安全系统设计基础》实验四 外设驱动程序设计
    20155306 20155315 《信息安全技术》实验四、木马及远程控制技术
    2017-2018-1 20155315 《信息安全系统设计基础》第9周学习总结
    2017-2018-1 20155315 《信息安全系统设计基础》实验三 实时系统
    2017-2018-1 20155315 《信息安全系统设计基础》加分作业:实现mypwd
    2017-2018-1 20155315 《信息安全系统设计基础》第8周学习总结
  • 原文地址:https://www.cnblogs.com/suinlove/p/2971932.html
Copyright © 2011-2022 走看看