Oracle実行プランにコストの単位はありますか?
つまり、操作のコストが50の場合、この数値をCPUサイクルまたは使用率にマッピングできますか?この数字は何の略ですか?
この操作が完了するまでに何秒または何ミリ秒かかるかを推測する方法はありますか?
残念ながら、答えは次のとおりです。
Oracle実行プランにコストの単位はありますか?
あんまり。
つまり、操作のコストが50の場合、この数値をCPUサイクルまたは使用率にマッピングできますか?
いいえ。
この数字は何の略ですか?
これは次のように定義されています:( 用語集 を参照)
実行プランの推定リソース使用量を表す数値の内部メジャー。コストが低いほど、計画はより効率的になります。
その数の定義に関しては、これですべてです。
この操作が完了するまでに何秒または何ミリ秒かかるかを推測する方法はありますか?
いいえ。私の経験では、同じクエリのさまざまなプランを比較するためにのみ使用し、次に少し(まあ、たくさん)の塩を使用する必要がある値です。 1つのプランのコストが10で、別のプランのコストが1Mの場合、最初のプランの方が速くなる可能性があります。コストが近い場合、実行時の動作が似ている可能性がありますが、常にそうであるとは限りません。
Oracle Optimizer --Explain the Explain Plan (PDF)ドキュメントには、その値に関するいくつかの単語がありますが、次のとおりです。
オプティマイザーのコストモデルは、クエリで使用されるIO、CPU、およびネットワークリソースを考慮します。 [...]
コストは内部単位であり、プランの比較を可能にするためにのみ表示されます。
OracleはExplain Planでコストをどのように計算しますか? Stack Overflowには、そのコスト値に関連するいくつかの適切な入力(Oracle 9iの「式」を含む)と、Justin Caveからの適切なアドバイス:カーディナリティがあります。見積もりはより意味があり、実際にそれらを現実と比較することができます。
私の場合、同じクエリの2つ以上のバージョンのコストを比較するときは、通常、論理読み取りを比較します。論理読み取りは、さまざまなクエリ間で比較できます。必要なデータを取得し、論理IOが可能な限り低い限り、正しいことを行う必要があります。