ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 物化视图上使用bitmap索引

物化视图上使用bitmap索引

原创 Linux操作系统 作者:westzq1984 时间:2009-07-17 22:06:04 0 删除 编辑

还是同一个客户的系统,生产机是OLTP系统,肯定无法使用位图索引,但是对于查询机,上面不存在并行的DML操作,只有物化视图的刷新这个DML操作。

 

跟踪了下dbms_mview.refresh操作,发现其其实是一条数据一条数据更新的。我删了3条数据,在刷新时,执行了3delete操作。

DELETE FROM "CTAIS2"."MV_TEST" SNAP$

WHERE

 "OBJECT_ID" = :1

 

 

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        1      0.00       0.00          0         12          0           0

Execute      3      0.00       0.00          1          6          9           3

Fetch        0      0.00       0.00          0          0          0           0

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        4      0.00       0.00          1         18          9           3

 

这样,也不可能存在什么并行DML的操作等。觉得把物化视图的索引改成位图索引肯定没有问题,而且对大量的问题查询的使用更好的执行计划

 

测试了下,对刷新没什么问题

决定下次做优化的时候提出来,以改善性能。

如果有问题,大不了数据一天不能同步,晚上重建下,没太多危险。

 

但是需要注意,位图索引对CPU存在更多的开销,但是考虑到对SQL语句效率的改善,应该在可以接受的范围内。

 

物化视图的刷新是使用游标形式,一条一条的来干的。其实可以用CDC捕获变化,自己编写SQL来同步,应该效率更高,ODI自带的KM有一个就是这么实现的。当然,mview log也能实现同样的方法,dbms_mview有相应的存储过程

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8242091/viewspace-609539/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-04-06

  • 博文量
    251
  • 访问量
    953725