• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
ORACLE性能调优原则
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
ORACLE性能调优原则
软件发布 ORACLE性能调优原则
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 数据库类 >> Oracle >> ORACLE性能调优原则

ORACLE性能调优原则

添加时间: 2006-2-22 5:48:37  作者: Oracle教程  阅读次数:30   来源: http://www.d9soft.com

       

  任何事情都有它的源头,要解决问题,也得从源头开始,影响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)、索引可能产生碎片,因为记录从表中删除时,相应也从表的索引中删除.表释放的空间可以再用,而索引释放的空间却不能再用.频繁进行删除操作的被索引的表,应当阶段性地重建索引,以避免在索引中造成空间碎片,影响性能.在许可的条件下,也可以阶段性地truncate表,truncate命令删除表中所有记录,也删除索引碎片.

  3)、在使用索引时一定要按索引对应字段的顺序进行引用。

  4)、用(+)比用NOT IN更有效率。

  降低ORACLE的竞争:

  先讲几个ORACLE的几个参数,这几个参数关系到ORACLE的竞争:

  1)、freelists 和 freelist 组:他们负责ORACLE的处理表和索引的空间管理;

  2)、pctfree 及 pctused:该参数决定了freelists 和 freelist 组的行为,pctfree 和pctused 参数的唯一目的就是为了控制块如何在 freelists 中进出

  设置好pctfree 及 pctused对块在freelists的移走和读取很重要。

  其他参数的设置

  1)、包括SGA区(系统全局区):系统全局区(SGA)是一个分配给Oracle 的包含一个 Oracle 实例的数据库的控制信息内存段。

  主要包括数据库高速缓存(the database buffer cache),

  重演日志缓存(the redo log buffer),

  共享池(the shared pool),

  数据字典缓存(the data dictionary cache)以及其它各方面的信息

  2)、db_block_buffers(数据高速缓冲区)访问过的数据都放在这一片内存区域,该参数越大,Oracle在内存中找到相同数据的可能性就越大,也即加快了查询速度。

  3)、share_pool_size (SQL共享缓冲池):该参数是库高速缓存和数据字典的高速缓存。

  4)、Log_buffer (重演日志缓冲区)

  5)、sort_area_size(排序区)

  6)、processes (同时连接的进程数)

  7)、db_block_size (数据库块大小):Oracle默认块为2KB,太小了,因为如果我们有一个8KB的数据,则2KB块的数据库要读4次盘,才能读完,而8KB块的数据库只要1次就读完了,大大减少了I/O操作。数据库安装完成后,就不能再改变db_block_size的值了,只能重新建立数据库并且建库时,要选择手工安装数据库。

  8)、open_links (同时打开的链接数)

  9)、dml_locks

  10)、open_cursors (打开光标数)

  11)、dbwr_io_slaves (后台写进程数)


 

上下文章:

 

上一篇文章: 高手的Oracle大批量删除数据方法 下一篇文章: 使用正规表达式编写更好的SQL

相关文章:

  • 在ORACLE的存储过程中如何做简单的动态查询
  • Oracle下调数据库许可价格以适应多芯CPU
  • Oracle全球客户支持副总裁汤姆·舒尔滋演讲
  • Oracle中国前员工述说公司高层内部纷争史
  • Oracle发布免费数据库管理工具Raptor

相关软件:

  • Ecora Enterprise Auditor for Oracle-破解补丁 Cracked v3_6_5185
  • OptionsOracle V1.3.1
  • Oracle 8 故障解决手册(PDF)
  • Oracle WebServer 中文手册(CHM)
  • Oracle 9i 应用服务器详解(PDG)
  • 精通Oracle 9i(PDG)

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

数据库类分类导航

  • SQL Server
  • MySQL Server
  • DB2
  • Oracle
  • ACCESS
  • Foxpro
  • PowerBuilder
  • Sybase

本类经典文章推荐

  • Oracle中使用PL/SQL操作COM对象
  • Oracle复合数据类型(1)
  • Oracle复合数据类型(2)
  • Oracle复合数据类型(3)
  • Oracle复合数据类型(4)
  • Oracle复合数据类型(5)
  • 数据库设计三大范式应用实例剖析
  • Oracle数据库的备份及恢复策略研究
  • Oracle入门心得(2)
  • Oracle的入门心得(1)

Oracle阅读排行

  • Oracle数据库的空间管理技巧
  • Oracle中导入文本数据的方法
  • Oracle复合数据类型(1)
  • 浅析Oracle和SqlServer存储过程的...
  • Oracle复合数据类型(3)
  • Oracle复合数据类型(2)
  • oracle 10g常见问题精选
  • Oracle中使用PL/SQL操作COM对象
  • Oracle复合数据类型(4)
  • Oracle入门心得(2)

数据库类阅读总排行

  • MySQL中的SQL-- TEXT、DATE、和SE...
  • MYSQL初学者使用指南 上篇
  • 怎样在vc、delphi中使用mysql(mys...
  • MySQL数据导入与导出之二
  • MYSQL初学者使用指南 下篇
  • SQL Server数据库技术(96)
  • SQL Server数据库技术(98)
  • SQL Server数据库技术(60)
  • 精通数据库系列之入门-基础篇
  • 如何为用户设置密码(MYSQL)

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有