- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle数据库性能优化技术在邮政系统中的应用
摘要:Oracle数据库在邮政行业应用越来越广泛,而其性能优化直接关系到邮政应用系统的运行效率。本文以数据库性能优化的基本原则为出发点,阐述了在数据库设计阶段如何避免竞争和如何优化数据访问,在数据库运行阶段如何从操作系统和数据库实例级别上调整内存和I/O来达到数据库性能优化的各种技术。
关键词:Oracle数据库,邮政应用系统,性能优化
1、引言
随着邮政应用系统网点的访问量越来越大,采用Oracle数据库(一种支持SQL语言的数据库?Web?是一种体系结构,通过它可以访问遍布于Internet主机上的链接文档。Shared Global Are,是Oracle Instance的基本组成部分,在实例启动时分配。是一组包含一个Oracle实例的数据和控制信息的共享内存结构。①、数据块缓冲区(Database buffer cache)是SGA中的一块高速缓存,用来存储从数据库重读取的数据块(表、索引、簇等),因此采用Least Recently Used (LRU,最近最少使用)的方法进行空间管理。
②、字典缓冲区。该缓冲区内的信息包括用户账号数据、数据文件名、段名、盘区位置、表说明和权限,它也采用LRU方式管理。
③、重做日志缓冲区。保存为数据库恢复过程中用于前滚操作。
④、SQL(全名是结构化查询语言(Structured Query Language),是用于数据库中的标准数据查询语言)共享池。保存执行计划和运行数据库的SQL语句的语法分析树。另外,SGA还包括大池、JAVA池(Java pool是Oracle 8.1.5版本中增加的,目的是支持在数据库中运行Java。)、多缓冲池。但是主要是由上面4种缓冲区构成。一个足够大的内存区可以把绝大多数数据存储在内存中,只有那些不怎么频繁使用的数据,才从磁盘读取,这样就可以大大提高内存区的命中率。
2.6高效地进行SQL语句设计可以采用下面的方法优化SQL对数据操作的表现:
(l)减少对数据库的查询次数,使用快照和显形图等分布式数据库对象可以减少对数据库的查询次数。
(2)尽量使用相同的或非常类似的SQL语句进行查询,这样不仅充分利用SQL共享池中的已经分析的语法树,要查询的数据在SGA中命中的可能性也会大大增加。
(3)限制动态SQL使用,虽然动态SQL好用,但是即使在SQL共享池中有一个完全相同的查询值,动态SQL也会重新进行语法分析。
(4)避免不带任何条件的SQL语句的执行。没有任何条件的SQL语句在执行时,通常要进行全表扫描,数据库先定位一个数据块,然后按顺序依次查找其它数据,对于大型表这将是一个漫长的过程。
(5)如果对有些表中的数据有约束,最好在建表的SQL语句用描述完整性来实现,而不是用SQL程序中实现。
(6)可以通过取消自动提交模式,将SQL语句汇集一组执行后集中提交,程序还可以通过显式地用COMMIT(提交当前事务)和ROLLBACL(回滚事务)进行提交和回滚该事务。
(7)检索大量数据时费时很长,设置行预取数则能改善系统的工作表现,设置一个最大值,当SQL语句返回行超
3、在数据库运行阶段调整数据库
数据库运行阶段调整数据库包括两个方面:操作系统级的调整:数据库级的调整。
3.1、操作系统级的调整
实施操作系统级调整可以通过减少内存交换来实现。
内存交换(swapping)可能会造成很大的内存开销,应将它最小化。运行在SolarisUnix操作系统上的Oracle数据库,可利用vmstat或sar命令来检查交换,查看到系统级内存和硬盘I/O的使用情况,调整Unix数据缓冲池的大小、每个进程所能使用的内存大小等参数。
若系统内存交换较多,且需要节省内存,可采用以下措施:
①避免运行不必要的系统daemon进程或应用程序进程:
②在不明显影响数据块命中率的前提下减少数据库缓冲区的数量,以释放一些内存:
③减少Unix文件缓冲区的数量(特别是在使用裸设备时)。邮政代理开放式基金系统中为了避免对内存资源的竞争,有些参数以文件形式存放,减少使用共享内存技术,从而避免内存交换的出现。
3.2、数据库级的调整
每一个Oracle实例都是由一组Oracle后台进程和SGA的一个内存区组成的。这组后台进程会自动读写数据库的数据文件,因此,数据库性能可以被这些因素所影响: SGA各部分的分配是否合理,使用效率是否正常: I/O和锁竞争是否较多。SGA中:共享池、数据块缓冲区是SGA的主要组成部分
①共享池(shared pool)。
共享池存放库缓存(存储共享SQL和PL/SQL区)和数据字典缓存(数据库对象信息)以及会话期间信息(对于MTS)。由于这些信息是应用程序需要经常访问的,因此这些信息需要保持高的命中率。
②数据块
文档评论(0)