如何優化資料庫,如何提高資料庫的效能?
答:
1)硬體調整效能最有可能影響效能的是磁碟和網路吞吐量,解決辦法擴大虛擬記憶體,並保證有足夠可以擴充的空間;把資料庫伺服器上的不必要服務關閉掉;把資料庫伺服器和主域伺服器分開;把 SQL 資料庫伺服器的吞吐量調為最大;在具有一個以上處理器的機器上執行SQL 。
2)調整資料庫
若對該表的查詢頻率比較高,則建立索引;建立索引時,想盡對該表的所有查詢搜尋操作, 按照 where 選擇條件建立索引,儘量為整型鍵建立為有且只有一個簇集索引,資料在物理上按順序在資料頁上,縮短查詢範圍,為在查詢經常使用的全部列建立非簇集索引,能最大地覆蓋查詢;但是索引不可太多,執行 UPDATE DELETE IN SERT 語句需要用於維護這些索引的開銷量急劇增加;避免在索引中有太多的索引鍵;避免使用大型資料型別的列為索引;保證每個索引鍵值有少數行。
3)使用儲存過程
應用程式的實現過程中,能夠採用儲存過程實現的對資料庫的操作儘量通過儲存過程來實現,因為儲存過程是存放在資料庫伺服器上的一次性被設計、編碼、測試,並被再次使用,需要執行該任務的應用可以簡單地執行儲存過程,並且只返回結果集或者數值,這樣不僅可以使程式模組化,同時提高響應速度,減少網路流量,並且通過輸入引數接受輸入,使得在應用中完成邏輯的一致性實現。
4)應用程式結構和演算法 建立查詢條件索引僅僅是提高速度的前提條件,響應速度的提高還依賴於對索引的使用。因為人們在使用SQL時往往會陷入一個誤區,即太關注於所得的結果是否正確,特別是對資料量不是特別大的資料庫操作時,是否建立索引和使用索引的好壞對程式的響應速度並不大,因此程式設計師在書寫程式時就忽略了不同的實現方 法之間可能存在的效能差異,這種效能差異在資料量特別大時或者大型的或是複雜的資料庫環境中(如聯機事務 處理 OLTP 或決策支援系統 DSS )中表現得尤為明顯。在工作實踐中發現,不良的 SQL 往往來自於不恰當的索引設計、不充份的連線條件和不可優化的 where 子句。在對它們進行適當的優化後,其執行速度有了明顯地提高!