Я пытаюсь устранить проблему, которая появляется на нашем новом SQL Server.При просмотре запущенных процессов (sp_who2) я не могу сказать, с какими параметрами запущен процесс.
sp_who2
Я могу найти имя процесса, используя: DBCC INPUTBUFFER (spid)
DBCC INPUTBUFFER (spid)
Я могудаже найти дополнительную информацию, но я не вижу способа показать параметры.
(http://sqlserverpedia.com/blog/sql-server-bloggers/sql-server-%E2%80%93-get-last-running-query-based-on-spid/)
Я знаю, что вижу параметры, если выполняю трассировку, но в этом случае это не помогает.
Вам нужно проверить SP_WhoisActive Адама Мачаника, он дает вам всю необходимую информацию и весь запрос в xml, так что вы можете просто щелкнуть по нему и посмотреть, что работает. http://whoisactive.com
Можете ли вы изменить сохраненный процесс для регистрации параметров? Возможно вставить в таблицу параметры для диагностики?
Редактировать: Я нашел этот интересный код: select dest.* from sys.dm_exec_requests as der cross apply sys.dm_exec_sql_text (der.sql_handle) as dest where session_id = @spid. Пожалуйста, попробуйте.
select dest.* from sys.dm_exec_requests as der cross apply sys.dm_exec_sql_text (der.sql_handle) as dest where session_id = @spid
http://msdn.microsoft.com/en-us/library/ms181929%28v=SQL.100%29.aspx
Похоже, вы не можете сделать это без следа. Еще несколько постов с похожим вопросом: Можно ли полностью захватить параметризованные запросы с помощью DBCC INPUTBUFFER?
Вы можете использовать DBCC INPUTBUFFER (spid), но только если sp запускается из SSMS.
Посмотрите на это http://sqlblog.com/tags/Who+is+Active/default.aspx. Если вы не можете добавить этот sp в свой ящик, будет полезный код.
Редактировать: Показывает только то, что выполняется оператор вашего sp, а не параметры.