Oracle性能调优原则

Oracle数据库是甲骨文公司的一款关系数据库管理系统。Oracle数据库性能调优是实现Oracle数据库在正常状态下运行的必要条件,Oracle数据库性能的调优也是要遵循一定的原则的,下文中就重点为大家总结了一些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

 

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

 

用户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数据库中性能调优的原则就为大家讲述到这里,大家在以后进行Oracle数据库性能调优的工作时可以参照上文中介绍的内容,希望大家都能够从中有所收获。

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/255253.html<

(0)
管理的头像管理
上一篇2025-04-30 18:19
下一篇 2025-04-30 18:21

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注