突然在幾張表中做更新比以前慢了10倍。有什麼好的建議來確定根本原因和優化?索引某些列是否會導致更新速度變慢?還有其他建議嗎?爲什麼SQL在更新時會很慢?
我認爲比猜測更重要的是幫助識別性能的根本原因或指標。
Fluent NHibernate中有什麼可用於幫助確定性能問題的根本原因嗎?
突然在幾張表中做更新比以前慢了10倍。有什麼好的建議來確定根本原因和優化?索引某些列是否會導致更新速度變慢?還有其他建議嗎?爲什麼SQL在更新時會很慢?
我認爲比猜測更重要的是幫助識別性能的根本原因或指標。
Fluent NHibernate中有什麼可用於幫助確定性能問題的根本原因嗎?
首先嚐試更新您的統計信息。
然後,看看你的索引,並確保你只有你所需要的。額外的索引肯定會減慢插入速度。
然後,嘗試重建索引。
不知道模式,查詢或數據量,很難說比這更多。
它值得檢查你的數據文件的增長設置,如果你做了大量的插入,這會強制正常的文件增長,它可以表現爲減速。
原因...
索引過多
越來越多的記錄
更新查詢
鎖定的WHERE子句的不良指數covarage由於多次更新引起的問題(表鎖)
硬件問題(磁盤控制器,網絡等)
1 - 首先檢查,如果該表沒有鎖
2-最近實施的觸發
3-數據庫的刷新可能需要指數重修。
4-某些預定義作業正在進行中。
5-任何不明原因
使用一些查詢analzer工具來看看什麼是真正發生的事情。
另外檢查你是否以無序的方式將數據插入到聚集索引中。
聚集索引按照字段的順序存儲數據,這意味着如果它是唯一的,您將重新安排每個插入的數據。
集羣索引對順序數據的處理效果更好。
+1:如果它不夠,當你更新時,你的索引被重新計算,所以你的表有更多的行,重新計算索引需要更多的時間。也許歸檔可以成爲解決問題的方法:) – LaGrandMere 2010-12-14 14:42:09
你是什麼意思「更新你的統計數據」?我如何重建索引 – leora 2010-12-14 15:00:55
您可以在數據庫中運行'EXEC sp_updatestats' [更新所有統計信息](http://msdn.microsoft.com/en-us/library/ms187348.aspx)。 – RedFilter 2010-12-14 15:14:41