- 1
- 0
- 约5.75千字
- 约 18页
- 2017-07-22 发布于天津
- 举报
第11章 索引与约束.ppt
索引 索引的概念。 索引是Oracle的一个对象,一旦建立索引是否使用由Oracle决定,索引中存储了特定列的排序数据,实现对表的快速访问。使用索引可以很快查找到建立索引时列的值所在的行,而不必对表实现全表扫描,所以适当的使用索引可以减少磁盘I/O量。 在开始我们给出索引的特点总结,这样读者在接下来使用索引时,脑子中就有一个局限,不要认为使用索引就是好事?。 索引的特点: 对于具有只读特性或较少插入、更新或删除操作的大表通常可以提高查询速度。 可以对表的一列或多列建立索引。 建立索引的数量没有限制。 索引需要磁盘存储,由Oracle数据库服务器自动维护。 索引对用户透明,是否使用索引是Oracle决定的。 索引 创建索引的语法格式。 CREATE [UNIQUE|BITMAP] INDEX [schema.] index_name ON [schema.]table_name (column_name[DESC]ASC][, column_name[DESC]ASC]]………) [REVERSE] [TABLESPACE tablespace_name] [PCTFREE n] [INITRANS n] [MAXTRANS n] [instorage state] [LOGGING|NOLOGGING] [NOSORT] 下面解释各个参数的含义: UNIQUE:说明该索引是唯一索引。 BITMAP:创建位图索引。 DESC|ASC:说明创建的索引为降序或升序排列。 REVERSE:说明创建反向键索引。 TABLESPACE:说明要创建的索引所存储的表空间。 PCTFREE:索引块中预先保留的空间比列。 INITRANS:每一个索引块中分配的事务数。 MAXTRANS:每一个索引块中分配的最多事务数。 instorage state:说明索引中区段EXTENT如何分配。 LOGGING|NOLOGGING:说明 要记录|不记录 索引相关的操作,并保存咋联机重做日志中。 NOSORT:不需要在创建索引时再按键值进行排序。 索引 创建索引(index)。 建立简单索引:对EMP表建立索引 。 SQL conn scott/oracle SQL create index emp_ename_idx 2 on emp(ename); 该例子创建一个名为emp_ename_idx的索引,在emp表的ename列创建,该索引默认存储在USERS表空间中。 查询索引的存储信息。 SQL col index_name for a20 SQL col index_type for a10 SQL col table_name for a20 SQL col tablespace_name for a20 SQL select index_name,index_type,table_name,tablespace_name 2* from user_indexes ; 索引 创建索引表空间(index)。 创建一个索引表空间示例。 SQL conn system/oracle SQL create tablespace index_tbs 2 datafile d:/index/index_tbs1.dbf 3 size 100M 4 autoextend on; 在表空间index_tbs中创建表的多列索引。 SQL create index emp_ename_sal_idx 2 on emp(ename,sal) 3 tablespace index_tbs; 查询创建的多行索引 SQL col index_name for a20 SQLselect index_name,table_name,tablespace_name 2 from user_indexes 3* where index_name like EMP% 索引 查看索引 使用数据字典user_ind_columns SQL col column_name for a40 SQL select index_name,table_name,column_name 2 from user_ind_columns 3* where index_name like EMP% 使用数据字典USER_INDEXES查看索引信息 SQL col dropped for a10 SQLselect index_name,table_name,table_owner,dropped,tabl espace_name 2 from user_i
原创力文档

文档评论(0)