0
「Actual Execution Plan」を含むSQLステートメントを2回実行します。しかし、同じクエリに対して2つの異なる実行計画があります。唯一の違いはIDを変更することです。実行計画はデータに依存しますか?
- まず、5つのレコードに関連するIDを持つsqlを実行します。
- 第2に、5000+レコードに関連するIDを持つsqlを実行します。
データによって実行計画が変わるのですか?
私はR2
「Actual Execution Plan」を含むSQLステートメントを2回実行します。しかし、同じクエリに対して2つの異なる実行計画があります。唯一の違いはIDを変更することです。実行計画はデータに依存しますか?
データによって実行計画が変わるのですか?
私はR2
をSQL Server 2008を使用していますが、データに応じて、実行計画の変更をしていますか?
厳密に言えば、いいえ。クエリが変更されたり統計情報(データに依存する)が変更されると、実行計画が変更されます。
データは変更されても統計は変更されない場合、実行計画は変更されません。
なぜこれがdownvotedされたか分かりません。 – MJH
***はい!***もちろん! SQL Serverはクエリに含まれる行数を分析し、行数に応じて、すべてのケースで可能な限り最適な実行計画を選択します。 –
生成された実行計画を確認します。各ノードに「推定行数」と実際の行数が表示されていることに気付かなければなりません。 –
同じ実行計画を使用するとインスタンスを取得できますが、これはパラメータスニッフィングと呼ばれる非常に悪いものです。これは基本的にオプティマイザが混乱して、実際にパフォーマンスが低下する可能性があります。あなたが興味を持っているなら、この件についてgoogleにはたくさんのリソースがあります。 –