先确认一下问题,是代码操作的查询还是连接oracle工具操作的查询,优化大数据量主要先从三两方式入手,第一,建索引,这个有讲究:主要是针于你的查询条件(即是在where后面的字段建索引,有几个条件字段就建几个,如果有组合条件查询,那建联合索引)。第二点,就是按表中的数据,进行表分区,如按时间段进行分区,按区域进行分区,按单位或部门进行分区等。减少全表扫描。三,检查一下表空间大少。
如果是要把这些记录(200W)都取出来,这个时间应该是正常的,需要把这些记录全部从磁盘取出来显示。
如果是从200W里取一些数据出来,应该就不能花这么多时间。
为什么会有取200W条数据这样的需求?取出来做什么用?
查询几条数据,查询的条件多吗,如果需要全表扫描的话,按指定的关键字进行分区,建立分区表,这样可以减少扫描,你可以试一下
使用 explain plan FOR,执行计划,看是否使用了索引进行查询
代码:通过查询执行计划,查看Oracle查询语句是否使用索引
1. 统计信息失真
2. 查询未使用到索引,即走的是全表扫描
看看查询计划吧