- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Oracle9i数据库查询优化
基于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 ROWNUMTOPOSFROMPOS+1;在进行这项查询时通常需要这5 s-6 s的时间,但这已经不能满足用户的基本需要,因此要从满足用户浏览要求的目的出发,必须要通过优化提速。当然,我们的测试是在假设情况下进行的,结论也不尽人意。但是注意的是,在通过对SQL语句查询时还是需要完善一些细节行问题的,就如一些冷僻字符“#”,“*”等,这样一定会给oracle9i带来识别压力与时间,当然就降低了查询速度。
2 oracle9i查询调整优化
2.1 实例调整
对于一般需要实例调整的对象来说,就是在后台对SGA内存区和oracle9i进行处理的过程,在这2个处理过程中,首先需要解决的问题是GA内存区的调整。
2.1.1 内存区结构调整
系统全局区就是SGA,这个区域很宽容,多个进程相互通信在内存中也不受影响。SGA在oracle9i中的地位首屈一指。SGA具有人性话设置:各户信息与系统进程不会冲突,设置一个缓冲区高速缓存就解决了问题,无论多少外来的合理数据,SGA都会统统接受,就像寄存店一样,你可以随时拿走你寄存的东西。
SGA拥有保存着关于待执行的SQL语句的共享池。它包括两个方面的组成,即数据字典高速缓存及库高速缓存。前者是数据字典中读取的信息存放,我需要看就看;后者是存放那里,你不执行SQL语句信息就看不到。这里面提醒注意的就是,我们都执行同样的SQL语句,虽省去了语法分析步骤的昂贵花费,语法分析树和执行计划会不会被重新利用呢?这是万万不可取的。
2.1.2 SGA结构调整
计算机发展到今天,系统硬件依然是不可忽略的关键。数据库需要高效运行,需要系统全局区的扩大加强。系统硬件做好基础了,系统全局区才会配合数据库高效运行。换句话说,心有多大,舞台就有多大。这句话就适用于数据库。也就是库缓存与能够保存的语法分析信息成正比,随着数据库缓存的增多,能够保存的信息量就越多;而且,不管你运用什么方式进行查询,数据库都会满足你的需要,如表、索引、过程等其他内容,一旦进入驻库,也在首次执行后就高速
文档评论(0)