Oracle性能究极优化

 更新时间:2007年03月06日 00:00:00   作者:  
正在看的ORACLE教程是:Oracle性能究极优化。  增大 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
<

相关文章

  • Oracle如何直接运行OS命令(上)

    Oracle如何直接运行OS命令(上)

    Oracle如何直接运行OS命令(上)...
    2007-03-03
  • oracle 存储过程加密的方法

    oracle 存储过程加密的方法

    oracle 存储过程的加密方法小结
    2008-12-12
  • Oracle数据库

    Oracle数据库"记录被另一个用户锁住"解决方法(推荐)

    数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。这篇文章主要介绍了Oracle数据库"记录被另一个用户锁住"解决方法
    2018-03-03
  • Oracle基础教程之分组查询

    Oracle基础教程之分组查询

    这篇文章主要给大家介绍了关于Oracle基础教程之分组查询的相关资料,Oracle分组查询指的是将一张表按照某个字段或几个字段进行分组,并在每个组内进行聚合运算,得到结果集,需要的朋友可以参考下
    2024-02-02
  • 关于Oracle数据库dbLink的创建和使用详解

    关于Oracle数据库dbLink的创建和使用详解

    这篇文章主要介绍了关于Oracle数据库dbLink的创建和使用详解,Oracle的数据库链路dbLink是一种允许在两个不同的数据库实例之间进行通信和数据交换的功能,它可以让你在一个数据库中访问另一个数据库的对象和数据,需要的朋友可以参考下
    2023-08-08
  • Oracle递归查询简单示例

    Oracle递归查询简单示例

    最近在做一个树状编码管理系统,其中用到了oracle的树状递归查询,下面这篇文章主要给大家介绍了关于Oracle递归查询的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • Oracle8i和Microsoft SQL Server比较

    Oracle8i和Microsoft SQL Server比较

    Oracle8i和Microsoft SQL Server比较...
    2007-03-03
  • Oracle 实现类似SQL Server中自增字段的一个办法

    Oracle 实现类似SQL Server中自增字段的一个办法

    由于Oracle中没有类似SQL Server中的自增字段,所以我们如果想要通过设定类似ID性质的唯一列的话,需要借助Oracle的sequence,先建立一个序列,然后在每次插入数据的时候,通过前触发器来更新ID值,并将序列的序号加1,这样的迂回方式来实现。
    2009-07-07
  • PLSQL创建新用户并导入导出.dmp文件全过程

    PLSQL创建新用户并导入导出.dmp文件全过程

    plsql导入.sql和.dmp文件时会经常用到,对于初学者来说可能没有那么简单,毕竟oracle数据库比较麻烦,这篇文章主要给大家介绍了关于PLSQL创建新用户并导入导出.dmp文件的相关资料,需要的朋友可以参考下
    2023-11-11
  • 装Oracle用PLSQL连接登录时不显示数据库的解决

    装Oracle用PLSQL连接登录时不显示数据库的解决

    这篇文章主要介绍了装Oracle用PLSQL连接登录时不显示数据库的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11

最新评论