当前位置: 首页 > 图文教程 > 数据库 > Oracle > Oracle性能究极优化 中

Oracle
数据库Oracle性能优化可能出现的问题
oracle认证辅导:重访Oracle密码
Oracle认证:修改用户指定的默认表空间
Oracle认证:Oracle的三种Join方法
Oracle认证辅导:教你数据库查询初始化参数
教你查询Oracle中的表空间
利用变量在Linux中给文件命名
oracle的case函数控制结构DECODE()函数
解决Oracle被锁定有妙招
Oracle数据库编写事务 几个需要遵守指导方针
如何解决Oracle被锁定问题
如何控制Oracle虚拟专用数据
Oracle入门基础之参数文件
如何解决Oracle数据库ORA-00257故障
实例解析:用Oracle创建实例的参数需求
对比Caché和Oracle在数据库的应用
风河应用Oracle产品为企业2.0提供动力
Oracle数据库中Insert、Update、Delete操作速度大提速
Oracle11g再创TPC-C基准测试性价比世界纪录
Oracle用户常用数据字典的查询

Oracle性能究极优化 中


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-31   浏览: 55 ::
收藏到网摘: n/a

  增大 SGA 已经缓冲看来对于性能的提升并不显著,加载时间只提升了 1.73%。下面我们增加 SGA 重做日志的大小:

  DB3: Log Buffer
  Database Block Size 2K
  SGA Buffer Cache 128M
  SGA Shared Pool 128M
  SGA Redo Cache 16M
  Redo Log Files 16M
  Tablespaces Dictionary
  TPC Results Load Time (Seconds) 41.39
  Transactions / Second 10.088

  我们可以看到加载时间提升了 17.35%,TPS 也提升了 9.33%。因为加载和同时插入,更新,删除需要比 8M 大的空间,但是看起来增加内存性能并没有显著提升,我们加大块大小:

  DB4: 4K Block
  Database Block Size 4K
  SGA Buffer Cache 128M
  SGA Shared Pool 128M
  SGA Redo Cache 16M
  Redo Log Files 16M
  Tablespaces Dictionary
  TPC Results Load Time (Seconds) 17.35
  Transactions / Second 10.179

  我们看到加载时间提升了 138%!而对 TPS 值没有很大的影响。下面一个简单的念头是表空间的管理从目录切换为本地:

  DB5: Local Tablespaces
  Database Block Size 4K
  SGA Buffer Cache 128M
  SGA Shared Pool 128M
  SGA Redo Cache 16M
  Redo Log Files 16M
  Tablespaces Local
  TPC Results Load Time (Seconds) 15.07
  Transactions / Second 10.425

  下面我们把数据库块加大到 8K 来看结果:

  DB6: 8K Block
  Database Block Size 8K
  SGA Buffer Cache 128M
  SGA Shared Pool 128M
  SGA Redo Cache 16M
  Redo Log Files 16M
  Tablespaces Local
  TPC Results Load Time (Seconds) 11.42
  Transactions / Second 10.683

  看来结果并不坏,我们没有理由继续增加块大小了,我们还没有根据 CPU 个数调整相应的参数,这次我们设置 I/O 的进程数来继续调整:

  DB7: I/O Slaves
  Database Block Size 8K
  SGA Buffer Cache 128M
  SGA Shared Pool 128M
  SGA Redo Cache 16M
  Redo Log Files 16M
  Tablespaces Local
  dbwr_io_slaves 4
  lgwr_io_slaves (derived) 4
  TPC Results
  Load Time (Seconds) 10.48
  Transactions / Second 10.717

  我们的测试是基于 Red Hat 6.2 进行的,内核版本为 2.2.14-5 smp。对于 Linux 的内核而言,有将近几百个参数可以调整,包括对 CPU 类型,SMP 支持,APIC 支持,DMA 支持,IDE DMA 缺省参数的使用以磁盘限额支持。根据 Oracle 的文档,我们要做的主要调整是共享内存和信号量的大小,SHMMAX 最少配置 0x13000000,SEMMNI, SEMMSL 和 SEMOPN 分别至少设置 100, 512, 100。这些参数的设置可以通过下面的命令实现:

  # echo 0x13000000 >/proc/sys/kernel/shmmax
  # echo 512 32000 100 100 >/proc/sys/kernel/sem

  OS1: 单内核和 IPC

  TPC Results
  Load Time (Seconds) 9.54
  Transactions / Second 11.511