1. 程式人生 > >Oracle SQL優化必要的全表掃描思路分析

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

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

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

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

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

3、  通過快取或抽樣降低掃描開銷

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

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

6、  對錶進行分割槽,只讀取所選擇的分割槽中的資料

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

1、  通過重建表來降低HWM。

2、  通過修改PCTFREE或者PCTUSED引數向每個塊中塞入更多的記錄。

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

4、  壓縮表中的資料。