技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Oracle --> BITMAP CONVERSION 执行计划导致CPU 100%

BITMAP CONVERSION 执行计划导致CPU 100%

浏览:1309次  出处信息
在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 ,禁用了位图转换。

建议继续学习:

  1. Fastbit中的bitmap索引算法    (阅读:3775)
  2. ORACLE BITMAP INDEX    (阅读:2438)
  3. 大数据过滤及判断算法 -- Bitmap / Bloomfilter    (阅读:1296)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1