oracle有聚簇索引吗 Oracle数据库支持两种类型的聚簇,分别是索引聚簇和哈希聚簇。索引聚簇的使用:对经常在连接语句中访问的表建立聚簇。假如表只是偶尔被连接或者它们的公共列经常被修改,则不要聚簇表。(修改记录的聚簇键值比在非聚簇的表中修改此值要花费更多的时间,因为Oracle必须将修改的记录移植到其他的块中以维护聚簇)。假如经常需要在一个表上进行完全搜索,则不要聚簇这个表(对一个聚簇表进行完全搜索比在非聚簇表上进行完全搜索的时间长,Oracle可能要读更多的块,因为表是被一起存储的。假如经常从一个父表和相应的子表中查询记录,则考虑给1对多(1:*)关系创建聚簇表。(子表记录存储在与父表记录相同的数据块中,因此当检索它们时可以同时在内存中,因此需要Oracle完成较少的I/O)。假如经常查询同一个父表中的多个子记录,则考虑单独将子表聚簇。(这样提高了从相同的父表查询子表记录的性能,而且也没有降低对父表进行完全搜索的性能)。假如从所有有相同聚簇键值的表查询的数据超过一个或两个Oracle块,则不要聚簇表。(要访问在一个聚簇表中的记录,Oracle读取所有包含那个记录值的全部数据块,如果记录占据了多个数据块,则访问一个记录需要读的次数比一个非。
什么是聚簇索引?
如何在ORACLE数据库的字段上建立索引 索引建立代码:CREATE INDEX命令语法:CREATE INDEXCREATE[unique]INDEX[user.]indexON[user.]table(column[ASC|DESC][,column[ASC|DESC]].)[CLUSTER[scheam.]cluster][INITRANS n][MAXTRANS n][PCTFREE n][STORAGE storage][TABLESPACE tablespace][NO SORT]Advanced其中:schema ORACLE模式,缺省即为当前帐户index 索引名table 创建索引的基表名column 基表中的列名,一个索引最多有16列,long列、long raw列不能建索引列DESC、ASC 缺省为ASC即升序排序CLUSTER 指定一个聚簇(Hash cluster不能建索引)INITRANS、MAXTRANS 指定初始和最大事务入口数Tablespace 表空间名STORAGE 存储参数,同create table 中的storage.PCTFREE 索引数据块空闲空间的百分比(不能指定pctused)NOSORT 不(能)排序(存储时就已按升序,所以指出不再排序)
oracle中如何在列上建立聚簇索引 create clustered index index_name on table(column);补充-聚簇索引 是建立在聚簇列上的。你这有聚簇列吗?