0

表形式のストアド プロシージャを実行する Web サービス メソッドがあります。これspが完全に実行されるまでに 1 分かかります。その Web サービス メソッドをリモートで呼び出して、結果を取得します。

通常の状況では、すべて問題なく、結果が得られます。

しかし、サーバーがビジー状態の場合、Web サービスはそれを実行できませんsp(SQL プロファイラーでテストしましたが、プロファイラーには何も来ません) がsp、SQL Server Management Studio で手動で実行できます。

SQL Server を再起動すると、問題は解決し、Web サービスを実行できspます。

忙しい状況で webservice を実行spできないのに、SQL Server Management Studio で実行できるのはなぜですか?

この状況はどのように説明できますか?どうすれば解決できますか?

4

1 に答える 1

1

実行sp_whoして、何が起こっているかを確認します。私の推測では、ブロックされている可能性があります。おそらく、SSMS と Web サービスの間で「分離レベル」が異なります。

同様に、SETSSMS と Web サービスの間で接続のオプションが異なる可能性があります。これにより、動作に特定の変化が生じる可能性がありますSET。列が作成されたときに設定されたオプションと互換性がない場合、事前にインデックス付けされた値を使用する代わりに、強制的にテーブル スキャンを実行し、それらをすべて再計算することができます。これは、巻き上げられた xml 値にも適用されます。

最後の考慮事項は、パラメーター スニッフィングです。yourproc 'abc'とは非常に異なる統計を持つキャッシュが生成されるとyourproc 'def'、非常に悪いクエリ プランが実行される可能性があります。ヒントはこれoptimize for / unknownに役立ちます。

于 2012-10-16T10:20:47.930 に答える