Sql-Server

為什麼當我加入索引視圖中的強制轉換欄位時,執行計劃會警告“表達式中的類型轉換”?

  • December 12, 2019

我認為索引視圖已物化並因此儲存在磁碟上。如果是這種情況,我會認為我在視圖中所做的任何類型轉換都會在磁碟上實現為該數據類型,並且在使用 JOIN 和 WHERE 謂詞中的這些欄位時,我不必擔心轉換問題看法。

為什麼不是這樣?

表達式警告中的類型轉換

除非使用NOEXPAND表提示,否則在查詢編譯期間會展開索引視圖。在該擴展上生成警告。在企業版中,優化器稍後可能會將擴展匹配回物化視圖。這是一個基於成本的決定。

在企業版(或同等版本)以外的任何版本中,必須使用提示NOEXPAND在物化視圖上使用索引。

在企業版中,仍然有充分的理由使用NOEXPAND提示:

引用自:https://dba.stackexchange.com/questions/255438