我們遇到了SQL Server性能方面的一些困難,希望得到一些幫助。SQL Server 2005 64位查詢阻止
我們的環境是: -
的Windows 2003 x64企業版R2 英特爾E5450四核處理器3GHz的16GB RAM 的SQL Server 2005 64位企業版(9.00.3282.00) 數據庫的兼容性是8(但在測試9以及) 超線程關閉
我們有與正在查詢(低效地)一個120萬行表中的一個數據庫,但是導致所有4個處理器被飽和到其中所有其他查詢被阻塞,直到所述點查詢完成。這包括查詢來分離數據庫和完全不相關的表。
如果使用MAXDOP 1選項運行查詢,那麼所有4個內核以25%的速度運行,查詢需要4倍的時間,這種情況下沒有阻塞。除此之外,我們在SQL 2000上運行相同的查詢,響應時間相同,但沒有CPU飽和。
我們懷疑問題可能在tempdb上發生爭用。在這個特定的實例中,我們有一個使用臨時表的存儲過程,以及訪問我假設的臨時數據庫的並行查詢。
顯然,標準響應將重新編寫查詢。首先,這不是一個真正可行的選擇,其次這只是治療問題的症狀。本質上,服務器無法處理多個請求,這非常值得關注。
有沒有人知道任何補丁,配置更改或已知的問題,可能會導致此?有沒有人見過這個?這是一個64位的細微差別嗎?
問候
李
你能上傳執行計劃的副本嗎?在SSMS中,單擊包括實際查詢計劃選項,運行查詢,然後轉到結果中的查詢計劃選項卡。在那裏右鍵單擊並保存爲XML。 – 2009-02-25 13:26:16