zoukankan      html  css  js  c++  java
  • 创建bitmap index 时对表的加锁方式

    前一篇博客研究了 创建B*tree索引时 对表的加锁方式,现在来研究一下创建bitmap时对表的加锁方式。本文基于10gR2

    测试表基于上一篇博客的test表。文档上面说9i不能以online方式创建bitmap index.

    SQL> create table lock_obj (username varchar2(100),sid number,lock_type varchar2(100),
      2   object_name varchar2(100),XIDUSN number,XIDSLOT number,XIDSQN  number);

    Table created

    SQL> grant select any dictionary to robinson
      2  ;

    Grant succeeded

    SQL>   create or replace trigger t_create_index
      2   before create  on schema
      3  begin
      4  insert into lock_obj
      5  select oracle_username username,session_id sid,decode(
      6    locked_mode,0,'None',1,'Null',2,'Row share',3,'Row Exclusive',4,'Share',
      7   5,'Share Row Exclusive',6,'Exlusive') lock_type,object_name,xidusn,xidslot,xidsqn
      8   from v$locked_object,dba_objects
      9   where v$locked_object.object_id=dba_objects.object_id;
     10   end t_create_index;
     11  /

    Trigger created

    SQL> select count(distinct owner) owner,count( distinct object_id) object_id,count(distinct object_name) object_name,count(distinct status) status,count(*) from test;

         OWNER  OBJECT_ID OBJECT_NAME     STATUS   COUNT(*)
    ---------- ---------- ----------- ---------- ----------
            19      49791       29776          2     273857

    SQL> create bitmap index b_status on test(status) online;

    Index created

    SQL> select * from lock_obj;

    USERNAME          SID LOCK_TYPE            OBJECT_NAME              XIDUSN    XIDSLOT     XIDSQN
    ---------- ---------- -------------------- -------------------- ---------- ---------- ----------
    ROBINSON          139 Row Exclusive        LOCK_OBJ                      0          0          0
    ROBINSON          139 Row share            TEST                          0          0          0
    ROBINSON          139 Row Exclusive        OBJ$                         10         10        305
    ROBINSON          139 Row Exclusive        LOCK_OBJ                     10         39        304
    ROBINSON          139 Row Exclusive        LOCK_OBJ                     10         10        305
    ROBINSON          139 Row share            TEST                         10         39        304
    ROBINSON          139 Row Exclusive        OBJ$                         10         10        305
    ROBINSON          139 Row Exclusive        LOCK_OBJ                     10         39        304
    ROBINSON          139 Row Exclusive        LOCK_OBJ                     10         10        305
    ROBINSON          139 Share                SYS_JOURNAL_51691            10         10        305
    ROBINSON          139 Row share            TEST                         10         39        304

    11 rows selected
    SQL> delete from lock_obj;

    11 rows deleted

    SQL> commit;

    Commit complete

    SQL> drop index b_status;

    Index dropped

    SQL> create bitmap index   b_status on test(status) ;

    Index created

    SQL> select * from lock_obj;

    USERNAME          SID LOCK_TYPE            OBJECT_NAME              XIDUSN    XIDSLOT     XIDSQN
    ---------- ---------- -------------------- -------------------- ---------- ---------- ----------
    ROBINSON          139 Row Exclusive        LOCK_OBJ                      0          0          0
    ROBINSON          139 Share                TEST                          0          0          0

    从实验中发现,创建B*tree index 和创建 bitmap index 时对表的加锁方式是一样的。

    恩,对于rebuild 也应该是一样的 ,我比较懒 不做测试了。

  • 相关阅读:
    RTMP协议Web直播点播系统EasyDSS视频平台解决无法获取指定时间快照问题
    在线教育web无插件点播平台EasyDSS在上传部分点播文件出现无法观看问题如何修复?
    RTMP协议Web直播点播服务平台EasyDSS增加获取录像指定时间的m3u8播放地址
    RTMP协议视频平台EasyDSS编译过程中Go语言异步信息处理设计与实现
    在线课堂web无插件直播点播平台EasyDSS播放指定时间段的录像报404是什么原因?
    推流直播如何通过EasyDSS推流将内网EasyGBS视频流推到公网直播间进行直播?
    RTMP协议视频平台EasyDSS开发中如何通过Go语言 gorm 框架钩子函数精简代码?
    POJ1740 A New Stone Game 博弈论基础题 男人8题
    HDU1847 博弈论 水题
    POJ 2763 Housewife Wind LCA基础题
  • 原文地址:https://www.cnblogs.com/hehe520/p/6330608.html
Copyright © 2011-2022 走看看