基于Oracle9i数据库的查询优化
摘 要 在企业信息化进程中,数据库查询是不可或缺的重要环节,数据库技术是一门新兴技术,但隶属于第三次工业革命——信息技术。如何实现快速、安全、优质、高效查询所需要的数据,就需要对数据库查询进行必要的优化。文章以Oracle9i数据库为例,系统的阐述了对Oracle9i数据库查询顺序、查询优化、查询对象等方面的数据库优化问题,希望能够为从事这个行业相关人员提供一些参考。
关键词 查询顺序;查询对象;Oracle9i
中图分类号:TP311 文献标识码:A 文章编号:1671-7597(2014)04-0101-01
信息技术的一个重要领域就是数据库技术,虽然作为第三次工业革命的信息时代的一个产物,但它对现代计算机信息管理和应用系统而言,却是当之无愧的基础和核心。在数据库技术这一领域一直占据着领先地位的Oracle公司精益求精,在Oracle8i系列方面已经衍生到了Oracle9i数据库。
Oracle公司运行Oracle9i也是在Oracle8i的基础上进行的,Oracle9i数据库的参数依照Oracle8i的很多,在试运营一年后,通过对Oracle9i的新特性的了解才最终完善建立的。但是,任何事物都不是完美的化身,利用STATSPACK分析工具发现,Oracle9i在随后的独立运行中还存在数据库配置不合理的地方,最为明显的就是等待事件和磁盘I/O竞争的问题。当然还有其他一些小问题。不过,这些问题都是可以通过优化进行提高与完善的,本文所谈的就是基于Oracle9i数据库的查询优化这一方面的问题,希望同行指正。
1 oracle9i查询顺序优化
按照一般顺序,oracle9i数据库查询优化如下:首先要对调整环境进行优化,包括服务器、网络、硬盘、磁盘等方面;然后是对应用实例与应用对象进行优化调整;最后才是对关于oracle9i SQL方面的调整。
理清了查询优化顺序,就需要对优化结果进行测试,以表容量为50M,记录条数为50万条的oracle9i数据为准进行。具体方法是,假如某一用户进行查询,该用户需要浏览的数据记录的起止位置,我们根据其要求通过计算得到该记录,将该位置加入到SQL语句中并执行SQL语句查询,通过SQL语句查询可以看出所查询到的数据表是否就是用户需要查询的数据表,也就是是否是用户需要进行浏览的记录的集合。测试过程如下:SELECT NAME,SEX,ID FROM(SELECT*FROM(SELECT*FROM BIG)WHERE ROWNUM < TOPOS ORDER BYROWNUM DESC)WHERE ROWNUM 2 oracle9i查询调整优化
2.1 实例调整
对于一般需要实例调整的对象来说,就是在后台对SGA内存区和oracle9i进行处理的过程,在这2个处理过程中,首先需要解决的问题是GA内存区的调整。
2.1.1 内存区结构调整
系统全局区就是SGA,这个区域很宽容,多个进程相互通信在内存中也不受影响。SGA在oracle9i中的地位首屈一指。SGA具有人性话设置:各户信息与系统进程不会冲突,设置一个缓冲区高速缓存就解决了问题,无论多少外来的合理数据,SGA都会统统接受,就像寄存店一样,你可以随时拿走你寄存的东西。
SGA拥有保存着关于待执行的SQL语句的共享池。它包括两个方面的组成,即数据字典高速缓存及库高速缓存。前者是数据字典中读取的信息存放,我需要看就看;后者是存放那里,你不执行SQL语句信息就看不到。这里面提醒注意的就是,我们都执行同样的SQL语句,虽省去了语法分析步骤的昂贵花费,语法分析树和执行计划会不会被重新利用呢?这是万万不可取的。
2.1.2 SGA结构调整
计算机发展到今天,系统硬件依然是不可忽略的关键。数据库需要高效运行,需要系统全局区的扩大加强。系统硬件做好基础了,系统全局区才会配合数据库高效运行。换句话说,心有多大,舞台就有多大。这句话就适用于数据库。也就是库缓存与能够保存的语法分析信息成正比,随着数据库缓存的增多,能够保存的信息量就越多;而且,不管你运用什么方式进行查询,数据库都会满足你的需要,如表、索引、过程等其他内容,一旦进入驻库,也在首次执行后就高速缓存。你要节省解析和载入代价吗?可以,大的库缓存就可以保证对这些对象的高命中率。优化不是为了个人,而是为了全体。为此,我们对于SGA容量进行相应的增大,这样做的意图就是实现oracle9i实例高效运行。
通过调整优化,即便导入或导出数据量较大的dmp文件时,其速度也显著加快。优化后,Java池的配置也得到了调整,进而实现了B/S结构程序提速,C/S结构系统数据库可以通过优化SGA参数来缩小Java池。
2.2 对象调整
调整的对象就是为优化性能而进行的每一个oracle9i,这其中包括对影响输入输出的参数在内的所有的存储参数进行设置,如Pctfree,pctused,freelist参数等。这些设置都会影响SQL的性能。以pctfree参数为例,对其进行调整要在设计出实际表之后进行。当然,Oracle9i数据库的对象调整还包括索引、过程等,由于一般电脑操作人员都会进行对其调整,我们就不再提及了。
通过调整优化,SGA各内存参数配置合理,提高了查询命中率;表现在磁盘I/O方面则提高了控制和日志文件的打开速度,合理分配了数据文件;而且单独建立了使用16K表、keep pool等用户的临时表空间,重建了应用较多的索引,数据的访问得到加速,优化的目标得以实现。
3 总结
结合以上的叙述我们可以看出,进行数据库优化绝非一个简单的过程,在进行数据库查询优化过程中,我们不仅要通过查询优化顺序逐一进行调整,而且还要从提高查询速度,提升数据库服务性能,增强数据库的管理方面下功夫,以此满足用户安全、稳定、快捷的数据库服务的需求。
参考文献
[1]李圣陶.基于Oracle的数据迁移优化方法研究[D].苏州大学,2010.
[2]李可可.浅析Oracle数据库的性能优化方法[J].硅谷,2011(02).
[3]朱晴.基于Oracle9i数据库系统性能优化[J].电脑知识与技术,2007(12).
[4]刘英霞,刘一臻.Oracle9i数据库性能调优技术应用研究[J].辽宁科技学院学报,2009(01).
期刊库(http://www.zgqkk.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。
【免责声明】本文仅代表作者本人观点,与投稿辅导_期刊发表_中国期刊库专业期刊网站无关。投稿辅导_期刊发表_中国期刊库专业期刊网站站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。
投稿辅导服务咨询与期刊合作加盟
陆老师联系QQ: 913775405(普刊)
蒋老师联系QQ: 867306987(核心)
刘老师联系QQ: 271374912(核心)
联系电话:18015016272
17327192284
投稿辅导投稿邮箱:zgqkk365@126.com
期刊推荐
- 《课程教育研究》 旬刊 国家级
- 《网络空间安全》(信息安全与技术)月刊 国
- 《价值工程》旬刊 国家级 科技统计源期刊
- 《高教论坛》 月刊 省级
- 《法制与社会》旬刊 省级
- 《中国教育学刊》月刊 14版北大核心
- 《语文建设》 旬刊 14版北大核心
- 《中国绿色画报》 月刊 国家级
- 《社科纵横》季刊 社科类优秀期刊
- 《求索》月刊 14版北大核心期刊
- 《财会月刊》旬刊 14版北大核心
- 《艺术品鉴》 月刊 省级
- 《中华建设》月刊 国家级 建设类优秀期刊
- 《教学与管理》旬刊 北大核心
- 《当代经济》 旬刊 省级
- 《新课程研究》旬刊 省级 教育类优秀学术期
- 《文教资料》 旬刊 省级
- 《学术界》 月刊 双核心
- 《吉林教育》旬刊 省级 教育类学术期刊
- 《中国农业资源与区划》 月刊 14版北大核心
- 《继续教育研究》月刊 北大核心期刊
- 《财经界(学术版)》半月刊 国家级
- 《电影评介》半月刊 14版北大核心
- 《公路交通科技》 月刊 北大核心
- 《新闻传播》月刊 省级 新闻类优秀期刊