设为首页 收藏本站
查看: 553|回复: 0

[经验分享] 关系型数据库(Oracle)性能优化(一)

[复制链接]

尚未签到

发表于 2016-8-8 06:12:08 | 显示全部楼层 |阅读模式
      为了保证Oracle数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑数据库的优化策略。
      优化策略一般包括服务器操作系统参数调整数据库参数调整网络性能调整应用程序SQL语句分析及设计等几个方面。
  

      分析评价Oracle数据库性能主要有数据库吞吐量数据库用户响应时间两项指标。数据库用户响应时间又可以分为系统服务时间和用户等待时间两项,即:数据库用户响应时间=系统服务时间+用户等待时间   
      因此,获得满意的用户响应时间有两个途径:
        一是减少系统服务时间,即提高数据库的吞吐量;
        二是减少用户等待时间,即减少用户访问同一数据库资源的冲突率。     


  一、硬件方面
  

      数据库的硬件配置:CPU、内存、网络条件。
  

    1. CPU:在任何机器中CPU的数据处理能力往往是衡量计算机性能的一个标志,并且ORACLE是一个提供并行能力的数据库系统,在CPU方面的要求就更高了,如果运行队列数目超过了CPU处理的数目,性能就会下降,我们要解决的问题就是要适当增加CPU的数量了,当然我们还可以将需要许多资源的进程KILL掉;
       CPU是服务器的一项重要资源,服务器良好的工作状态表现为在工作高峰时CPU的使用率高于90%。如果空闲时间CPU使用率就在90%以上,说明服务器缺乏CPU资源;如果工作高峰时CPU使用率仍然很低,则说明服务器CPU 资源还比较充足。   
  2. 内存:衡量机器性能的另外一个指标就是内存的多少了,在ORACLE中内存和我们在建数据库中的交换区进行数据的交换,读数据时,磁盘I/O必须等待物理I/O操作完成,在出现ORACLE的内存瓶颈时,我们第一个要考虑的是增加内存,由于I/O的响应时间是影响ORACLE性能的主要参数。
         内存参数的调整主要是指Oracle数据库的系统全局区(SGA)的调整。SGA主要由3部分构成:共享池、数据缓冲区、日志缓冲区。共享池由两部分构成:共享SQL区和数据字典缓冲区。共享SQL区是存放用户SQL命令。
  3. 网络条件:NET*SQL负责数据在网络上的来往,大量的SQL会令网络速度变慢。比如10M的网卡和100的网卡就对NET*SQL有非常明显的影响,还有交换机、集线器等等网络设备的性能对网络的影响很明显,建议在任何网络中不要试图用3个集线器来将网段互联。


     调整操作系统参数 
        例如:运行在Unix操作系统上的 Oracle数据库,可以调整 Unix数据缓冲区的大小、每个进程所能使用的内存大小等参数。
    调整硬盘I/O
        数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上,做到硬盘之间I/O 负载均衡。
    调整服务器内存分配 
        内存分配是在信息系统运行过程中优化配置的。数据库管理员根据数据库的运行状况不仅可以调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小,而且还可以调整程序全局区(PGA区)的大小。


  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 datasegment 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
提高了不可锁内存的大小,使可用于换页和交换的内存空间扩大,用以满足系统对内存管理的要求。
  

  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-254338-1-1.html 上篇帖子: Oracle创建用户、表空间、导入导出(转) 下篇帖子: Excel数据通过plsql 导入到Oracle(转)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表