49

問題なくクエリの推定実行計画 (Management Studio 9.0) を表示できますが、ストアド プロシージャに関しては、コードを ALTER 画面からコピーして貼り付けずにこれを行う簡単な方法がわかりません。それ以外の場合は、プロシージャではなく、ALTER のプランが表示されます。これを行った後でも、入力が欠落しているため、そのように宣言する必要があります。

ストアド プロシージャでこれを行う簡単な方法はありますか?

編集: うまくいくかもしれない何かを考えただけですが、よくわかりません。

推定実行計画を実行できますか

exec myStoredProc 234
4

9 に答える 9

54
SET SHOWPLAN_ALL ON
GO

-- FMTONLY will not exec stored proc
SET FMTONLY ON
GO

exec yourproc
GO

SET FMTONLY OFF
GO

SET SHOWPLAN_ALL OFF
GO
于 2009-04-28T13:36:29.550 に答える
32

ストアドプロシージャ名を選択し(クエリウィンドウに入力するだけ)、右クリックして、SQl ServerMgmtStudioのツールバーにある[推定実行プランの表示]ボタンを選択します。 ストアドプロシージャコードを開く必要はないことに注意してください。プロシージャ名だけを選択する必要があります。

呼び出されたプロシージャ内のストアドプロシージャのプランもグラフ形式で表示されます。

于 2011-05-20T13:09:08.680 に答える
3

SQL Management Studio 2008でストアドプロシージャを実行する場合は、メニューから[クエリ]->[実際の実行プランを含める]をクリックできます...ツールバーにもあります

コメントを読んだ後、実行は問題のようです。この問題を解決するには、ストアドプロシージャの実行を、最後にロールバックするトランザクションでラップすることをお勧めします。

于 2009-04-27T17:15:33.463 に答える
3

使用する

SET SHOWPLAN_ALL ON
Go
exec myStoredProc 234
GO
SET SHOWPLAN_ALL OFF
GO

http://msdn.microsoft.com/en-us/library/aa259203.aspxを参照してください tmpテーブルを使用していない限り、これはうまくいくと思います

于 2009-04-28T03:21:52.180 に答える
0

Profilerを使用して実行プランを確認することもできます。[パフォーマンス:計画統計プロファイルの表示]オプションを含め、列にバイナリデータを含めるようにしてください。

その後、任意のクエリまたはプロシージャを実行して、実行プランを確認できます。

編集

プロファイラーを使用できず、別のウィンドウを開きたくない場合は、ストアドプロシージャの先頭にコメントブロックを含めることをお勧めします。たとえば、次のことを想像してください。

/* 
     Description: This procedure does XYZ etc...
     DevelopedBy: Josh
     Created On:  4/27/09

     Execution: exec my_procName N'sampleparam', N'sampleparam'
*/

ALTER PROCEDURE  my_procName
   @p1 nvarchar(20),
   @p2 nvarchar(20)

AS

これにより、実行目的だけを強調表示して、実行プランの表示をオンにすることができます。そしてそれを実行します。

于 2009-04-27T17:15:42.607 に答える
0

実際の実行計画の表示 (クエリ メニューから) を有効にして Management Studio (またはクエリ アナライザー) でストアド プロシージャを実行すると、実行後のストアド プロシージャの計画が表示されます。実行できない場合は、推定実行計画が表示されます (ただし、私の経験では、精度が低いことがよくあります)。

于 2009-04-27T17:12:00.587 に答える