影响ORACLE性能因素

上传人:飞*** 文档编号:40640602 上传时间:2018-05-26 格式:DOC 页数:5 大小:33KB
返回 下载 相关 举报
影响ORACLE性能因素_第1页
第1页 / 共5页
影响ORACLE性能因素_第2页
第2页 / 共5页
影响ORACLE性能因素_第3页
第3页 / 共5页
影响ORACLE性能因素_第4页
第4页 / 共5页
影响ORACLE性能因素_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《影响ORACLE性能因素》由会员分享,可在线阅读,更多相关《影响ORACLE性能因素(5页珍藏版)》请在金锄头文库上搜索。

1、影响影响 ORACLEORACLE 性能因素性能因素任何事情都有它的源头,要解决问题,也得从源头开始,影响 ORACLE 性能的源 头非常多,主要包括如下方面:数据库的硬件配置数据库的硬件配置:CPU、内存、网络条件。1. CPU:在任何机器中 CPU 的数据处理能力往往是衡量计算机性能的一个标 志,并且 ORACLE 是一个提供并行能力的数据库系统,在 CPU 方面的要求就更高 了,如果运行队列数目超过了 CPU 处理的数目,性能就会下降,我们要解决的 问题就是要适当增加 CPU 的数量了,当然我们还可以将需要许多资源的进程 KILL 掉;2. 内存:衡量机器性能的另外一个指标就是内存的多少

2、了,在 ORACLE 中内 存和我们在建数据库中的交换区进行数据的交换,读数据时,磁盘 I/O 必须等 待物理 I/O 操作完成,在出现 ORACLE 的内存瓶颈时,我们第一个要考虑的是增 加内存,由于 I/O 的响应时间是影响 ORACLE 性能的主要参数,我将在这方面进 行详细的讲解3. 网络条件:NET*SQL 负责数据在网络上的来往,大量的 SQL 会令网络速 度变慢。比如 10M 的网卡和 100 的网卡就对 NET*SQL 有非常明显的影响,还有 交换机、集线器等等网络设备的性能对网络的影响很明显,建议在任何网络中 不要试图用 3 个集线器来将网段互联。OS 参数的设置参数的设置下

3、表给出了 OS 的参数设置及说明,DBA 可以根据实际需要对这些参数进行 设置内核参数名说明bufpages对 buffer 空间不按静态分配,采用动态分配,使 bufpages 值随 nbuf 一起 对 buffer 空间进行动态分配。create_fastlinks对 HFS 文件系统允许快速符号链接dbc_max_pct加大最大动态 buffer 空间所占物理内存的百分比,以满足应用系统的读写 命中率的需要。dbc_min_pct设置最小动态 buffer 空间所占物理内存的百分比desfree提高开始交换操作的最低空闲内存下限,保障系统的稳定性,防止出现不 可预见的系统崩溃(Crash

4、)。fs_async允许进行磁盘异步操作,提高 CPU 和磁盘的利用率lotsfree提高系统解除换页操作的空闲内存的上限值,保证应用程序有足够的可用 内存空间。maxdsiz针对系统数据量大的特点,加大最大数据段的大小,保证应用的需要。(32 位)maxdsiz_64bitmaximum process data segment size for 64_bitMaxssiz加大最大堆栈段的大小。(32_bit)maxssiz_64bit加大最大堆栈段的大小。(64_bit)Maxtsiz提高最大代码段大小,满足应用要求maxtsiz_64bit原值过大,应调小Minfree提高停止交换操作的

5、自由内存的上限Shmem允许进行内存共享,以提高内存的利用率Shmmax设置最大共享内存段的大小,完全满足目前的需要Timeslice由于系统的瓶颈主要反映在磁盘 I/O 上,因此 降低时间片的大小,一方 面可避免因磁盘 I/O 不畅造成 CPU 的等待,从而提高了 CPU 的综合利用率。另 一方面减少了进程的阻塞量。unlockable_mem提高了不可锁内存的大小,使可用于换页和交换的内存空间扩大,用以满足系统对内存 管理的要求。用户用户 SQL 质量质量以上讲的都是硬件方面的东西,在条件有限的条件下,我们可以调整应用 程序的 SQL 质量:1. 不要进行全表扫描(Full Table S

6、can):全表扫描导致大量的 I/O2. 尽量建好和使用好索引:建索引也是有讲究的,在建索引时,也不是索 引越多越好,当一个表的索引达到 4 个以上时,ORACLE 的性能可能还是改善不 了,因为 OLTP 系统每表超过 5 个索引即会降低性能,而且在一个 sql 中, Oracle 从不能使用超过 5 个索引;当我们用到 GROUP BY 和 ORDER BY 时, ORACLE 就会自动对数据进行排序,而 ORACLE 在 INIT.ORA 中决定了 sort_area_size 区的大小,当排序不能在我们给定的排序区完成时,ORACLE 就会 在磁盘中进行排序,也就是我们讲的临时表空间中

7、排序, 过多的磁盘排序将会令 free buffer waits 的值变高,而这个区间并不只是用于排序的,对于开发人员 我提出如下忠告:1)、select,update,delete 语句中的子查询应当有规律地查找少于 20%的 表行.如果一个语句查找的行数超过总行数的 20%,它将不能通过使用索引获得 性能上的提高.2)、索引可能产生碎片,因为记录从表中删除时,相应也从表的索引中删除. 表释放的空间可以再用,而索引释放的空间却不能再用.频繁进行删除操作的被 索引的表,应当阶段性地重建索引,以避免在索引中造成空间碎片,影响性能.在 许可的条件下,也可以阶段性地 truncate 表,trunc

8、ate 命令删除表中所有记录, 也删除索引碎片.3)、在使用索引时一定要按索引对应字段的顺序进行引用。4)、用(+)比用 NOT IN 更有效率。降低 ORACLE 的竞争:先讲几个 ORACLE 的几个参数,这几个参数关系到 ORACLE 的竞争:1)、freelists 和 freelist 组:他们负责 ORACLE 的处理表和索引的空间 管理;2)、pctfree 及 pctused:该参数决定了 freelists 和 freelist 组的行 为,pctfree 和 pctused 参数的唯一目的就是为了控制块如何在 freelists 中进出设置好 pctfree 及 pctus

9、ed 对块在 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(数据高速缓冲区)访问过的数据都放在这一片内存 区域,该参数越大,Orac

10、le 在内存中找到相同数据的可能性就越大,也即加快 了查询速度。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_locks10)、open_cursors (打开光标数)11)、dbwr_io_slaves (后台写进程数)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 其它考试类文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号