Ich versuche, ein Problem zu beheben, das auf unserem neuen SQL Server auftaucht. Beim Betrachten der laufenden Prozesse ( sp_who2
) kann ich nicht sagen, mit welchen Parametern ein Proc gestartet wurde.
Ich kann den Namen des Proc finden mit: DBCC INPUTBUFFER (spid)
Ich kann sogar zusätzliche Informationen finden, aber ich sehe keine Möglichkeit, die Parameter anzuzeigen.
( Ссылка )
Ich weiß, dass ich die Parameter sehen kann, wenn ich eine Spur mache, aber das hilft in diesem Fall nicht.
Sie müssen Adam Machanic SP_WhoisActive überprüfen, es gibt Ihnen alle Informationen, die Sie benötigen, und es gibt Ihnen die gesamte Abfrage in XML, so dass Sie einfach darauf klicken und sehen können, was läuft.
Ссылка
Bearbeiten: Ich habe diesen interessanten Code gefunden: 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
. Bitte versuchen Sie es.
Es sieht so aus, als könnten Sie es nicht ohne Spuren tun. Es gibt einige weitere Posts mit ähnlicher Frage: Können parametrisierte Abfragen vollständig mit DBCC INPUTBUFFER erfasst werden?
Sie können DBCC INPUTBUFFER (spid) nur verwenden, wenn sp von SSMS gestartet wird.
Sehen Sie sich Ссылка an. Wenn Sie diese Sp nicht zu Ihrer Box hinzufügen können, gibt es Code, der hilfreich sein kann.
Bearbeiten: Es wird nur angezeigt, welche Anweisung Ihres SP ausgeführt wird, und nicht Parameter.
Können Sie den gespeicherten Proc ändern, um die Parameter zu protokollieren? Vielleicht fügen Sie in eine Tabelle die Parameter für die Diagnose ein?
Tags und Links sql-server-2008