隨著網路應用和電子商務的不斷發展,各個站點的訪問量越來越大,資料庫規模也隨之不斷的擴大,資料庫系統的性能問題就越來越突出,因此,如何對資料庫進行調優至關重要:如何使用有限的電腦系統資源為更多的用戶服務?如何保證用戶的回應速度和服務品質?這些問題都屬於伺服器性能優化的範疇。
作為全球第一大資料庫廠商,Oracle資料庫在國內外獲得了諸多成功應用,據統計,全球93%的上市.COM公司、65家”財富全球100強”企業不約而同地採用Oracle資料庫來開展電子商務。我國很多企業、政府單位及電子商務網站也採用了Oracle作為資料庫伺服器。Oracle資料庫伺服器是高度可優化的軟體產品,經常性的調整可以優化應用系統的性能,防止出現系統瓶頸。
資料庫性能優化的基本原則就是:通過盡可能少的磁片訪問獲得所需要的資料。要評價資料庫的性能,需要在資料庫調節前後比較其評價指標:回應時間和吞吐量之間的權衡、資料庫的可用性、資料庫的命中率以及記憶體的使用效率,以此來衡量調節措施的效果和指導調整的方向。
對Oracle資料庫進行性能調整時,應當按照一定的順序進行,因為系統在前面步驟中進行的調整可以避免後面的一些不必要調整或者代價很大的調整。一般來說可以從兩個階段入手:
- 設計階段:對其邏輯結構和物理結構進行優化設計,使之在滿足需求條件的情況下,系統性能達到最佳,系統開銷達到最小;
- 資料庫運行階段:採取作業系統級、資料庫級的一些優化措施來使系統性能最佳;
在系統設計開發階段調整資料庫
為了充分利用Oracle資料庫的功能特性,在設計資訊系統時,資料庫設計人員需要根據業務情況(如訪問量或用戶端數量)和現有資源狀況(如資料庫伺服器的配置)考慮系統結構和資料庫的邏輯結構的設計:
- 調整應用程式結構設計。即應用程式採用的是傳統的C/S兩層體系結構,還是B/W/D三層體系結構。不同的應用程式體系結構要求的資料庫資源是不同的。
- 恰當使用分區、索引及存檔功能。如果某種業務的資料量增長非常快,可以考慮存放該業務的資料庫表是否使用Oracle資料庫的分區功能;對於經常訪問的資料庫表是否需要建立索引;對於經常訪問但是當業務流程完成後不再變動的資料可採用放入歷史檔案的方法來實現應用系統中訪問盡可能少的資料量。
- 恰當編寫訪問資料的SQL語句。良好的SQL語句可以被資料庫重複使用而減少分析時間;恰當的使用索引可使訪問的資料塊大大減少從而減少回應時間。應用程式的執行最終將歸結為資料庫中的SQL語句執行,因此SQL語句的執行效率決定了Oracle資料庫的性能。Oracle公司推薦使用Oracle語句優化器(Oracle Optimizer)和行鎖管理器(row-level manager)來調整優化SQL語句。
- 調整硬碟I/O這一步是在資訊系統開發之前完成的。資料庫管理員可以將組成同一個表空間的資料檔案放在不同的硬碟上,做到硬碟之間I/O負載均衡。
- 確定資料塊大小和存儲參數。由於資料庫的塊大小在資料庫創建以後就不能在修改(除非重建資料庫),因此為了減少資料鏈接和行遷移,又提高磁碟空間的利用率,在設計資料庫時要確定合適的資料塊大小和存儲參數。通常我們是根據樣例資料確定資料塊大小,而根據業務現狀和未來發展趨勢確定存儲參數。