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
  提高了不可锁内存的大小,使可用于换页和交换的内存空间扩大,用以满足系统对内存管理的要求。









本文转自 牛海彬 51CTO博客,原文链接:http://blog.51cto.com/newhappy/136969,如需转载请自行联系原作者
上一篇:《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一1.2 显示执行计划


下一篇:mysql之 mysql数据库压力测试工具(mysqlslap)