大多数情况下,我们需要避免SQL在查询时进行全表扫描(FTS),但是对于必须需要进行全表扫描的情况,也可以进行一些优化处理。
即使全表扫描是检索所需数据的唯一可行方法,仍然有多种方法来提升查询性能。优化扫描的技术包括:
1、 通过让表变小来减少扫描所需的逻辑块读取的数量
2、 通过提高数据库IO的效率降低扫描所需要的物理块读取的数量
3、 通过缓存或抽样降低扫描开销
4、 通过使用并行查询选项为扫描分配更多的资源
5、 执行快速全索引扫描来替代全表扫描
6、 对表进行分区,只读取所选择的分区中的数据
特别地,需要完成全表扫描的工作量主要取决于需要扫描的数据块的数量。有很多方法可以减少这个数量。可能需要在进行表设计时,进行合理的估算,然后进行优化设计方面的考虑:
1、 通过重建表来降低HWM。
2、 通过修改PCTFREE或者PCTUSED参数向每个块中塞入更多的记录。
3、 减少记录长度,可能是通过将大的且并不经常访问的列迁移到独立的表中
4、 压缩表中的数据。
原文地址:https://www.cnblogs.com/tzhyy/p/9639058.html
时间: 2024-11-08 20:31:10