教你调整Oracle数据库服务器的性能

2023-11-06

Oracle数据库服务器是整个系统的核心,它的性能高低直接影响整个系统的性能,为了调整Oracle数据库服务器的性能,主要从以下几个方面考虑:

  1、调整操作系统以适合Oracle数据库服务器运行 Oracle数据库服务器很大程度上依赖于运行服务器的操作系统,如果操作系统不能提供最好性能,那么无论如何调整,Oracle数据库服务器也无法发挥其应有的性能。

  1.1 为Oracle数据库服务器规划系统资源

  据已有计算机可用资源, 规划分配给Oracle服务器资源原则是:尽可能使Oracle服务器使用资源最大化,特别在Client/Server中尽量让服务器上所有资源都来运行Oracle服务。

  1.2 调整计算机系统中的内存配置

  多数操作系统都用虚存来模拟计算机上更大的内存,它实际上是硬盘上的一定的磁盘空间。当实际的内存空间不能满足应用软件的要求时,操作系统就将用这部分的磁盘空间对内存中的信息进行页面替换,这将引起大量的磁盘I/O操作,使整个服务器的性能下降。为了避免过多地使用虚存,应加大计算机的内存。

  1.3 为Oracle数据库服务器设置操作系统进程优先级

  不要在操作系统中调整Oracle进程的优先级,因为在Oracle数据库系统中,所有的后台和前台数据库服务器进程执行的是同等重要的工作,需要同等的优先级。所以在安装时,让所有的数据库服务器进程都使用缺省的优先级运行。

  2、调整内存分配

  Oracle数据库服务器保留3个基本的内存高速缓存,分别对应3种不同类型的数据:库高速缓存,字典高速缓存和缓冲区高速缓存。库高速缓存和字典高速缓存一起构成共享池,共享池再加上缓冲区高速缓存便构成了系统全程区(SGA)。SGA是对数据库数据进行快速访问的一个系统全程区,若SGA本身需要频繁地进行释放、分配,则不能达到快速访问数据的目的,因此应把SGA放在主存中,不要放在虚拟内存中。内存的调整主要是指调整组成SGA的内存结构的大小来提高系统性能,由于Oracle数据库服务器的内存结构需求与应用密切相关,所以内存结构的调整应在磁盘I/O调整之前进行。

  2.1 库缓冲区的调整

  库缓冲区中包含私用和共享SQL和PL/SQL区,通过比较库缓冲区的命中率决定它的大小。要调整库缓冲区,必须首先了解该库缓冲区的活动情况,库缓冲区的活动统计信息保留在动态性能表v$librarycache数据字典中,可通过查询该表来了解其活动情况,以决定如何调整。Select sum(pins),sum(reloads) from v$librarycache; Pins列给出SQL语句,PL/SQL块及被访问对象定义的总次数;Reloads列给出SQL 和PL/SQL块的隐式分析或对象定义重装载时在库程序缓冲区中发生的错误。如果sum(pins)/sum(reloads) ≈0,则库缓冲区的命中率合适;若sum(pins)/sum(reloads)>1, 则需调整初始化参数 shared_pool_size来重新调整分配给共享池的内存量。

  2.2 数据字典缓冲区的调整

  数据字典缓冲区包含了有关数据库的结构、用户、实体信息。数据字典的命中率,对系统性能影响极大。数据字典缓冲区的使用情况记录在动态性能表v$librarycache中,可通过查询该表来了解其活动情况,以决定如何调整。Select sum(gets),sum(getmisses) from v$rowcache; Gets列是对相应项请求次数的统计;Getmisses 列是引起缓冲区出错的数据的请求次数。对于频繁访问的数据字典缓冲区,sum(getmisses)/sum(gets)<10%~15%。若大于此百分数,则应考虑增加数据字典缓冲区的容量,即需调整初始化参数shared_pool_size来重新调整分配给共享池的内存量。

  2.3 缓冲区高速缓存的调整

  用户进程所存取的所有数据都是经过缓冲区高速缓存来存取,所以该部分的命中率,对性能至关重要。缓冲区高速缓存的使用情况记录在动态性能表v$sysstat中,可通过查询该表来了解其活动情况,以决定如何调整。


  Select name,value from v$sysstat

where name in ('dbblock gets','consistent gets','physical reads');


  dbblock gets和consistent gets的值是请求数据缓冲区中读的总次数。physical reads的值是请求数据时引起从盘中读文件的次数。从缓冲区高速缓存中读的可能性的高低称为缓冲区的命中率,计算公式:

  Hit Ratio=1-(physical reds/(dbblock gets+consistent gets))如果Hit Ratio<60%~70%,则应增大db_block_buffers的参数值。db_block_buffers可以调整分配给缓冲区高速缓存的内存量,即db_block_buffers可设置分配缓冲区高速缓存的数据块的个数。缓冲区高速缓存的总字节数=db_block_buffers的值*db_block_size的值。 db_block_size 的值表示数据块大小的字节数,可查询 v$parameter 表:select name,value from v$parameter where name='db_block_size'; 在修改了上述数据库的初始化参数以后,必须先关闭数据库,在重新启动数据库后才能使新的设置起作用。

  3、调整磁盘 I/O

  磁盘的I/O速度对整个系统性能有重要影响。解决好磁盘I/O问题,可显著提高性能。影响磁盘I/O的性能的主要原因有磁盘竞争、I/O次数过多和数据块空间的分配管理。

  为Oracle数据库服务器创建新文件时,不论是表空间所用的数据文件还是数据事务登录所用的日志文件,都应仔细考虑数据库服务器上的可用磁盘资源。如果服务器上有多个磁盘,则可将文件分散存储到各个可用磁盘上,减少对数据库的数据文件及事务日志文件的竞争,从而有效地改善服务器的性能。对于不同的应用系统都有各自的数据集,应当创见不同的表空间分别存储各自应用系统的数据,并且尽可能的把表空间对应的数据文件存放在不同的磁盘上,这种从物理上把每个应用系统的表空间分散存放的方法,可以排除两个应用系统竞争磁盘的可能性。数据文件、事务日志文件分别存放在不同的磁盘上,这样事务处理执行的磁盘访问不妨碍对相应的事物日志登记的磁盘访问。如果有多个磁盘可用,将两个事物日志成员放在不同的磁盘驱动器上,就可以消除日志文件可能产生的磁盘竞争。应把一个应用的表数据和索引数据分散存放不同表空间上,并且尽量把不同类型的表空间存放在不同磁盘上,这样就消除了表数据和索引数据的磁盘竞争。

  4、调整数据库服务器的回滚段

  回滚段是一个存储区域,数据库使用该存储区域存放曾经由一个事务更新或删除的行的原始数据值。如果用户要回滚一个事务所做的改变,那么数据库就从回滚段中读回改变前的数据并使该事务影响的行改变为它们的原状态。回滚段控制着数据库处理事务的能力,因而在数据库成功中起着关键性的作用,不管数据库的其它部分设计得多好,如果它设计得不合理,将会严重影响系统的性能。建立和调整回滚段的原则如下。

  4.1 分离回滚段

  分离回滚段是指单独为回滚段创建一个以上的表空间,使回滚段与数据字典、用户数据、索引等分离开来。由于回滚段的写入与数据和索引的写入是并行进行的,因此将它分离出来可以减少I/O争用。如果回滚段与数据不分离,倘若要某个表空间脱机或撤消,那么在该表空间中的各个回滚段没有全部脱机之前,不能将这个表空间脱机或撤消。而一旦该表空间不可用,则该表空间中的所有回滚段也不能使用,这将浪费所有分配的磁盘空间。所以,独立回滚段可使数据库管理变得容易。回滚段的经常性收缩,使得表空间的自由块更容易形成碎片。分离回滚段可以减少数据库表空间的碎片产生。

  4.2 创建不同大小的回滚段群

  对于一些联机事物处理,他们一般是频繁地对少量数据进行修改,创建许多小的回滚段对之有利。每一个事物的入口项只能限于一个回滚段,回滚段应该充分大以容纳一个完整的事物处理,因此对一些较大型事物,需要较大型的回滚段。极个别脱机处理事物会产生大量的回滚信息,这时需要一个特大号的回滚段来处理。根据这些理论,在Oracle数据库服务器中针对上述3种事物处理创建三组:小事物组、较大事物组、特大事物组等大小不同的回滚段群,并且将之分散到3个不同的表空间上,群内大小相同,应能满足该组事物处理的最大要求。

http://develop.csai.cn/dbms/200701081629161406.htm
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

教你调整Oracle数据库服务器的性能 的相关文章

随机推荐

  • 电脑强制关机两次后报错自动修复你的电脑未正确启动

    强制关机两次后报错自动修复你的电脑未正确启动 因为电脑太卡就强制关机了 开机之后没有等全部加载完 又觉得卡强制关机 再次打卡后显示正在准备自动修复 之后就自动修复你的电脑未正确启动 当时很慌 自己的毕设还有毕业论文都在电脑里 虽然没有放到系
  • 队列的实现(Java)

    Java数据结构学习笔记 一 队列 数组实现 核心逻辑代码 class ArrayQueue private int maxSize 0 private int front private int rear private int arr
  • [C语言]进一步的来了解指针(多多多图详解)

    本文章进一步的来讲解指针 如果是第一次接触指针的可以先看一下对于指针的初步理解 C语言 初步的来了解一下指针 多图详解 HY PIGIE的博客 CSDN博客 目录 1 字符指针 2 指针数组 2 1指针数组 char 类型举例说明 2 2指
  • 对接网络摄像头——使用RTSP协议进行取流

    使用RTSP协议对大华网络摄像头进行取流 目标 具体操作 目标 用电脑或者带有网口的移动设备将大华网络摄像头的视频流取出来 具体操作 给摄像头供电 用网线将摄像头与笔记本连接起来 用大华的工具管家设置IPC的IP地址 使摄像头与笔记本在同一
  • HTML+JavaScript实现在浏览器里自由画线1.0

    gt gt
  • 参考文献引用网页

    格式 序号 主要责任者 电子文献题名 电子文献出处 电子文献及载体类型标识 或可获得地址 发表或更新日期 引用日期 举例 16 王明亮 关于中国学术期刊标准化数据库系统工程的进展 EB OL http www cajcd edu cn pu
  • torch用GPU训练

    需要手动将数据和模型都放到GPU中 法一 是否用GPU训练 train on gpu torch cuda is available device torch device cuda 0 if torch cuda is available
  • onvif抓包分析(三)

    GetProfile POST onvif Media HTTP 1 1 Content Type application soap xml charset utf 8 action http www onvif org ver10 med
  • vue-cli-service原理研究,以及其与webpack-dev-service的区别

  • eNsp下载地址(官网)

    http support huawei com enterprise softdownload action idAbsPath fixnode01 7919710 9856717 7923123 9858914 9017384 pid 9
  • 八大排序算法时间空间复杂度分析

    作者 番茄焖鸡蛋 链接 https www nowcoder com discuss 200097 type 1 来源 牛客网 1 冒泡排序不管序列是怎样 都是要比较n n 1 2 次的 最好 最坏 平均时间复杂度都为O n 需要一个临时变
  • 前端node该怎么接受ajax送过来的数据并且保存至数据库呢?

    如题 百度半圈也没查到有用的信息 或者html不用ajax也行 但是要把html里几个var 声明的变量传到nodejs并且保存至数据库就好
  • OpenWrt目录结构

    在未编译前 OpenWrt目录如下 1 package 此目录主要存放OpenWrt的软件包 我们自己添加的应用层代码都应存放于此文件夹 代码包存放于此文件夹并编写相应的Makefile后 在编译过程中OpenWrt会自主识别并编译 可以看
  • 【计算机网络】网络故障排错的基本思路

    网络故障排错的基本思路 1 检查物理链路是否有问题 2 查看本机IP地址 路由 DNS的设置是否有问题 3 测试网关或路由器的通畅情况 先测网关然后再测路由器 一级一级地测试 4 测试ping公网ip的通畅情况 平时要记几个外部IP 5 测
  • 第四章神经网络的学习算法——随机梯度下降numpy代码详解

    本专栏是书 深度学习入门 的阅读笔记一共八章 第一章深度学习中的Python基础 主要讲解了深度学习将要用到的python的基础知识以及简单介绍了numpy库和matpoltlib库 本书编写深度学习神经网络代码仅使用Python和nump
  • mysql 有newid()_MySQL中,有无GUID函数?就像SQL Server中的newid()解决方法

    mysql中 有无GUID函数 就像SQL Server中的newid 如题 有无直接返回GUID唯一标识的函数 解决方案 函数 UUID mysql gt select uuid uuid f6561a2e 8a6d 102a a914
  • GithubImageHost图床本地缓存设计

    GithubImageHost图床本地缓存设计 项目介绍 一个简易的Github图床客户端 项目仓库 GithubImageHost 试过很多图床 都缺少全部图片预览的功能 按照目录 预览仓库内所有图片 只有预览通过该图床上传过的图片 想了
  • Linux中pip install延时问题

    pip下载库出现延时问题一般因为GFW 所以在pip install 包名的时候我们可以指定镜像源解决这种问题 如果该镜像没有这个库我们可以制定其他的国内源 如下所示 pip install packageName i https pypi
  • Unity—协程

    每日一句 要活在自己的热爱里 而不是别人的眼光里 目录 协程 概念理解 Unity协程实现主要组成 使用协程的注意事项 练习 物体本身白色 点击攻击按钮 物体变为红色 两秒后变为原来颜色 练习 让立方体沿指定路线移动 在路点处停两秒 协程
  • 教你调整Oracle数据库服务器的性能

    Oracle数据库服务器是整个系统的核心 它的性能高低直接影响整个系统的性能 为了调整Oracle数据库服务器的性能 主要从以下几个方面考虑 1 调整操作系统以适合Oracle数据库服务器运行 Oracle数据库服务器很大程度上依赖于运行服