oracle数据库索引种类,分别什么情况下使用

oracle数据库索引种类,分别什么情况下使用,第1张

在 Oracle 数据库中,索引(Index)是一个独立的数据库对象,用于提高查询数据的效率。索引是和表(Table)紧密相关的,一个表可以有多个索引,而每个索引都会关联到一个或多个表列。

在 Oracle 中,索引是与数据库用户(User)相关联的,索引所有者(Owner)是指创建该索引的数据库用户。当创建索引时,可以指定索引的所有者,也可以让系统默认使用当前用户作为索引所有者。如果您拥有系统权限或者具有足够的权限,可以通过查询 DBA_INDEXES 视图或 USER_INDEXES 视图来获取索引信息,其中 OWNER 列会显示索引所有者的用户名。

如何在ORACLE数据库的字段上建立索引

CREATE INDEX命令语法:

CREATE INDEX

CREATE [unique] INDEX [user]index

ON [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没有锁不能建立索引,oracle中添加索引的时候加入online

在线方式创建索引,即使用online创建索引:CREATE INDEX 索引名 ON 表名(列名) online;

在线方式创建索引,锁的是行而非表,通过临时表进行索引的创建,所以不会影响DML *** 作,创建索引的速度慢一些

在线方式创建索引,锁表,优先创建索引,此时DML都被阻塞,所以速度快。

MySQL56版本开始支持在线创建--Online DDL

ALTER TABLE table_name ADD INDEX , indea_name ,ALGORITHM=INPLACE,LOCK=NONE

ALGORITHM指定创建或删除索引得算法,有以下几类

索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据;Oracle存储索引的数据结构是B树,位图索引也是如此,只不过是叶子节点不同B数索引;索引由根节点、分支节点和叶子节点组成,上级索引块包含下级索引块的索引数据,叶节点包含索引数据和确定行实际位置的rowid。

使用索引的目的:

1、加快查询速度

2、减少I/O *** 作

3、消除磁盘排序

4、何时使用索引

5、查询返回的记录数

6、排序表<40%

7、非排序表

<7%

8、表的碎片较多(频繁增加、删除)

以上就是关于oracle数据库索引种类,分别什么情况下使用全部的内容,包括:oracle数据库索引种类,分别什么情况下使用、如何正确地分析Oracle数据库模式,表及索引、oracle索引有owner吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9714574.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存