oracle使用索引查询 如何查询Oracle数据库中已经创建的索引?
如何查询Oracle数据库中已经创建的索引?
oracle对于数据库中的表信息,存储在系统表中。查询已创建好的表索引,可通过相应的sql语句到相应的表中进行快捷的查询:
1. 根据表名,查询一张表的索引select * from user_indexes where table_name=upper("表名")
2. 根据索引号,查询表索引字段select * from user_ind_columns where index_name=("索引名")
3.根据索引名,查询创建索引的语句select dbms_metadata.get_ddl("INDEX","索引名", ["用户名"]) from dual --["用户名"]可省,默认为登录用户PS:dbms_metadata.get_ddl还可以得到建表语句,如:SELECT DBMS_METADATA.GET_DDL("TABLE","表名", ["用户名"]) FROM DUAL //取单个表的建表语句,["用户名"]可不输入,默认为登录用户SELECT DBMS_METADATA.GET_DDL("TABLE",u.table_name) FROM USER_TABLES u //取用户下所有表的建表语句当然,也可以用pl/sql developer工具来查看相关的表的各种信息。
oracle数据库索引种类?
1.b-tree索引Oracle数据库中最常见的索引类型是b-tree索引,也就是B-树索引,以其同名的计算科学结构命名。CREATEINDEX语句时,默认就是在创建b-tree索引。没有特别规定可用于任何情况。
2.位图索引(bitmapindex)位图索引特定于该列只有几个枚举值的情况,比如性别字段,标示字段比如只有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使用索引查询 oracle数据库 oracle用索引查询数据
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。