一 问题背景:
1.Oracle的版本的为11g
2.数据是由生产库导入部分数据至开发库
3.表为范围分区表
4.order by 的字段为分区表的分区字段
5.数据记录大概有一千万;
5.使用的分析工具为toad10
二 问题描述
1.加上order by的执行计划:
2.去掉order by的执行计划:
三问题分析
步骤1:表order by的字段,是否有索引
ps:经检查,索引正常,开启索引监控,索引会被使用;
步骤2:是否收集过统计信息;
ps:由于是新导入的数据,可能未收集统计信息,重新收集统计,但是很奇怪,分析的统计信息的时间戳,不会更新(正常会更新);
分析前:
分析后:
步骤3:由于有时间范围作为分区的字段,通过增加范围条件,缩小查询的范围;
ps:可能最直接的原因是这个,最后让业务系统,在打开页面的时候,初始化一个时间段,问题解决,执行计划如下:
新闻热点
疑难解答