2011-01-10 4 views
8

新しいSQL Serverで発生している問題のトラブルシューティングを試みています。実行中のプロセス(sp_who2)を見ているうちに、procがどのパラメータで開始されたのかわかりません。SQL Server 2008で現在実行されているprocsのパラメータを表示するには

私が使用してPROCの名前を見つけることができます:DBCC INPUTBUFFER (spid)

を私もいくつかの追加の情報を見つけることができますが、私はパラメータを表示する方法を見ることはできません。

http://sqlserverpedia.com/blog/sql-server-bloggers/sql-server-%E2%80%93-get-last-running-query-based-on-spid/

私はトレースを行う場合、私はパラメータを見ることができます知っているが、それは、この場合には役立ちません。

+0

"sp_who2"と "dbcc"は実行できますが、トレースは実行できませんか? –

答えて

6

あなたはAdam MachanicのSP_WhoisActiveをチェックする必要があります。必要なすべての情報を提供します。それによって、xmlのクエリ全体が表示されるので、クリックするだけで実行中のものを見ることができます。
http://sqlblog.com/files/folders/release/entry29675.aspx

+0

私は 'create proC#foo @a int waitfor delay '01:00''として' exeC#foo 1'を出力しようとしましたが、出力のどこにでもパラメータの値を見ることができません。 –

+4

これは素晴らしいツールですが、procを呼び出すためのパラメータはまだ表示されません。私はこのように呼びます: 'exec sp_WhoIsActive @get_outer_command = 1'。 sql_textとsql_commandの2つのカラムがあります。 sql_commandは私に "MyDB.dbo.MyProc; 1"のようなものを与えます。ここで1は送られたパラメータではなく、procのバージョン番号です。sql_textは実行中のproc内の文を返します。この呼び出しには多くのオプションがありますが、パラメータを表示するものがありませんか? – Pez

0

編集:私はこの興味深いコード: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

あなたは跡形もなくそれを行うことはできませんように見えます。 類似の質問のある投稿はそれ以上ありません。Can parameterized queries be fully captured using DBCC INPUTBUFFER?

DBCC INPUTBUFFER(spid)は、spがSSMSから起動されている場合にのみ使用できます。

これを見てくださいhttp://sqlblog.com/tags/Who+is+Active/default.aspx。 このSPをボックスに追加できない場合は、役立つコードがあります。

編集:実行されているspの文だけを表示し、パラメータは表示しません。

+0

あなたの最新の編集は引き続き 'create proc'定義のみを表示し、渡されるパラメータは表示しません。 –

0

パラメータを記録するためにストアドプロシージャを変更できますか?おそらく、診断のためのパラメータをテーブルに挿入しますか?

関連する問題