我們在做開發時,常用到Oracle數據庫來開發一些大型項目,如何優化Oracle來提高效率這是開發者都曾遇到或者將會遇到的問題。
現在我們就來一起研究研究Oracle調優的一些基本方法。
方法一:硬件調優。
硬件的更新和升級是Oracle調優最直接的方法:主要包括內存、cpu和磁盤這三個硬件升級。
但是這種方法帶來的是成本的增高,公司不到萬不得已也不會批准用這種,從市場的角度和技術的角度我們都不提倡先用這種方法。
方法二:平衡、合理地限制資源的使用。
根據業務需求的特性來充分利用這是很聰明的辦法,前提是在前期應該做一個近乎完美的需求和設計,要提前想到可能面臨的問題。
我們主要根據兩個特性來判斷:
1.一次或多次對Oracle有大數據量的讀取或寫入。
如一些統計部門就需要對上千萬甚至上億的數據做處理,對數據庫就會有大量的讀取,這直接影響了數據庫的效率。
2.對數據庫頻繁的訪問。
一些在線系統,當有大量人員登錄或登出時,這個數據庫和服務器都造成了極大的壓力,甚至可能造成服務器直接“當掉”。
以上兩種情況就需要開發這充分的考慮並作出正確的設計,對Oracle的SGA,共享池、數據緩衝區、日誌緩衝區做出合適的調整,
來迎接這些極端“氣候”。
方法三:SQL調優。
SQL語句的優化往往會有意想不到的效率提高,尤其是在數據量極大的情況下。
SQL調優有以下規則:
1.From最右邊的表爲基礎表,數據庫會先解析,所以把數據量最小的表作爲基礎表。
2.查詢條件從where最遠端開始解析,所以最後的where條件限制量最大。
3.用truncate代替delete,不會產生回滾段,減少寫日誌的過程,提高效率。
4.使用ROWID,訪問索引提升性能。
5.避免改變索引列類型,避免使用IS NULL 和 IS NOT NUL。L
6.union all 比union 效率更高,因爲union有distinct去重。
7.用IN替換OR。
以上並不是提升Oracle性能的全部方法,還有很多待我們繼續深入研究。
歡迎大家提出更多的寶貴意見,如轉載請註明出處。