修正︰ 您收到錯誤訊息,用以代表母體執行大型的全文檢索索引在 SQL Server 2008年中,或在 SQL Server 2008 R2 時

適用於: SQL Server 2008 StandardSQL Server 2008 EnterpriseSQL Server 2008 Developer

Microsoft 會為一個可下載的檔案散佈 Microsoft SQL Server 2008年的修正程式。的修正程式是累積的因為每個新版本包含的所有 hotfix,並隨附於先前的 SQL Server 2008年所有安全性修正程式會都修正版本。

狀況


徵狀 1

當您執行大型的全文檢索索引或 Microsoft SQL Server 2008 R2 Microsoft SQL Server 2008年中,用以代表母體時,您可能會收到錯誤訊息,全文檢索記錄檔中。會記錄此錯誤訊息的次數減一的批次大小而定。例如,在 32 位元電腦上,批次大小是 1000,所以錯誤會登載 999 的時間。類似下列的錯誤訊息︰
錯誤 ' 0x8004cb04︰ 於記憶體中的字詞清單已損毀。這是因為無效的篩選、 文字分隔或其他索引的元件。 '資料表的全文檢索索引擴展期間發生,或索引檢視' [smarsh]。[dbo]。[ArchiveMsgs]' (資料表或索引檢視表識別碼 '160719625',資料庫識別碼' 7'),全文檢索索引鍵值 '291484087'。將會嘗試重新建立它的索引。
您收到這個錯誤訊息之後,您也可能會收到下列錯誤訊息減一批次大小︰
全文檢索時,發生錯誤 '0x80040e28' < 日期 >< 時間 > spid28s 索引母體擴展資料表或索引檢視 ' [smarsh]。[dbo]。[ArchiveMsgs]' (資料表或索引檢視表識別碼 '160719625',資料庫識別碼' 7'),全文檢索索引鍵值 '199598211'。將會嘗試重新建立它的索引。
您收到這個錯誤訊息之後,您也可能會收到下列錯誤訊息減一批次大小︰
< 日期 >< 時間 > spid26s 錯誤 ' 0x80043630︰ 篩選精靈的處理 MSFTEFD 逾時原因不明。這可能表示篩選器、 文字分隔或通訊協定處理常式。 中的錯誤 '資料表的全文檢索索引擴展期間發生,或索引檢視' [smarsh]。[dbo]。[ArchiveMsgs]' (資料表或索引檢視表識別碼 '160719625',資料庫識別碼' 7'),全文檢索索引鍵值 '14304130'。將會嘗試重新建立它的索引。
徵狀 2

此外,您可能會發現 FDHOST.exe 程序功能有問題。當您嘗試執行全文檢索查詢,或執行全文檢索母體擴展時,您會收到下列訊息傳回給用戶端。
訊息 30053,層次 16,狀態 102,行 1
中斷的 Word 逾時為全文檢索查詢字串。如果文字分隔花了很長的時間來處理全文檢索查詢字串中,或是在伺服器上執行大量查詢,也可能會發生。請嘗試執行一次在較淡的負載下的查詢。
當您檢查這個目錄的 SQLFT * 記錄時,您會注意到這個錯誤訊息︰
在資料表的全文檢索索引擴展期間發生錯誤 '0x80004005',或索引檢視 ' [dbname 引數]。[dbo]。[表格名稱]' (資料表或索引檢視表識別碼 '1204001724',資料庫識別碼' 5'),全文檢索索引鍵值 '4'。將會嘗試重新建立它的索引。
當您檢查 SQL 錯誤記錄檔時,您會注意到這個錯誤訊息︰
錯誤︰ 30089,高的嚴重性等級︰ 17,狀態︰ 1。
已經異常停止全文檢索篩選精靈的主機 (FDHost) 程序。如果設定不正確或故障語言元件,例如文字分隔、 字幹或篩選已經造成的錯誤 hash 全文檢索索引或查詢處理期間,會發生這項目。處理程序將自動重新啟動。

原因


之所以發生這個問題,是因為 Sqlservr.exe 程序和 Fdhost.exe 程序之間的通訊中的錯誤。Fdhost.exe 程序,從 Sqlservr.exe 處理序傳送的批次,有時候輸出共用的記憶體 (OSM),也就是從 Sqlservr.exe 到 Fdhost.exe 的共用的記憶體,會有足夠的空間,以符合文件的下一欄。當發生這種情況時,Sqlservr.exe 程序會傳送郵件以通知 Fdhost.exe 處理序所有現有的資料在 OSM 中。雖然 Fdhost.exe 程序處理資料時,輸入共用的記憶體 (ISM),也就是從 Fdhost.exe 到 Sqlservr.exe 的共用的記憶體,可能會變成完整。在此情況下,Fdhost.exe 程序會將 「 倒帶 」 訊息傳送到 Sqlservr.exe 程序。此訊息要求 Sqlservr.exe 程序重新傳送最後一個文件第一欄。不過,當 Sqlservr.exe 程序啟動一次傳送文件時,它會從開始而不是欄 1 的資料行 2。這會造成 < 徵狀=""> 一節所述的錯誤訊息。

解決方案


累積更新資訊

SQL Server 2008 R2 Service Pack 2

這個問題的修正程式首次發表累積的更新 3] 中。如需有關如何取得此累積更新套件,SQL Server 2008 R2 Service Pack 2 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰
2754552累計更新套件 3,SQL Server 2008 R2 Service Pack 2
注意因為組建是累計的每個新的修正程式版本會包含所有的快速補充程式,並隨附於前一筆 SQL Server 2008 R2 Service Pack 2 的所有安全性修正都修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
SQL Server 2008 R2 建置 SQL Server 2008 R2 Service Pack 2 已發行之後所發行的2730301

SQL Server 2008

這個問題的修正程式首次發表累積的更新 4] 中的 SQL Server 2008年的發行版本。如需有關如何取得此累積更新套件,SQL Server 2008 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰
963036累計 SQL Server 2008 中更新套件 4
注意因為組建是累計的每個新的修正程式版本會包含所有的 hotfix,並隨附於先前的 SQL Server 2008年所有安全性修正程式會都修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
SQL Server 2008年建置 SQL Server 2008年發行之後所發行的956909

SQL Server 2008 Service Pack 1

第一次這個問題的修正程式已於累積的更新 1 上發行,SQL Server 2008 Service Pack 1。如需有關如何取得此累積更新套件,SQL Server 2008 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰
969099累計更新套件 1 的 SQL Server 2008 Service Pack 1
注意因為組建是累計的每個新的修正程式版本會包含所有的 hotfix,並隨附於先前的 SQL Server 2008年所有安全性修正程式會都修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
SQL Server 2008年建置 SQL Server 2008 Service Pack 1 發行之後所發行的970365

因應措施


若要解決這個問題,請增加 ISM 大小。若要執行這項操作,請使用sp_fulltext_service來設定 ISM_Size 變數預存程序。

若要顯示目前的值︰
sp_fulltext_service 'ism_size'

若要將值變更為 16:
sp_fulltext_service 'ism_size',@value=16

注意: 您必須重新啟動 SQL Server 服務,這個變更才會生效。

狀態


Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。

更多的資訊


這個問題不會阻止完成的母體擴展。 全文檢索索引有內建的重試邏輯,會繼續重試失敗的項目,直到成功為止。因此,您可以放心地忽略的錯誤訊息。唯一已知潛在負面的副作用是錯誤的,可能要花較長的時間,比平常完成的母體擴展全文檢索的記錄檔成長也會大幅增加報告。

在原始程式碼中的重試邏輯會導致不到索引中,儘管錯誤訊息,表示可能已損毀的損毀的情況下的最終成功母體擴展。


如果您執行到的徵狀 #2如上面所述,然後全文檢索搜尋查詢或擴展將無法作用,因為 FDHOST 元件不在正確的狀態,函式,而且您將需要套用此累積更新。

SQL Server 2008 累積更新套件 4 的詳細資訊

如需有關變更哪些檔案,及要套用累積更新套件,其中包含這個微軟知識庫文件所述的 hotfix 的任何必要條件的相關資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文︰
963036累計 SQL Server 2008 中更新套件 4

SQL Server 2008 Service Pack 1 如需有關累積更新套件 1

如需有關變更哪些檔案,及要套用累積更新套件,其中包含這個微軟知識庫文件所述的 hotfix 的任何必要條件的相關資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文︰
969099累計更新套件 1 的 SQL Server 2008 Service Pack 1

參考


如需可用的 SQL Server 2008年發行後的組建的清單的相關資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰

SQL Server 2008年建置 SQL Server 2008年發行之後所發行的956909

如需 SQL Server 的累加式的服務模型的相關資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰

935897的累加式服務模型可以使用從 SQL Server 小組製作報告的問題的 hotfix

如需有關 SQL Server 更新的命名結構描述的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰

822499新命名的結構描述的 Microsoft SQL Server 軟體更新套件

如需有關軟體更新術語的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
用來描述 Microsoft 軟體更新標準術語的編號 824684描述