日期:2014-05-16  浏览次数:20555 次

Oracle 数据库对象 索引
SQL> remark 索引是关系型数据库中用于加快数据查询的对象;
SQL> remark 数据存储特点:数据库在存储数据的并不会根据数据的特征进行排序,而是根据硬盘空余的空间随机存储的,因此数据在硬盘上数据的顺序是无序的;
SQL> remark 伪列:ROWID ,存储了数据库记录的物理地址;
SQL> remark 索引正是条件字段的排序序列和ROWID之间建立联系而生成的一种对象;
SQL> remark 普通索引:
SQL> remark create index 索引名 on 表名(字段);
SQL> remark 组合索引
SQL> remark create index inOrderArea on Orders(orderid,AREA);

SQL> remark 唯一索引:唯一索引可以保证在索引中的值唯一;
SQL> remark create unique index 索引 on 表名(字段);
SQL> conn system/manager;
Connected.
SQL> create unique index inorderid on orders(orderid);
SQL> remark 创建反键索引;
SQL> remark 在索引存储的时候,我们将被索引列的内容反向存储,这样再排序,所有的记录就被分散在不同的块中了
SQL> remark 语法:
SQL> remark create index 索引名 on 表名(字段列表) reverse;
SQL> remark 位图索引:在位图索引中,每条记录的所以不再是原来记录的某个值,
SQL> remark 语法:create bitmap index 索引名 on 表名(字段列表);
SQL> remark 基于函数的索引:使用基于函数的索引的用户需要被授予query rewrite 的权限
SQL> remark 语法:create index 索引名 on 表名(表达式);(upper(sname));
SQL> remark 索引组织表:创建表的时候按照排序存放数据,不再另外创建索引,这样的表叫做索引组织表。
SQL> create table t_checklist
  2  (
  3  qcl number(4,1) not null,
  4  incomenum number(5) not null,
  5  ac number(5),
  6  re number(5),
  7  primary key(qcl,incomenum)
  8  )organization index;

Table created.

SQL> remark 分区表的索引
SQL> remark 对整个表建立索引,称为分区表的全局索引;对每个子分区建立各自独立的索引,这种索引称为分区表的本地索引;
SQL> remark 创建本地索引的语法:
SQL> remark create index 索引名 on 表名(索引列) local;
SQL> remark 创建分区表的全局索引的语法:
SQL> remark create index 索引名 on 表名(索引列) global;
SQL> remark 索引的分区:由于索引也是占空间的,当一个大的索引也会代理一系列存储和维护的问题,此时将一个大的索引分成很多小的分区存储,索引的分区可以参考表的分区;
SQL> remark 索引分区的语法:
SQL> create index 索引名 on 表名(索引列) global partition by range(orderno)(
  2  partition a values less then(1500),
  3  partition a values less then(maxvalue)
  4  );
create index 索引名 on 表名(索引列) global partition by range(orderno)(
                                                                     *
ERROR at line 1:
ORA-14038: GLOBAL partitioned index must be prefixed


SQL> spool off;


SQL> SPOOL OFF;
[color=olive][/color][size=small][/size]