程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 白話Oracle:熱點表優化總結

白話Oracle:熱點表優化總結

編輯:Oracle教程

白話Oracle:熱點表優化總結


1、優化與熱點表相關的sql,sql執行時間過長就會長時間的持有latch。對於返回結果數量較少的語句,應該檢查是否用到索引和分區條件。例如我們查詢已經建立分區的表,如果返回少量數據,我們可以創建索引(或分區索引)並且用到分區條件,如果沒有用到查詢分區表的執行效率反而更低。
2、 對於需要返回大量數據的查詢語句盡量減少執行次數,一次讀取數據放入緩存(如在代碼邏輯中靈活使用map等數據結構作為緩存層,或者使用memcach等工具),業務層盡量通過緩存讀取數據,同時根據一定邏輯更新緩存;
3、 對於大表(百萬行以上)考慮組合使用HASH分區,將數據均勻分布到不同分區,避免熱點塊的競爭改善IO;
4、 如果表的訪問量很大但很少更新,經常通過主鍵進行查詢,可以創建索引組織表iot減少查詢時的回表動作提高查詢性能;
5、 減少表的行遷移,根據原表創建新表,並調整這些表的pctfree參數(塊的free空間),可以減少行遷移,降低查詢時的邏輯IO讀;
6、 考慮啟用keep 緩沖池(目前我們是停用的),將表keep到緩沖池中;
7、 創建臨時表空間組,讓數據庫把不同的session分配到不同的臨時表空間,在session層面進行IO負載均衡。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved