(轉) Oracle SQL優化必要的全表掃描思路分析


大多數情況下,我們需要避免SQL在查詢時進行全表掃描(FTS),但是對於必須需要進行全表掃描的情況,也可以進行一些優化處理。

即使全表掃描是檢索所需數據的唯一可行方法,仍然有多種方法來提升查詢性能。優化掃描的技術包括:

1、  通過讓表變小來減少掃描所需的邏輯塊讀取的數量

2、  通過提高數據庫IO的效率降低掃描所需要的物理塊讀取的數量

3、  通過緩存或抽樣降低掃描開銷

4、  通過使用並行查詢選項為掃描分配更多的資源

5、  執行快速全索引掃描來替代全表掃描

6、  對表進行分區,只讀取所選擇的分區中的數據

 

特別地,需要完成全表掃描的工作量主要取決於需要掃描的數據塊的數量。有很多方法可以減少這個數量。可能需要在進行表設計時,進行合理的估算,然后進行優化設計方面的考慮:

1、  通過重建表來降低HWM (高水位)。

2、  通過修改PCTFREE或者PCTUSED參數向每個塊中塞入更多的記錄  (請了解pctfree 和pctused 的相關知識)。

3、  減少記錄長度,可能是通過將大的且並不經常訪問的列遷移到獨立的表中

4、  壓縮表中的數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM