闲聊Oracle减少回滚段

学习Oracle时,你可能会遇到Oracle减少回滚段问题,这里将介绍Oracle减少回滚段问题的解决方法,在这里拿出来和大家分享一下。当多个进程要同时使用同一资源时,就会发生资源争用,当出现资源争用时,就会产生等待,因此,应设法避免或减少资源争用的出现。本文主要讨论回滚段、多线索服务器进程和日志缓冲区的闩锁争用问题。

创新互联是一家专业提供中宁企业网站建设,专注与成都网站建设、成都网站制作、H5建站、小程序制作等业务。10年已为中宁众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

Oracle减少回滚段的争用

要Oracle减少回滚段的争用,首先需检查是否出现争用。对含有回滚段块的缓冲区的争用也会影响到对回滚段的争用。这可以通过查询动态性能表V$WAITSTAT来检测是否存在对回滚段的争用(需有SELECT ANY TABLE持权),例如:

 
 
 
  1. SQL>SELECT class,count
  2. 2>FROM V$WAITSTAT
  3. 3>WHERE class IN('system undo header','system undo block',
  4. 4>'undo header','undo block');

其中参数含义如下:
◆ system undo header:对含有SYSTEM回滚段标题块的缓冲区的等待次数。
◆ system undo block:对含有SYSTEM回滚段非标题块的缓冲区的等待次数。
◆ undo header:对含有非SYSTEM回滚段标题块的缓冲区的等待次数。
◆ undo block:对含有非SYSTEM回滚段非标题块的缓冲区的等待次数。

如果任何等待次数大于总请求数的1%,则应创建更多的回滚段来减少竞争,可以周期性地检查这些统计数字,并将它与总的请求数据的次数作比较。总的请求数据次数可用如下语句求出:

 
 
 
  1. SQL>SELECT SUM(value)
  2. 2>FROM V$SYSSTAT
  3. 3>WHERE name IN('db block gets','consistent gets');

Oracle减少回滚段争用的办法是为其建立适当数量的回滚段。

减少对多线索服务器进程的争用

对多线索服务器进程的争用主要表现在对调度进程和共享服务器进程的争用。

减少调度进程的争用

对该进程的争用主要表现在调度进程占用率高及等待响应时间的增长方面。可通过查询动态性能表V$DISPATCHER(需有SELECT ANY TABLE特权)来检查争用情况,例如:

 
 
 
  1. SQL>SELECT network "protocol",
  2. 2>SUM(busy)/(SUM(busy)+SUM(idle)) "Total Rate"
  3. 3>FROM V$DISPATCHER GROUP BY network;

其中V$DISPATCHER表中的idle和busy列的含义如下:
◆ idle:表示1%秒单位时间内调度进程的空闲时间。
◆ busy:表示1%秒单位时间内调度进程的占用时间。

网页名称:闲聊Oracle减少回滚段
当前路径:http://www.csdahua.cn/qtweb/news42/306892.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网