7

タイトルにあるように、sp_executeSQLがSqlManagementStudioからクエリを実行するのとはまったく異なる実行プランを生成する理由がわかりません。

問題のクエリは、SQL Management Studioから実行する場合は3秒かかりますが、管理スタジオでsp_executeSQLを介して実行する場合は5分かかります。

統計を更新し、インデックスを確認しましたが、sp_executeSQLからの実行プランは、管理スタジオから直接SQLを実行するよりもはるかに悪いという事実が頭に残っていました。

だからここに私の質問があります:なぜこれらの2つの異なる方法でクエリを実行することの間で実行プランがそれほど異なるのでしょうか?

ありがとう

4

2 に答える 2

5

これを見る

基本的に 、同じ手順に対して複数の[実行]プランが存在する可能性があります

于 2011-03-30T15:29:43.947 に答える
2

このことを考慮。ストアド プロシージャを実行すると、このプロシージャには独自の実行計画があります。クエリ ステートメントを実行すると、再び独自の実行計画が作成されます。sp_executeSQL を使用する場合、このストアド プロシージャを実行してクエリを動的に実行します。したがって、本質的にその実行計画は、sp_executeSQL とクエリの組み合わせです。

于 2011-03-30T14:48:02.627 に答える