2012-10-30 95 views
2

我最近從Win 2003/SQL Server 2000(HP ML350 G4p - 具有2GB RAM的Dual Xeon)升級到新硬件(IBM x3200 M3 - 單Xeon QC X3450 2.66GHz 10GB RAM)運行Win 2008 R2/SQL Server 2008.我們運行一個經典的ASP網站,並使用全文搜索功能來幫助客戶搜索我們的產品描述。SQL Server 2008全文搜索性能問題

搜索由存儲過程執行,該存儲過程構建動態查詢以使用謂詞運行搜索。

我有一個間歇性的問題,有些搜索速度非常慢。有時需要一分鐘才能完成。在其他時候,他們將在不到一秒鐘內完成。根本沒有舊服務器上的這個問題。

我已經通過運行SSMS中的存儲過程來複制這個問題,並且有時需要很長時間。

我懷疑SQL Server 2008中新的全文搜索系統,但我不知道如何查明問題。當超時發生時,服務器cpu似乎沒有很大的負載。我不知道還有什麼可以看的。比較新的到SQL Server 2008

更改跟蹤的指數,如果設置爲關,我運行一個作業每天增量更新索引,以及每天優化目錄。

在谷歌上搜索,這似乎是一個相當普遍的問題,但我還沒有找到一個明確的答案。有人能指引我朝着正確的方向嗎?

在此先感謝, 邁克。

回答

2

萬一別人有這個問題,我終於解決了它。我需要應用累積更新9,然後執行以下操作: -

DBCC TRACEON(4199,-1); GO;

DBCC FREEPROCCACHE; GO;

通過Forrestsjs發現從後回答此頁上: http://social.msdn.microsoft.com/Forums/en-US/sqlsearch/thread/7e45b7e4-2061-4c89-af68-febd668f346c/

響應已從約3分鐘下降到2-3秒通配符搜索,例如:「Office 2010的親*」

+0

花了3天才找到您的解決方案。現在它像一個魅力。非常感謝! – balbelias

1

剛剛發現這一點:StackOverflow’s SQL 2008 FTS issue solved(什麼樣的服務包和/或累積更新你申請?)

你從SQL Server 2000升級到SQL Server 2008後重建ALL指標?

您需要。

運行這個(但要確保你有你的DBA /經理/生產運行前誰許可):

exec sp_msforeachtable "DBCC DBREINDEX('?')" 
go 

exec sp_msforeachtable "UPDATE STATISTICS ? WITH FULLSCAN, COLUMNS" 
go 

此外,更新使用計數器:在早期版本的SQL Server,爲表中的值並且索引行數和頁數可能會變得不正確。要更正任何無效的行或頁數,請在升級後的所有數據庫上運行DBCC UPDATEUSAGE

如果不解決您的問題,研究制定「最大並行度」設置爲1

此信息可能會有所幫助:Upgrading from SQL Server 2000 to 2008

你形容「有時走一分多鐘的行爲完成,在其他時間,他們將在不到一秒完成「通常表示不適當的查詢計劃被緩存。

你讀過這個?:SQL 2008 Full-Text Search Problems

你有大量出現的更新?

從這個帖子SQL Server 2008 Full Text slowness

看來,如果要發生:

  • 你有你的全文索引自動追蹤;儘管我們將其更改爲手動,但仍然存在此問題。

  • 您將遇到花費很長時間執行的全文查詢;通常當更新發生在同一時間,所以你可能 只在生產中看到這一點。

  • 您的一個或多個查詢很複雜或需要一些時間才能完成。

您可以通過檢查,看看是否你的系統是緩慢的,由於這個 :

  • SELECT * FROM sys.dm_os_wait_stats聲明,它顯示了非常高的等待時間,一些鎖。

  • Running Sp_who2;它應始終如一地顯示全文收集功能阻止全文查詢,並反過來被查詢所阻止。

當前的工作圍繞此問題是使用一個全球性的跟蹤標誌 微軟RTM版本親切啓用。要使用此功能,請鍵入以下 Transact-SQL語句:DBCC TRACEON(7646,-1)

+0

謝謝米奇。我將閱讀你的鏈接文章,並會看到會發生什麼。感謝您回覆的時間。你已經給我很多東西了。乾杯 - 邁克。 – Mike

+0

嗨米奇。據我所知,SP3已經應用於數據庫。 DB版本是10.0.5500。 你提到我需要重建所有索引。我已經找到了如何通過SSMS爲單個表執行此操作的信息,但是有沒有可以在所有表​​上執行的命令? 乾杯 - 邁克。 – Mike

+0

嗨。 重建索引後性能似乎好很多,但仍不理想。我想知道如果問題可能與查詢計劃。例如,如果我執行2令牌搜索(如「三星SSD」),則最初需要大約9秒才能執行搜索,但之後搜索「三星13.3」或「三星SSD」等後續搜索幾乎是瞬間完成。我使用的是在我的SP中構建動態查詢的一個因素嗎?如果我從動態查詢更改爲一堆單獨的靜態查詢,您認爲查詢計劃緩存會有所改善嗎?感謝, 邁克。 – Mike