- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
论Oracle数据库性能优化问题
论Oracle数据库性能优化问题
摘要:Oracle数据库作为目前适用性最好的关系数据库引擎之一,能够支持各种业务形式、处理各种复杂事务,得到极为广泛的应用。
关键词:数据库性能优化 逆规范化设计 优化策略
中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2013)11-0218-01
据统计数据库应用系统的性能问题50%的情况下都是由于设计问题引起的。软件设计师在设计软件和数据库结构时,未必能完全知道将来用户使用系统处理业务的各种复杂情况。这就造成在软件系统运行初始阶段只能发现个别的性能问题,而其他的性能问题只能等到系统运行一段时间后才能暴露出来。针对这些问题,我们提出数据库应用系统性能设计优化策略,以提高数据应用子系统的性能。
1 对数据库服务器内存分配的调整
由于对服务器内存参数的调整对oracle的性能影响显著,它成为Oracle数据库性能调优的首选对象。服务器内存参数的调整主要是对数据库系统全局区的调整,系统全局区包括共享池、数据缓冲区、日志缓冲区。其中最主要的是对数据缓冲区和共享池的参数调整。
数据库缓冲区的作用主要是将从磁盘中读取的数据块存放在内存缓存中,从这个意义上说数据库缓冲区越大,存放的共享数据就越多,减少了对磁盘数据的物理读操作,也就提高了系统的响应速度。
2 Sql优化
(1)在基于规则的优化器中,Oracle对from子句中的表名是按照从右到左的顺序进行解析的,即:From子句中排在最后的表会被首先处理。我们把这张表称做驱动表。当from字句中包含多个标的情况下,oracle是通过排序合并的方式连接这些表的,为了提高oracle的执行效率,应当选择包含记录条数少的表作为驱动表,即放在from子句的最后。当from子句中有3张以上的表进行连接查询时,需要将连接其他表的交叉表作为驱动表。
(2)在oracle语句中,where子句的执行顺序是自下而上的对语句进行解析的。为了提高sql语句的执行效率,应该将能过滤掉大量数据的条件写在where子句的最后。
(3)在selcect语句中使用*虽然对编程人员简单方便,oracle会自动列出所有列名,但oracle解析*时则是通过查询数据字典来完成对*的转换的,这样耗费了更多的时间用来查询数据字典,转换,必然降低执行效率,因此在selcect语句中应当直接列出所有的列名。
(4)用where子句代替having子句,在where子句中排除不需要的记录,这样的执行效率将远远高于执行完成之后用having子句对记录进行筛选。
总体来说,Oracle数据库的性能优化涉及的方面很广,是一个系统工程,需要在系统设计运行的过程中,不断运用以上提到的各个方面,对Oracle数据库系统进行优化,以确保数据库的使用效率。数据库的性能变差,往往不是一个方面的问题,而是各种问题相互结合导致的,因此,需要对各种因素综合分析,对各种优化手段综合应用,才能做到将数据库的性能维持在一个比较好的水平。
3 软件开发模式优化策略
3.1 避免访问回滚段
如果查询数据库时,要访问的数据正被另外用户修改,数据库为了维护读一致性,需要访问会滚段来读取查询语句执行时刻的数据值。如果应用程序需要经常读取正在被其它用户修改的数据,数据库系统为了得到一个数据,不得不多次访问磁盘。数据库管理员可通过配置回滚段来减少查询时“snapshot tooold”错误的发生。解决这个问题的根本方法还是需要重新修改应用程序设计,合理对事务进行划分。
3.2 表的分区和并行技术
如果必须要在数据库运行特别耗时的操作。应尽量地把这样的操作分解,严格限制操作所涉及的记录数,并设法使操作并行,充分地提高执行效率。
(1)使用分区。分区技术有两个潜在的好处:提高查询性能和提高数据库可用性。数据库查询时,优化器知道那些分区包含查询所要的数据。而其它分区数据将不会被读取,从而查询任务将更快完成。许多管理工作可在只一个分区上进行,而不影响其它分区的数据。例如可以选择只删除一个表分区中的数据。可对表分区进行再分割,把一个表分区迁移到不同的表空间上。可只对一个表分区进行分析统计。表分区的这些特性。
(2)使用并行。Oracle数据库中几乎所有的操作都支持并行特性,包括查询、插入、和数据加载。并行选项可以使多个处理器同时处理一条命令,在创建库数据库对象时可以设定并行参数,也可在查询语句中重新设。
4 软件测试优化策略
(1)用大量的数据进行测试。系统使用一段时间后,数据库的性能会发生变化。例如oracle数据库一个表的pctfree和pctused参数设置可能会使数据块只有一半的空间被利用或使
您可能关注的文档
最近下载
- 2025年江苏省公务员省考《行测》联考-部分真题(A类).pdf VIP
- 校园消防安全台账范本.docx
- 2024版加油站安全生产管理台账样本.doc VIP
- 精品解析:江苏省南京市玄武外国语学校、科利华中学2022-2023学年八年级下学期期中语文试题(解析版).docx VIP
- PC工法桩专项施工方案 .doc
- foreign language classroom anxiety.pdf VIP
- JT_T 410-2022CN交通运输行政执法标识.pdf
- 标准图集-22TJ310装配式钢筋桁架楼承板系列产品-下册.pdf VIP
- 汽车基础知识在线试题答案2.pdf VIP
- 地质勘查坑探规范.pdf VIP
文档评论(0)