摘 要:对海量数据进行访问查询时,常常遇到系统响应时间过长,占用系统资源过
多的问题。本文结合实例着重对 Oracle 数据库中的查询优化进行了研究,测试结果表明
采用的方法是很有效的,大大缩短了测试用例表的响应时间,最后对海量数据的优化方法
提出了实用性的建议。
关键词:海量数据;Oracle 数据库;查询优化;数据查询。
1 引 言
在直升机飞行地面数据处理平台中,需要查询历史飞行数据来进行飞行状态的模拟及
其飞行事故的分析,从而对当前飞机状态进行评判。其数据量非常巨大。如何对其进行快
速访问,提高系统响应时间就显得十分重要。在实际应用中,往往采用各种优化措施,使
得 SQL 查询经过数据库优化器的处理,得到最佳的执行计划,即数据访问路径,来达到提
高响应速度的目的。由于项目采用的是 Oracle 数据库,以下考虑对 Oracle 数据库进行的
优化情况。
2 Oracle 查询顺序及其调整
Oracle 优化的一般顺序如下:环境调整(服务器、网络、磁盘)、Oracle 实例调整、
Oracle 对象调整、Oracle SQL 调整。我们的测试采用的 Oracle 数据表容量为 50 M,记录条
数为 50 万条。测试方法为:根据用户的查询要求计算得到用户需要浏览的数据记录的起止
位置,然后在 SQL 语句中加入此位置,执行 SQL 语句,查询该数据表,得到用户想要浏
览的记录集合。使 用的 SQL 语句如下:
SELECT*FROM(SELECT*FROM(SELECT*
FROM BIG)
WHERE ROWNUM<TOPOS ORDER
BYROWNUM DESC)WHERE ROWNUM<
TOPOSFROMPOS+1;
使用该 SQL 查询得到结果集需要 5~6 s,这个响应速度难以满足用户浏览要求,因
此必须对其优化以提高响应速度。我们是在假定环境调整已经完成的条件下通过对 Oracle
实例、对象、SQL 查询语句的调整得出结论的,其中重点是对 SQL 语句的调整。
2.1 实例调整
首先进行 Oracle 实例调整。Oracle 实例涉及到 SGA 内存区和一组 Oracle 后台处理
进程。对 Oracle 实例的调整就是对 SGA 内存区和 Oracle 后台处理进程的调整。在对该
问题的解决中,主要是针对 SGA 内存区的调整。
2.1.1 SGA 内存区结构
SGA 就是系统全局区,是指内存中允许多个进程相互通信的区域。在 Oracle 中,
SGA 对所有进程来说都是全局的可用的。图 1 为 SGA 结构图。
评论4