このSQL Serverプランのコストの割合は、正当な理由で100%を超えていますか?


13

私は計画のキャッシュを調べて、手間のかからない最適化の成果を探していて、このスニペットに出会いました:

ここに画像の説明を入力してください

なぜコストの多くが100%を超えるのですか?それは不可能ではないでしょうか?


私は見積もられた計画から最大100万%のコストさえ見ました。実際のコストを使用するだけで、より良いはずです。
マリアン

5
SQL Serverの計算が台無しだからです。無料のプランエクスプローラーを入手してください。この問題はありません。
アーロンバートランド

私はSQL Sentry Plan Explorer、Aaronが大好きです-しばらく使ってきました。プロ版の機能を確認したい!
マックスヴァーノン

回答:


12

視覚的なコスト見積もりはくだらないです。この種のことは常に起こります。最も高価なものを選択するだけで、最も高価なものを最初に攻撃します。


SQL Serverの以前のバージョンでこれを見たことがありますか?私の知る限り、たとえばSS 2008R2で気づいたことはありません。
KookieMonster

5
SQL 2000までさかのぼって見てきました。私が知っている限りでは、パーセンテージを計算するための計算を行っているときのSSMS(およびEM)のバグにすぎません。
mrdenny

2

また、なぜ一部のコストが100%、200%、300%などと表示されることがあるのか​​興味がありました。クエリプランのxmlファイルを分析した後、取得しました。

コストの割合= my EstimatedTotalSubtreeCost/ parent node'sEstimatedTotalSubtreeCost

たとえば、クエリプランにClustered Index Insertかかるコストは914%で、この割合の計算方法を理解するには、 1. Move mouse to `Clustered Index Insert` to show popup, you can see the cost `EstimatedTotalSubtreeCost`, e.g, 0.2 2. Move mouse to this node's parent node `COND WITH QUERY`, check the popup to get `EstimatedTotalSubtreeCost`, e.g, 0.0218818 3. Calculate 0.2/0.0218818 = 914%, this is the cost percentage displayed in `Clustered Index Insert` popup


1
0.002/2.180.000917(これは0.0917%)と同じであり、ではありません914%
ypercubeᵀᴹ

コメントありがとうございます。答えを修正します。結局のところ、パーセンテージの計算方法を示すためのサンプルにすぎません。
osexp2003
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.