orcal数据库索引有哪些,oracle的索引类型到底有几种从原理上来划分
来源:整理 编辑:黑码技术 2024-11-06 17:38:30
本文目录一览
1,oracle的索引类型到底有几种从原理上来划分
普通(B-TREE)、BITMAP功能Application Domain IndexesinterMedia Text Indexes
2,请问oracle的索引有哪些
oracle索引有B-TREE,bitmap,主键,函数,反键,文本等等索引可以使用数据字典进行查询。select index_name,table_name from user_indexes order by table_name;
3,Oracle数据库中的最常用的索引有哪些
按照索引数据的存储方式可以将索引分为:B树索引、位图索引、反向键索引和基于函数的索引按照索引列的唯一性可以分为:唯一索引和非唯一索引按照索引列的个数可以分为:单列索引 和复合索引1. b-tree索引Oracle数据库中最常见的索引类型是b-tree索引,也就是B-树索引,以其同名的计算科学结构命名。CREATE INDEX语句时,默认就是在创建b-tree索引。没有特别规定可用于任何情况。2. 位图索引(bitmap index)位图索引特定于该列只有几个枚举值的情况,比如性别字段,标示字段比如只有0和1的情况。3. 基于函数的索引比如经常对某个字段做查询的时候是带函数操作的,那么此时建一个函数索引就有价值了。grant create session to myrole;grant create table to myrole;grant create view to myrole;grant create sequence to myrole;grant create any index to myrole;
4,oracle 时间 建立什么索引
Oracle中我们经常使用Date字段类型记录日期和时间,有的时候还在这个字段上建立索引。然后通过Java程序访问数据库的时候,我们很自然的类似这样使用:select * from table where endDate>? and endDate<?,然后通过PreparedStatement预编译,再通过setTimestamp传入由java.util.Date转成java.sql.Timestamp的参数(因为java.sql.Date只有日期,java.sql.Time只有时间,所以我们只能用java.sql.Timestamp类型)。我们会认为这样应该走索引区间扫描,效率应该是非常高的。而事实上,Oracle会把sql解释成如下这样来执行:select * from table where TO_TIMESTAMP(endDate)>? and TO_TIMESTAMP(endDate)<?; 为什么?因为传入的参数是timestamp类型,Oracle从9.2版本以后支持这种类型,所以Oracle做了这样的转换,结果就是这个SQL执行变成了全表扫描。我们做的试验,加了一个index hint,强制走时间索引字段,结果效率也不高,sql执行变成了全索引扫描,和全表扫描没多大区别。结果效率还是低。不光直接使用JDBC会是这样,Spring,iBatis在处理传入参数是java.util.Date类型的时候,都会使用setTimestamp设定参数,所以都需要注意。
5,oracle数据库索引种类分别什么情况下使用
1. b-tree索引Oracle数据库中最常见的索引类型是b-tree索引,也就是B-树索引,以其同名的计算科学结构命名。CREATE INDEX语句时,默认就是在创建b-tree索引。没有特别规定可用于任何情况。2. 位图索引(bitmap index)位图索引特定于该列只有几个枚举值的情况,比如性别字段,标示字段比如只有0和1的情况。3. 基于函数的索引比如经常对某个字段做查询的时候是带函数操作的,那么此时建一个函数索引就有价值了。4. 分区索引和全局索引这2个是用于分区表的时候。前者是分区内索引,后者是全表索引5. 反向索引(REVERSE)这个索引不常见,但是特定情况特别有效,比如一个varchar(5)位字段(员工编号)含值(10001,10002,10033,10005,10016..)这种情况默认索引分布过于密集,不能利用好服务器的并行但是反向之后10001,20001,33001,50001,61001就有了一个很好的分布,能高效的利用好并行运算。6.HASH索引HASH索引可能是访问数据库中数据的最快方法,但它也有自身的缺点。集群键上不同值的数目必须在创建HASH集群之前就要知道。需要在创建HASH集群的时候指定这个值。使用HASH索引必须要使用HASH集群。Oracle数据库常见的索引种类有:B树索引、位图索引、反向键索引、基于函数的索引、B树索引:如果表包含的数据非常多,并且经常在WHERE子句中引用某列或某几列,则应该基于该列或这几个列建立B树索引;位图索引:当列的基数很低的时,当一个列的基数小于1%时,适用于位图索引;反向索引:如果用户使用序列在表中输入记录,则反向键索引首先指向每个列键值的字节,然后在反向后的新数据上进行索引;但进行反向键索引时却是非递增的,这意味如果将其添加到子叶节点,可能会在任意的子叶节点中进行。基于函数的索引:当数据库中遇到对字符大小写很敏感,如果用户不能确定输入数据的格式,甚至会产生一个严重的错误;这时候创建基于函数的索引就比较合适了;问题太多了吧?逻辑上:Single column 单列索引Concatenated 多列索引Unique 唯一索引NonUnique 非唯一索引Function-based函数索引Domain 域索引物理上:Partitioned 分区索引NonPartitioned 非分区索引B-tree:Normal 正常型B树Rever Key 反转型B树 Bitmap 位图索引create index name on:就是普通的 非唯一索引 或 函数索引 主键会给分配索引,外键不会自动分配索引,需要自己创建游标 数据库指针类似于字处理程序中的指针当你按下方向键时游标依次从各行文本中 滚动按一下向上键游标向上跳一行而按pageup 和pagedown 则会向一次翻阅几行数 据库游标的操作也类似 数据库游标允许你选择一组数据通过翻阅这组数据记录通常被称为数据集检查 每一个游标所在的特定的行你可以将游标和局部变量组合在一起对每一个记录进行检查 当游标移动到下一个记录时来执行一些外部操作 游标的另一个常见的用法是保存查询结果以备以后使用一个游标结果集是通过执行 select 查询来建立的如果你的应用程序或过程需要重复使用一组记录那么第一次建 立游标以后再重复使用将会比多次执行查询快得多而且你还有在查询的结果集中翻阅的好处1。需要顺序的逐条处理记录数据; 2。记录数不应该很多。
文章TAG:
orcal 数据 数据库 数据库索引 orcal数据库索引有哪些