我有兩個存盤程序。在其中一個程序中,代碼使用以下提示:選項(優化未知)。另一個存盤程序使用這個提示:option(Optimize for (@id Unknown)。@id 是一個傳遞給存盤程序的引數。這兩個提示有什么區別?
uj5u.com熱心網友回復:
來自檔案:( 我的粗體)
優化未知
指示查詢優化器在編譯和優化查詢時使用所有列值的謂詞的平均選擇性,而不是使用運行時引數值。
如果在同一個查詢提示中使用
OPTIMIZE FOR @variable_name = literal_constant和,查詢優化器將使用指定的特定值。查詢優化器將用于其余的變數值。這些值僅在查詢優化期間使用,而不在查詢執行期間使用。OPTIMIZE FOR UNKNOWNliteral_constantUNKNOWN
所以OPTIMIZE FOR UNKNOWN將適用OPTIMIZE FOR @variable_name UNKNOWN于尚未指定的每個變數OPTIMIZE FOR
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/358083.html
標籤:sql sql-server 数据库 查询语句
上一篇:提交到資料庫表的表格
下一篇:SQL:左連接與分組連接的行
