一個項目的運行,總伴隨著性能問題,系統查詢過慢,如何快速查詢等 下麵將簡單講解一下,如何去排查及解決這些問題。 開發過程中: 1:不要絕對的三範式,適當建立冗餘能夠提高查詢速度,不用多表關聯 2:能用表關聯就不要出現迴圈SQL 例子:下麵的這種情況,每查出T_t1的一條數據,就會迴圈查找T_t2中的 ...
一個項目的運行,總伴隨著性能問題,系統查詢過慢,如何快速查詢等
下麵將簡單講解一下,如何去排查及解決這些問題。
開發過程中:
1:不要絕對的三範式,適當建立冗餘能夠提高查詢速度,不用多表關聯
2:能用表關聯就不要出現迴圈SQL
例子:下麵的這種情況,每查出T_t1的一條數據,就會迴圈查找T_t2中的數據,使表關聯的索引失效,造成反應慢。
--錯誤示範 SELECT A,B,(SELECT C FROM T_t2 WHERE ID=T_t1.ID) FROM T_t1 --正確做法 SELECT A,B,C FROM T_t1,T_t2 WHERE T_t1.ID=T_t2.ID
3:配置log4jdbc,方便查找出問題的SQL
4:創建合理的索引
索引適用於在大範圍資料庫查找小範圍的數據,若該列數據大部分值相同,或者獲取數據量比重大,就不適用於創建索引。
維護過程中:
1:更改資料庫參數:當一個資料庫安裝後,應更改參數,使其更有利於項目的使用
修改數據緩存區參數:數據緩存是把磁碟的信息裝入到記憶體,讀取記憶體比讀取磁碟速度快的多,應適當提高數據緩存區。
修改個人排序區參數:當需要排序的數據,多於提供的記憶體空間,就會部分數據在排序區,而部分在磁碟區,會經過多次記憶體與磁碟交換,才能完成排序,影響排序速度。
2:定期進行表分析,讓資料庫表一些信息重新生效
3:重建索引,對於一個經常會添加刪除的表來說,數據變化不大,但索引卻在不停膨脹,所以,定期重建索引,有利於查詢。
4:定期對錶碎片進行整理。
5:查看慢SQL的執行計劃:以Sybase作為示例
查看語句的執行計劃: SET SHOWPLAN ON GO SQL語句 GO SET SHOWPLAN OFF GO 查看存儲過程執行計劃: SET SHOWPLAN ON GO EXEC PR_存儲過程 GO SET SHOWPLAN OFF GO