0

Чтобы получить доступ к сеансовому запросу, все результаты, которые я нашел во время моего исследования, касаются последнего запроса, выполняемого в сеансе SQL Server.Запросы сессии SQL Server

Есть ли способ получить доступ ко всем запросам, которые выполняются внутри сеанса вместо профилировщика SQL Server, потому что использовать профайлер в среде prduction не так просто.

Любые помощь?

ответ

0

Возможно, вы нашли 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 

Надеюсь, это то, что вы ищете.

+0

извините, но это также касается последнего выполненного запроса сеанса, я ищу все запросы в определенном сеансе – canpoint

+0

на самом деле вы частично правы, потому что когда я запрашиваю группу by spid и со счетом, это дает мне больше, чем 1 для идентификатора spid, но когда я его непосредственно ищу, он возвращает 1 результат – canpoint

Смежные вопросы