今天去面试dba,本人是初学者,有些问题被问住啦:1,如何将表空间A中的表A1的所有数据库移动表空间B中的B1表里面(A1表与B1表结构一致)。2,讲述下建立索引的目的以及这样做的不足,说下索引的种类,比如分区索引,位图索引等的应用情况。

解决方案 »

  1.   


    1: 
    先select,再insert。(1),批量select,批量insert。(2),单个select,单个insert2:baidu下,google下,如下:逻辑上:
    Single column 单行索引
    Concatenated 多行索引
    Unique 唯一索引
    NonUnique 非唯一索引
    Function-based函数索引
    Domain 域索引
    物理上:
    Partitioned 分区索引
    NonPartitioned 非分区索引
    B-tree:
    Normal 正常型B树
    Rever Key 反转型B树
    Bitmap 位图索引
    索引结构:
    B-tree:
    适合与大量的增、删、改(OLTP);
    不能用包含OR操作符的查询;
    适合高基数的列(唯一值多)
    典型的树状结构;
    每个结点都是数据块;
    大多都是物理上一层、两层或三层不定,逻辑上三层;
    叶子块数据是排序的,从左向右递增;
    在分支块和根块中放的是索引的范围;
    Bitmap:
    适合与决策支持系统;
    做UPDATE代价非常高;
    非常适合OR操作符的查询;
    基数比较少的时候才能建位图索引;
    树型结构:
    索引头
    开始ROWID,结束ROWID(先列出索引的最大范围)
    BITMAP
    每一个BIT对应着一个ROWID,它的值是1还是0,如果是1,表示着BIT对应的ROWID有值;B*tree索引的话通常在访问小数据量的情况下比较适用,比如你访问不超过表中数据的5%,当然这只是个相对的比率,适用于一般的情况。bitmap的话在数据仓库中使用较多,用于低基数列,比如性别之类重复值很多的字段,基数越小越好。
      

  2.   

    1,如何将表空间A中的表A1的所有数据库移动表空间B中的B1表里面(A1表与B1表结构一致)。 
    =============================================================================
    alter table table_name move tablespace new_tablespace_name;
      

  3.   

    create table B1 tablespace B as select * from A1; 
      

  4.   

    insert into b1 select * from a1;
    索引就是为了查询更快
      

  5.   

    谢谢大家的回复,自己看了一些index的视频,也理解了些,该结贴啦。