浅谈ORACLE性能影响因素(试用初级).doc

浅谈ORACLE性能影响因素(试用初级).doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浅谈ORACLE性能影响因素(试用初级)

影响ORACLE性能因素 任何事情都有它的源头,要解决问题,也得从源头开始,影响ORACLE性能的源头非常多,主要包括如下方面: 数据库的硬件配置: CPU、内存、网络条件。   1. CPU:在任何机器中CPU的数据处理能力往往是衡量计算机性能的一个标志,并且ORACLE是一个提供并行能力的数据库系统,在CPU方面的要求就更高了,如果运行队列数目超过了CPU处理的数目,性能就会下降,我们要解决的问题就是要适当增加CPU的数量了,当然我们还可以将需要许多资源的进程KILL掉;   2. 内存:衡量机器性能的另外一个指标就是内存的多少了,在ORACLE中内存和我们在建数据库中的交换区进行数据的交换,读数据时,磁盘I/O必须等待物理I/O操作完成,在出现ORACLE的内存瓶颈时,我们第一个要考虑的是增加内存,由于I/O的响应时间是影响ORACLE性能的主要参数,我将在这方面进行详细的讲解   3. 网络条件:NET*SQL负责数据在网络上的来往,大量的SQL会令网络速度变慢。比如10M的网卡和100的网卡就对NET*SQL有非常明显的影响,还有交换机、集线器等等网络设备的性能对网络的影响很明显,建议在任何网络中不要试图用3个集线器来将网段互联。 OS参数的设置   下表给出了OS的参数设置及说明,DBA可以根据实际需要对这些参数进行设置   内核参数名   说明   bufpages   对buffer空间不按静态分配,采用动态分配,使bufpages值随nbuf一起对buffer空间进行动态分配。   create_fastlinks   对HFS文件系统允许快速符号链接   dbc_max_pct   加大最大动态buffer空间所占物理内存的百分比,以满足应用系统的读写命中率的需要。   dbc_min_pct   设置最小动态buffer空间所占物理内存的百分比   desfree   提高开始交换操作的最低空闲内存下限,保障系统的稳定性,防止出现不可预见的系统崩溃(Crash)。   fs_async   允许进行磁盘异步操作,提高CPU和磁盘的利用率   lotsfree   提高系统解除换页操作的空闲内存的上限值,保证应用程序有足够的可用内存空间。   maxdsiz   针对系统数据量大的特点,加大最大数据段的大小,保证应用的需要。(32位)   maxdsiz_64bit   maximum process data segment size for 64_bit   Maxssiz   加大最大堆栈段的大小。(32_bit)   maxssiz_64bit   加大最大堆栈段的大小。(64_bit)   Maxtsiz   提高最大代码段大小,满足应用要求   maxtsiz_64bit   原值过大,应调小   Minfree   提高停止交换操作的自由内存的上限   Shmem   允许进行内存共享,以提高内存的利用率   Shmmax   设置最大共享内存段的大小,完全满足目前的需要   Timeslice   由于系统的瓶颈主要反映在磁盘I/O上,因此 降低时间片的大小,一方面可避免因磁盘I/O不畅造成CPU的等待,从而提高了CPU的综合利用率。另一方面减少了进程的阻塞量。   unlockable_mem   提高了不可锁内存的大小,使可用于换页和交换的内存空间扩大,用以满足系统对内存管理的要求。 用户SQL质量   以上讲的都是硬件方面的东西,在条件有限的条件下,我们可以调整应用程序的SQL质量:   1. 不要进行全表扫描(Full Table Scan):全表扫描导致大量的I/O   2. 尽量建好和使用好索引:建索引也是有讲究的,在建索引时,也不是索引越多越好,当一个表的索引达到4个以上时,ORACLE的性能可能还是改善不了,因为OLTP系统每表超过5个索引即会降低性能,而且在一个sql 中, Oracle 从不能使用超过 5个索引;当我们用到GROUP BY和ORDER BY时,ORACLE就会自动对数据进行排序,而ORACLE在INIT.ORA中决定了sort_area_size区的大小,当排序不能在我们给定的排序区完成时,ORACLE就会在磁盘中进行排序,也就是我们讲的临时表空间中排序, 过多的磁盘排序将会令 free buffer waits 的值变高,而这个区间并不只是用于排序的,对于开发人员我提出如下忠告:   1)、select,update,delete 语句中的子查询应当有规律地查找少于20%的表行.如果一个语句查找的行数超过总行数的20%,它将不能通过使用索引获得性能上的提高.   2)、索引可能产生碎片,因为记录从表中删除时,相应也从表的索引中删除.表释放的空间可以再用,

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档