3

我正在嘗試將大量記錄插入到全文索引的表中。我已將更改跟蹤設置爲auto插入到Sql Server 2005上的全文索引表時,性能癱瘓

記錄從另一個表中插入,一次編號通常約爲50,000。在SQL Server 2008上,這需要5秒鐘完成。但在我們2005年的現場環境中運行需要10分鐘以上。

看看執行計劃,它似乎插入到全文跟蹤表的聚集索引中,這是問題所在。主鍵列是uniqueidentifier,分配爲newsequentialid()。但在2008年1 Clustered Index Mergefulltext_index_docidstatus,2005做了聚集索引插入fulltext_index_map上50,000次。

不幸的是,升級服務器現在不是一個選項。關閉變更跟蹤可以解決問題,但我真的不想這樣做,因爲管理人口本身並不會很好。更改跟蹤似乎是獲取全文索引中顯示新記錄的最快方式,這是優先考慮的事項。

有沒有辦法在啓用此功能的同時保持更改跟蹤?

回答

2

我懷疑問題的真正本質是全文引擎在2008年被移入SQL Server內部,而以前的版本使用外部MSFTESQL服務。這意味着SQL 2008在處理全文索引時可以充分利用基於集合的操作,而正如您所見,2005年必須單獨處理每行。更多細節可以在Microsoft White Paper找到。最重要的是,我認爲您必須關閉更改跟蹤才能實現您正在尋找的或長時間插入的效果。

+0

謝謝。我想我必須在批量操作之前關閉更改跟蹤,然後再運行增量更新。 – 2010-07-22 09:25:19