【RAC】10條RAC常用優化方向

secooler發表於2010-11-28
寫在前面的話:Oracle的RAC技術不是一個以提高系統效能為目的的技術,該技術重點側重的是高可用性和系統的可擴縮性。
在單例項上執行效率低下的系統,切換到RAC環境下,往往執行效果將更加的低下。這往往與RAC的Cache Fusion特性有關。
在使用RAC資料庫的時候我們要本著揚長避短的原則,瞭解其本身限制的出處,然後有的放矢的使用。

1.優化Application
無論在單例項資料庫環境還是RAC環境,通過優化應用程式來改善系統執行效率的方法都是最有效和最顯著的。
友情提示:DBA要全程進入到專案開發的整個生命週期,前期的設計最終決定了系統的質量。

2.避免長時間全表掃描
在RAC多節點架構結構中,當節點未請求到本地節點快取記憶體中所需資料時,預設會去其他節點檢查是否已經有曾經被快取的資料,因此,應該盡最大限度的減少GCS的請求帶來的開銷。

3.調整優化Database Buffer Cache
這是一個普遍的優化法則。具體優化方法根據系統的真實環境進行調整。

4.適當引入分割槽技術
適當並正確的使用分割槽技術可以減少RAC節點間的通訊量。
使用Hash雜湊分割槽技術可以有效減少緩衝區爭用的問題(是否使用雜湊分割槽技術需要評估,需要考慮到該技術帶來的負面因素)。
對特定例項中的特定範圍的值進行查詢和修改密集型的系統可以適當的引入Range範圍分割槽和List列表分割槽技術。

5.儘量減少不必要的分析
不必要的分析會增加RAC節點間的通訊量,這樣會嚴重影響RAC的效能,因此建議不要做不必要的分析。

6.採用自動段空間管理
因為自動段空間管理可以提供例項與表塊的關聯。

7.使用Sequence並增加Cache的大小
增加Sequence的Cache大小可以有效的避免序列爭用的問題,尤其需要注意的是:不要使用表來實現Oracle序列的功能,因為如果使用表來完成唯一編號的生成將會給系統帶來非常大的爭用問題。

8.謹慎對待鎖定
如果應用程式設計過程中給系統帶來過多的潛在鎖定因素,在RAC環境中這將是比較致命的隱患。單例項中的鎖等待問題會在RAC環境被放大。

9.刪除不必要的索引
在資料庫設計過程中,索引的設計應該遵循的一個原則是“事出有因”。即要清楚地明白每一個索引存在的價值,該索引都會為哪些SQL服務。刪除那些那些極耗資源的非選擇性索引。

10.網路環境的優化
因為節點間的通訊是RAC的瓶頸,因此優化節點間網路環境也是RAC有效的優化手段。使用專用網路提供RAC節點間的互聯,具體採用什麼樣的裝置只能根據具體預算來看了。目標是:保證不因網路的硬體環境及配置問題影響到RAC執行效能。

11.小結
以上給出的10條RAC優化建議僅僅是最普遍的方法。RAC的應用場景很多,最重要的是針對實際的執行場景給出有針對性的優化方案。
歡迎提出您的寶貴建議。

Good luck.

secooler
10.11.28

-- The End --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-680531/,如需轉載,請註明出處,否則將追究法律責任。

相關文章