当前位置:七道奇文章资讯数据防范Oracle防范
日期:2011-01-25 22:55:00  来源:本站整理

<b>磁盘排序影响Oracle数据库性能的罪魁祸首-性能调优</b>[Oracle防范]

赞助商链接



  本文“<b>磁盘排序影响Oracle数据库性能的罪魁祸首-性能调优</b>[Oracle防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

  当成立同Oracle会话时,会在服务器内存中划分出一个专门用来排序的区域,从而为会话供应排序空间.但是,这个排序空间毕竟有限,若记录数目超越这个排序空间的话,就需求举行磁盘排序.但是,我们都知道,磁盘排序的履行速度要比内存排序的履行速度慢1400倍.并且,磁盘排序会损耗暂时表空间的资源,并且大概影响到正在举行的其他SQL排序,因为Oracle必须为暂时表空间中的数据块分配缓冲池.并且,过量的磁盘排序会招致闲暇缓冲等候,以及将履行其他任务的数据块从缓冲池中分页出去.关于数据库管理员来说,在内存中举行排序老是比磁盘排序更受欢送.所以说,磁盘排序是影响Oracle数据库性能的罪魁祸首.

  在数据库优化的时刻,我们应当设法设法降低数据库的磁盘排序.为此,笔者有以下倡议.

  1、公道设置Sort_area_size参数

  固然说Oracle10G今后的数据库会自动对内存举行管理.但是,在一些性能要求对比高大概排序频率对比高的数据库中,仍旧有必要对一些影响内存分配的参数举行调整.此中,最重要的一个参数就是Sort_area_size.

  Oracle数据库会为全部的链接Oracle会话分配Sort_area_size这个参数.所以,关于拥有大量用户的数据库来说,假如增添这个参数的值,会让磁盘排序的概率明显降低,不过数据库也要为此付出这个代价,很简单招致内存过载.但是,假如这个参数的值设置的太低的话,又会招致过量的磁盘排序.

  所以,这个参数并非越大越好.因为这个参数假如设置的过大的话,其带来的性能收益反而会降低.因为为了提高有限几个查询的速度,大概会浪费大量的内存.这无疑是我们数据库管理员不但愿看到的.

  在实际工作中,我们常常需求在二者之间举行一个均衡.设置一个公道的参数,尽大概让数据库削减磁盘排序的概率,同时也不能使得服务器内存过载.

  为此笔者有一个倡议.数据库管理员应当每隔一段时间增添这个参数的值,并利用Statspack工具按时监控内存排序与磁盘排序的数据.在起先举行调整的时刻最好每个小时查询一次.通过这些数据,我们便可以得到一个公道的参数值,在两这之间获得一个均衡.

  前期调整完成后,在后期仍旧需求举行监控.因为后期随着企业利用的改变,这个参数仍旧需求按照实际情形举行调整,以提高数据库的性能.

  2、尽大概削减不必要的排序

  在某些情形下,固然数据库管理员没有直接通过Order By等语句对数据库记录举行排序,但是Oracle数据库服务器仍旧会对查询后果举行排序.因为这些语句需求起作用,必必要先对数据举行排序.所以,他们常常带有隐性的排序功效.

  我们在数据库保护大概前台利用程序计划的时刻,要尽大概的削减这种不必要的排序.如Distinct关键字,它的作用就是撤消反复的记录.但是,要实现这个目的的话,则数据库必必要先对记录举行排序,然后才可以去除反复的记录内容.故在计划的时刻,尽大概要避免利用Distinct关键字.其实,笔者在工作中,常常会碰到这种情形,某些记录其实不存在反复记录,但是程序开辟人员为了保障数据的精确性,就在SQL语句中加入了Distinct关键字,从而造成了不必要的排序.

  别的,在其他一些情形下,也会招致不必要的排序.如排序归并衔接,也会招致不必要的排序.故无论什么时刻,只要利用了排序归并衔接,就会履行排序已衔接关键值.故在数据库与利用程序计划的时刻,要尽大概避免排序归并衔接.其实,在很多情形下,嵌套循环衔接反而使更好的挑选.因为这个嵌套循环衔接,它越发有效并且不会招致不必要的排序以及不比要的全表扫描.

  其次,有时刻缺失索引也会招致一些并不要的排序.

  故数据库管理员在平常的工作中,要尽大概的削减这些不必要的排序,以让贵重的内存资源交给更重要的任务来实用.   以上是“<b>磁盘排序影响Oracle数据库性能的罪魁祸首-性能调优</b>[Oracle防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .