【发布时间】:2016-05-30 06:52:41
【问题描述】:
为了能够访问会话查询,我在研究期间发现的所有结果都是关于在 SQL Server 会话中执行的最后一个查询。
有没有办法访问在会话中运行的所有查询而不是 SQL Server 分析器,因为在生产环境中使用分析器并不容易。
有什么帮助吗?
【问题讨论】:
标签: performance tsql transactions sql-server-2008-r2 transactional-queue
为了能够访问会话查询,我在研究期间发现的所有结果都是关于在 SQL Server 会话中执行的最后一个查询。
有没有办法访问在会话中运行的所有查询而不是 SQL Server 分析器,因为在生产环境中使用分析器并不容易。
有什么帮助吗?
【问题讨论】:
标签: performance tsql transactions sql-server-2008-r2 transactional-queue
我可能找到here 解决您的问题。我添加了一个游标来获取特定会话的所有查询:
DECLARE @sql TABLE(sql_handle VARBINARY(128))
DECLARE @sqltext VARBINARY(128)
INSERT INTO @sql
SELECT sql_handle
FROM sys.sysprocesses p
WHERE p.spid = (YOUR_SESSION_ID)
DECLARE MyCursor CURSOR FOR
SELECT sql_handle
FROM @sql
OPEN MyCursor
FETCH NEXT FROM MyCursor
INTO @sqltext
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT TEXT
FROM sys.dm_exec_sql_text(@sqltext)
FETCH NEXT FROM MyCursor INTO @sqltext
END
CLOSE MyCursor
DEALLOCATE MyCursor;
GO
我希望这就是您要搜索的内容。
【讨论】: