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