Oracle熱點表最佳化總結

來源:互聯網
上載者:User

Oracle熱點表最佳化總結

1、最佳化與熱點表相關的sql,sql執行時間過長就會長時間的持有latch。對於返回結果數量較少的語句,應該檢查是否用到索引和分區條件。例如我們查詢已經建立分區的表,如果返回少量資料,我們可以建立索引(或分區索引)並且用到分區條件,如果沒有用到查詢分區表的執行效率反而更低。

2、 對於需要返回大量資料的查詢語句盡量減少執行次數,一次讀取資料放入緩衝(如在代碼邏輯中靈活使用map等資料結構作為緩衝層,或者使用memcach等工具),業務層盡量通過緩衝讀取資料,同時根據一定邏輯更新緩衝;

3、 對於大表(百萬行以上)考慮組合使用HASH分區,將資料均勻分布到不同分區,避免熱點塊的競爭改善IO;

4、 如果表的訪問量很大但很少更新,經常通過主鍵進行查詢,可以建立索引組織表iot減少查詢時的回表動作提高查詢效能;

5、 減少表的行遷移,根據原表建立新表,並調整這些表的pctfree參數(塊的free空間),可以減少行遷移,降低查詢時的邏輯IO讀;

6、 考慮啟用keep 緩衝池(目前我們是停用的),將表keep到緩衝池中;

7、 建立暫存資料表空間組,讓資料庫把不同的session分配到不同的暫存資料表空間,在session層面進行IO負載平衡。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.