« 从伴郎到证婚人 - 转眼六个年头 | Blog首页 | 冰雪之后 如有春光 - 2011年的第一场雪 »
BITMAP CONVERSION 执行计划导致CPU 100%
作者:eygle | 【转载请注出处】|【云和恩墨 领先的zData数据库一体机 | zCloud PaaS云管平台 | SQM SQL审核平台 | ZDBM 数据库备份一体机】
链接:https://www.eygle.com/archives/2011/12/bitmap_conversion_cpu.html
在Oracle 9i中,Oracle有时候会选择将B-Tree索引进行BITMAP转换来进行SQL执行,从而导致极其恶劣的执行计划。链接:https://www.eygle.com/archives/2011/12/bitmap_conversion_cpu.html
在下图中BITMAP CONVERSION FROM / TO ROWIDS 就是进行了位图转换后的执行计划:
在客户的数据库系统中,一旦这个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 ,禁用了位图转换。
历史上的今天...
>> 2016-12-16文章:
>> 2013-12-16文章:
>> 2008-12-16文章:
>> 2006-12-16文章:
>> 2005-12-16文章:
>> 2004-12-16文章:
By eygle on 2011-12-16 08:15 | Comments (0) | SQL.PLSQL | 2927 |