11

SQL Server 実行計画の物理演算子を理解しようとしています。このページは非常に役に立ちます:

http://technet.microsoft.com/en-us/library/ms191158.aspx

SSMS 2008 には、SSMS 2005 では表示されないいくつかの物理オペレーター プロパティが表示されEstimated Number of ExecutionsますNumber of Executions。しかし、これらは実際には何を意味し、リバインドやリワインドとどのように関連しているのでしょうか?

Estimated Number of ExecutionsXML に格納されていないように見えるため、特に興味深いものです。それで、それはどのように計算されますか?に等しいようEstimated Rebinds + Estimated Rewinds + 1.0です。しかし、もしそうなら、なぜ はNumber of Executionsと等しくないのActual Rebinds + Actual Rewinds + 1でしょうか?

ありがとう。

4

2 に答える 2

7

この本は、その説明が少しずれています。巻き戻しと再バインドは、ループ結合内でのみ適用できます。それらは、ループの外側部分からループの内側部分へのプローブ値の使用を参照し、特定の演算子にのみ反映されます (コストがかかるため、どのくらいの頻度で呼び出されるかを知る価値があります)。リバインドとリワインドは、数 + 1 ではなく、実行数に直接関連付ける必要があります。

推定実行数または実際の実行数は、オペレーターが呼び出された回数です。これは、多くのことの影響を受ける可能性があります。たとえば、ループ結合では、内側の分岐の行数に直接対応する外側の分岐の演算子への複数の呼び出しが表示されます。実際の値と推定値の違いは絶対にわかります。ループの場合 (優れた例)、内側のループで 1 の推定値が表示されますが、実際の実行回数は、既に述べたように、外側の行数と等しくなります。

于 2011-06-11T16:21:26.943 に答える
4

Grant Fritchey によるeBook SQL Server Execution Plansを読む (またはダウンロードする) ことをお勧めします。ダウンロードは無料のようです。

rebindsrewindsに関するセクションがあります。私はこれについての専門家ではないので、対応する章の一番下の行を引用します。

では、これは DBA にとってどのように役立つのでしょうか? 一般的に言えば、再バインドと巻き戻しの回数ができるだけ少ないことが理想的です。回数が多いほどディスク I/O が多いことを示します。カウントが高い場合は、特定のオペレーターが必要以上に働いており、サーバーのパフォーマンスが低下していることを示している可能性があります。このような場合は、クエリを書き直すか、現在のインデックス作成を変更して、再バインドと巻き戻しの回数が少ない別のクエリ プランを使用することで、I/O を削減し、パフォーマンスを向上させることができます。(p.83)

実行数は、リバインドとリワインドの数を示す上位レベルの指標です。ここで別の引用:

EstimateExecutions を表示したばかりのテキスト プランとは異なり、XML プランはリバインドとリワインドの推定回数であることに注意してください。これにより、多くの場合、演算子が実行された回数など、クエリ内で何が発生したかをより正確に把握できます。(p.103)

于 2011-01-14T18:46:32.170 に答える