eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« 从伴郎到证婚人 - 转眼六个年头 | Blog首页 | 冰雪之后 如有春光 - 2011年的第一场雪 »

BITMAP CONVERSION 执行计划导致CPU 100%

在Oracle 9i中,Oracle有时候会选择将B-Tree索引进行BITMAP转换来进行SQL执行,从而导致极其恶劣的执行计划。
在下图中BITMAP CONVERSION FROM / TO ROWIDS 就是进行了位图转换后的执行计划:

BitmapConvert.png

在客户的数据库系统中,一旦这个SQL执行了位图转换,其执行时间就会拉长到50秒左右,而且单进程会占用100%的CPU资源,而禁用转换,则CPU资源使用正常,40几个毫秒就可以执行完成。

SQL> alter session set "_b_tree_bitmap_plans"=false;

Session altered.

Elapsed: 00:00:00.01
SQL> @sql

COUNT(DISTINCTTAB2.WFID)
------------------------
                     708

Elapsed: 00:00:00.41

SQL> alter session set "_b_tree_bitmap_plans"=true;

Session altered.

Elapsed: 00:00:00.00
SQL> @sql

COUNT(DISTINCTTAB2.WFID)
------------------------
                     708

Elapsed: 00:00:52.80


最后选择在全局设置隐含参数 _b_tree_bitmap_plans ,禁用了位图转换。



历史上的今天...
      >> 2008-12-16文章:
      >> 2006-12-16文章:
             据说这是一个幸运的年份...
      >> 2005-12-16文章:
             人生自是有情痴
             Day Day Up
      >> 2004-12-16文章:
             如何获得跟踪文件名称
             如何获得当前数据库的SCN值

By eygle on 2011-12-16 08:15 | Comments (0) | Del.icio.us | Google | SQL.PLSQL | Edit |Pageviews:

无觅

搜索本站:

发表留言



CopyRight © 2004~2012 eygle.com, All rights reserved.
数据恢复·紧急救援·联系我们:电话:010-59459859 手机:13911812803 邮件:eygle@eygle.com|MSN联系:eygle@hotmail.com