需要 sp_tableoption“行中的文本”建議後顯式更新表
我有一個非常慢的 8GB sql server 2000 DB,其原因是查詢更多的表中的 3 個 ntext 列。表設置了索引,還為這些 ntext 列設置了全文 ssearch 索引,但是當“從表中選擇 ntextcol1,ntextcol2”時,查詢最多需要 5 分鐘……瘋了!但是,當人們知道要感染哪一行時,通過它的 id 快速索引它!
為了克服這個問題,我嘗試使用 sp_tableoption “text in row”, 4000 但根據一些 Msft Technet 閱讀,只有在更新現有記錄時才會對現有記錄執行此操作。所以我在考慮強制更新行,這樣它會觸發新選項的使用,並希望有更好的性能。
這張表有 100000 行,看起來很可怕,所以我在尋找你的一些意見,知道你以前是否做過,如果有什麼特別的建議,如果它是一個順利的過程……
在我看來,您缺少應用程序實際使用的查詢的索引。
select ntextcol1, ntextcol2 from table
花 5 分鐘不是重點:這是檢索所有 LOB 的表掃描。您的應用程序(希望…)永遠不會發出此查詢。在行中拉取 ntext(您應該使用 `NVARCHAR(MAX) btw)或將它們推出行不是您應該查看的內容。閱讀通用索引設計指南和該部分中的所有相關文章(聚集索引設計指南、非聚集索引指南等)。並了解如何辨識應用程序中的問題查詢,索引應針對這些查詢:SQL Server 2005 中的性能問題故障排除、等待和隊列
在http://decipherinfosys.wordpress.com/2007/08/03/text-in-row-option-in-sql-server/找到了我需要的答案。希望這也可以幫助將來遇到同樣問題的人。
感謝你們提供的所有建議!
乾杯!