1

SQLServer2008の「OPTIMIZEFORUNKNOWN」クエリプランオプションの背後にある理論と見解を読みました。私はそれが十分にうまくいくことを理解しています。

いくつかの限られた実験を行ったところ、ウォームキャッシュを使用すると、10万行を超える場合にのみメリットがあることがわかりました。ただし、これは、結合やフィルタリングなどのない単純なテーブルとクエリで行われました。コールドキャッシュでは、画像の方がはるかに有利であることは間違いありません。

私は現在、前後のベンチングを行うためのプロダクションシステムを持っていません。したがって、誰かがテストの前後に行って、このオプションをいつ使用するか、いつ使用しないかについて、有用な発見をしたかどうかに興味があります。

アップデート:

3つの列、UIDのPK、およびCol2(int)のインデックスを含むテーブルを作成しました。すべての処理はCol2に対して行われました。行数と時間(DATEDIFF * 1000000)が示されています。

Type        1,000   5,000   20,000  100,000
Normal      0.3086  6.327   26.427  144.83, 141.126
Recompile           117.59  584.837 
For Unknown 0.8101  6.52    26.89   143.788, 143.248
4

1 に答える 1

0

あるパラメーター値で生成された計画がパラメーターの別の潜在的な値には完全に不適切であるほど、データが十分に歪んでいる場合に使用します。つまり、パラメータ スニッフィングの問題を解決します。

あなたの質問の残りの部分は、ヒントまたは回答可能な IMO の目的に特に関連していないようです。

于 2010-12-07T12:19:19.857 に答える