程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 簡單談談Oracle SQL調優

簡單談談Oracle SQL調優

編輯:Oracle數據庫基礎

Oracle還是比較常用的,於是我研究了一下Oracle SQL調優,在這裡拿出來和大家分享一下,希望對大家有用。Oracle SQL調優是一個復雜的主題,甚至是需要整本書來介紹Oracle SQL調優的細微差別。不過有一些基本的規則是每個Oracle DBA都需要跟從的,這些規則可以改善他們系統的性能。SQL調優的目標是簡單的:

◆消除不必要的大表全表搜索:不必要的全表搜索導致大量不必要的I/O,從而拖慢整個數據庫的性能。調優專家首先會根據查詢返回的行數目來評價 SQL。在一個有序的表中,如果查詢返回少於40%的行,或者在一個無序的表中,返回少於7%的行,那麼這個查詢都可以調整為使用一個索引來代替全表搜索。對於不必要的全表搜索來說,最常見的調優方法是增加索引。可以在表中加入標准的B樹索引,也可以加入bitmap和基於函數的索引。要決定是否消除一個全表搜索,你可以仔細檢查索引搜索的I/O開銷和全表搜索的開銷,它們的開銷和數據塊的讀取和可能的並行執行有關,並將兩者作對比。在一些情況下,一些不必要的全表搜索的消除可以通過強制使用一個index來達到,只需要在SQL語句中加入一個索引的提示就可以了。

◆在全表搜索是一個最快的訪問方法時,將小表的全表搜索放到緩存中,調優專家應該確保有一個專門的數據緩沖用作行緩沖。在Oracle7中,你可以使用alter table xxx cache語句,在Oracle8或以上,小表可以被強制為放到KEEP池中緩沖。

◆確保最優的索引使用:對於改善查詢的速度,這是特別重要的。有時Oracle可以選擇多個索引來進行查詢,調優專家必須檢查每個索引並且確保Oracle使用正確的索引。它還包括bitmap和基於函數的索引的使用。

◆確保最優的JOIN操作:有些查詢使用NESTED LOOP join快一些,有些則是HASH join快一些,另外一些則是sort-merge join更快。

這些規則看來簡單,不過它們占SQL調優任務的90%,並且它們也無需完全懂得Oracle SQL的內部運作。這裡我們來簡單概覽一下Oracle SQL調優。

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