在分区的Oracle表上运行SQL时,是否有很大的性能损失,而SQL没有引用用于分区的列?
答案 0 :(得分:1)
这取决于。如果WHERE子句不基于任何索引列,则查询将非常慢,因为Oracle必须执行全表扫描。
如果WHERE子句中的列具有全局定义的索引,则无论是仅访问一个分区还是全部分区都无关紧要。
但是,当您的表具有WHERE子句使用的许多分区和本地定义的索引时,会出现降级。假设您的表有50个分区,并且本地定义了索引,那么未指定分区的查询(通过WHERE条件或通过分区名称显式)必须同样扫描50个单独的索引。