Sql-Server

NTEXT、索引和 lob 邏輯讀取

  • May 7, 2014

我們有一個可以從覆蓋索引中受益的查詢,但其中一個將返回的列是 NTEXT 數據類型。我知道這不能添加到索引中,而且我也知道將列轉換為 nvarchar(max) 會很好,但是因為這是第 3 方應用程序(它的 Microsoft Dynamics!),我們目前無法執行此操作.

這些問題看起來是作為 RID 查找的一部分執行的所有 lob 邏輯讀取。有沒有辦法加快這個速度?

是否允許在表中添加計算列或創建物化視圖?

您可以添加一個計算列,然后索引:

ALTER TABLE <table>
  ADD ntext_as_nvarchar_max AS CAST(ntext_column AS NVARCHAR(MAX))  ;

CREATE INDEX index_name
 ON <table> (<index_columns>) INCLUDE (ntext_as_nvarchar_max) ; 

這種方法的問題是您的查詢必須引用新的計算列 ( ntext_as_nvarchar_max) 而不是要使用的索引的原始列。

在**SQL-Fiddle進行測試**

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