ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 创建索引表

创建索引表

原创 Linux操作系统 作者:h459035826 时间:2011-04-01 14:35:02 0 删除 编辑

索引表以B-树结构来组织表的数据,它是主键B-树索引的变种。对于普通表而言,其数据以无序方式存储;而对于索引表来说,其数据以B-树结构来组织,并且其叶块既包含键列数据,也包含非键列数据。一般情况下,表及其索引数据分别存放在表段和索引段中。当在where子句中引用索引列时,首先定位索引数据并取得rowid,然后根据rowid取得表的数据,如果要经常基于主键列检索表数据,那么orcle建议使用索引表。建立索引表时,oracle会将表及其主键索引的数据一起存放到索引段中,当在where字句中引用主键列时,oracle可以直接根据主键索引值取的表行数据。 

    对于普通表来说,表、索引数据分别存放到表段、索引段,要占用更多空间;而对于索引表来说,列键和非列键的数据都被存放到主键索引中。当经常使用主键列定位表数据时,应该建立索引。适应索引表,一方面降低了磁盘和内存空间占用,另一方面也可以提高访问性能。

    建立索引表

   建立索引表是使用create table 语句完成的,需要注意,建立索引表时,必须指定organization  index 关键字,并且必须定义主键约束。下面以创建索引表sales_info 为例,说明建立索引表的方法。

 
 1  create  table sales_info(
 2  id  number(6)  constraint pk_sale  primary key,
 3  customer_name  varchar2(30) ,sales_amount  number(10,2),
 4  sales_date date,remark  varchar2(2000)
 5  )organization  index tablespace USERS
 6  pctthreshold 20 including remark
 7* overflow tablespace USERS
QL> /

表已创建。

执行上述语句后,会建立索引表sales_info,其键列和非键列的数据会存放到主键的约束所对应的索引段pk_sale中,而溢出数据则会存放放到溢出段sys_iot_over_n(n:索引表的对象号) 中。定义索引表时,主键约束和organization index  选项既可以指定,也可以不指定。这些选项的具体作用如下:

    organization index :用于指定索引表,而tablespace则用于指定主键索引所在的表空间。

pctthreshold:用于指定数据块中为键列和部分非键列数据所预留空间的百分比。如果数据块剩余空间低于pctthreshold设置,oracle会将其它数据存放到溢出段。

  overflow tablespace :用于指定溢出段所在的表空间。

 

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

上一篇: 标量变量
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2011-03-29

  • 博文量
    5
  • 访问量
    10850