Sql Server 活动监视器中的这个过程是啥?
Posted
技术标签:
【中文标题】Sql Server 活动监视器中的这个过程是啥?【英文标题】:What is this process in Sql Server Activity monitor?Sql Server 活动监视器中的这个过程是什么? 【发布时间】:2009-04-16 17:01:46 【问题描述】:SQL Server 2005 活动监视器中有一个似乎一直在运行的进程。双击它会产生以下查询:
CREATE TABLE #tmpDBCCinputbuffer ([EVENT TYPE] NVARCHAR(512),
[PARAMETERS] INT, [EVENT Info] NVARCHAR(512))
INSERT INTO #tmpDBCCinputbuffer EXEC ('DBCC INPUTBUFFER(58)')
SELECT [EVENT Info] FROM #tmpDBCCinputbuffer
知道它是什么吗?危险吗?
【问题讨论】:
【参考方案1】:具有讽刺意味的是,它是您用来查看在连接上运行的最后一个查询的查询,这就是您要查看所有连接的最后一个查询是什么的操作。包括您用来查看所有这些连接的连接。
你需要的头晕表情在哪里?
【讨论】:
【参考方案2】:http://msdn.microsoft.com/en-us/library/ms187730.aspx
引用自 SQL Server 开发人员中心
"DBCC INPUTBUFFER 权限默认 给系统管理员的成员固定 仅限服务器角色,谁可以看到任何 SPID。其他用户可以看到任何 SPID 他们拥有。权限不 可转让。” (http://msdn.microsoft.com/en-us/library/aa258826(SQL.80).aspx)
【讨论】:
【参考方案3】:我只想分享另一个答案,进一步解释 Neil N 的答案。
DBCC INPUTBUFFER(spid) 命令将返回针对指定 SPID 执行的最新批处理的文本。当您双击活动监视器中的一行(或右键单击并选择“详细信息”)时,SQL Server 在幕后运行您在上面的帖子中引用的命令(替换所选行的 SPID - 61 in您的示例)返回针对连接发出的最新批次。在您的示例中,批次实际上恰好是 CREATE TABLE 等...由活动监视器发出以返回最新批次的批次!
克里斯·豪沃斯https://social.msdn.microsoft.com/Forums/sqlserver/en-US/6bbe405b-b7d8-4f97-9150-cf03c59d4fe3/process-wont-die?forum=sqldatabaseengine
数字 58 是它始终返回的值,因为它是它的进程 ID,它是您运行的最后一个进程!
【讨论】:
以上是关于Sql Server 活动监视器中的这个过程是啥?的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server代理(8/12):使用SQL Server代理外部程序
SQL Server 活动监视器在多长时间内查看最近的昂贵查询
您如何决定在 SQL Server 活动监视器中终止哪个进程?
sqlserver 2005 活动监视器中的等待类型的writelog问题