2009-02-23 57 views
0

我在SQL Server 2000上有一個數據庫服務器(是的,我知道......)在其某些表上有全文目錄。我目前正在安靜的時間裏過夜,我希望能夠在白天更新目錄,以便在搜索時考慮到新數據。SQL Server 2000可以填充全文目錄而不會阻塞正在讀取的表嗎?

我注意到的問題是,當增量人口運行時,會有相當數量的阻塞,這是由人口流程造成的。這個數據庫上的其他事務使用「讀取未提交」或髒讀,以儘量減少延遲(我不特別關心最新的準確數據),所以我不確定爲什麼人口,這是本身只是讀取數據,阻止它們。

任何線索,提示?

回答

1

簡單地說:沒有,情況也好不到哪裏去,直到最近的SQL Server 2008的更新2008年的RTM版本假如這些同樣的問題,因爲我們在這裏記錄:

http://www.brentozar.com/archive/2008/11/stackoverflows-sql-2008-fts-issue-solved/

的解決方法是使用最適合您預算和工作負載的最快存儲子系統。全文目錄需要位於數據和日誌的獨立陣列上,這樣他們可以更快地完成填充。

你還提到你驚訝於閱讀導致鎖定。如果你想更具體的答案,人口在看你的服務器

http://sqlserverpedia.com/wiki/SQL_Server_Locking_Mechanism

:我們有文章對SQLServerPedia解釋SQL Server的鎖定過程中,像這樣的。運行sp_who2,查看哪些查詢被阻止,然後運行DBCC INPUTBUFFER(spid)命令以查明其T-SQL是什麼。這樣你可以看到究竟是什麼類型的查詢造成的。如果您確定它使用了未提交的讀取,請上傳您的查詢執行計劃的副本,並且我們可以幫助解釋它以查明發生了什麼。

相關問題