Oracle SQL优化必要的全表扫描思路分析

Posted 天之痕羽翼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle SQL优化必要的全表扫描思路分析相关的知识,希望对你有一定的参考价值。

大多数情况下,我们需要避免SQL在查询时进行全表扫描(FTS),但是对于必须需要进行全表扫描的情况,也可以进行一些优化处理。

即使全表扫描是检索所需数据的唯一可行方法,仍然有多种方法来提升查询性能。优化扫描的技术包括:

1、  通过让表变小来减少扫描所需的逻辑块读取的数量

2、  通过提高数据库IO的效率降低扫描所需要的物理块读取的数量

3、  通过缓存或抽样降低扫描开销

4、  通过使用并行查询选项为扫描分配更多的资源

5、  执行快速全索引扫描来替代全表扫描

6、  对表进行分区,只读取所选择的分区中的数据

 

特别地,需要完成全表扫描的工作量主要取决于需要扫描的数据块的数量。有很多方法可以减少这个数量。可能需要在进行表设计时,进行合理的估算,然后进行优化设计方面的考虑:

1、  通过重建表来降低HWM。

2、  通过修改PCTFREE或者PCTUSED参数向每个块中塞入更多的记录。

3、  减少记录长度,可能是通过将大的且并不经常访问的列迁移到独立的表中

4、  压缩表中的数据。

以上是关于Oracle SQL优化必要的全表扫描思路分析的主要内容,如果未能解决你的问题,请参考以下文章

警惕 Oracle 索引优化时陷阱之无效的索引范围扫描(INDEX RANGE SCAN)导致的全表扫描

mysql 优化-数据类型不匹配导致的全表扫描

Oracle解释计划解析——Oracle做全表访问

优化 SQL 查询以避免全表扫描

避免全表扫描的sql优化

避免全表扫描的sql优化