全部,SQL查詢運行緩慢或DBCC DBReindex或Alter索引後卡住
SQL 2005 sp3,數據庫大小約70gb。偶爾,當我重新索引我所有表格中的所有索引時,前端似乎會凍結或運行速度非常緩慢。這些是來自前端的查詢,而不是sql server中的存儲過程。前端使用JTDS JDBC連接來訪問SQL Server。如果我們停止並重新啓動發送查詢的Web服務,問題似乎就消失了。我的理解是,我們有一個連接池,在該連接池中,我們重新使用連接,並且不會每次建立新的連接。
每次我們重新編制索引時,都不會發生這個問題。我用dbcc dbreindex和alter index online = on嘗試了兩種方法,並在tempdb = on中進行排序。
任何有關此問題發生的原因以及如何防止此問題的任何洞察將是非常有用的。
由於提前,
加里雅培
我看過阻塞,這些查詢沒有被阻止,它們處於掛起狀態。我是一個非常積極主動的數據庫架構師,我有足夠的空間來重新編制數據和日誌文件。現在這裏是一個令人無法接受的轉折,我被告知他們有5個線程打開,只有4個被凍結,一個線程仍在工作。 我相信,當使用JDBC連接進行索引重建期間線程仍處於活動狀態時,它可能無法在刪除索引或重建索引之後識別查詢計劃。有沒有辦法更好地處理這些JDBC連接? – DanceswithLightning 2010-02-09 19:18:07
Suspended仍然會在sys.dm_exec_requests中的wait_type和wait_resource中顯示掛起原因。他們是什麼?關於查詢計劃:當索引重建開始時,它會提升索引的元數據版本,這將使所有現有計劃失效。新的查詢必須重新編譯並生成一個新計劃(因爲新計劃必須更新舊索引和在線的在建工程)。但所有這些都是由服務器處理的,客戶端沒有理由阻止。 – 2010-02-09 19:31:24
我沒有看待等待類型,下次我會。我懷疑現有的JDBC連接正在進行表掃描,這將導致性能下降。有沒有更好的方法來處理現有的JDBC連接?即使在線修改索引時,也會使查詢計劃失效?感謝您的洞察力。 – DanceswithLightning 2010-02-09 20:11:41