怎么查看索引oracle,建索引
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么查看索引oracle,建索引相关的知识,希望对你有一定的参考价值。
参考技术A 一、查看和建立索引select * from user_indexes where table_name = 'student'
create index i_student_num on student(num)
二、使用索引的注意点
①类型匹配
若student中num列是varchar类型,语句select * from student where num = 100
该语句被转化为select * from student where to_number(num) = 100,该列的索引就失效了。
②避免索引列参与计算
索引失效:select * from student where num * 10 > 10000
索引有效:select * from student where num > 10000 / 10
③不要对索引列使用IS NULL或IS NOT NULL
原则上对某一个列建立索引的时候,该列就不应该允许为空。
索引失效:select * from student where num is null
oracle 建索引怎么开启并行?
参考技术A 建索引时,我们为了建索引快,会加上并行,加上并行之后,此列索引就会是并行了。访问有并行度的索引时,CBO可能可能会考虑并行执行,这可能会引发一些问题,如在服务器资源紧张的时候用并行会引起更加严重的争用。当使用并行后,需要把并行度改回来。\\x0d\\x0aSQL> drop table test purge;\\x0d\\x0aSQL> create table test as select * from dba_objects;\\x0d\\x0aSQL> create index ind_t_object_id on test(object_id) parallel 4 ;\\x0d\\x0aSQL> select s.degree\\x0d\\x0afrom dba_indexes s\\x0d\\x0awhere s.index_name = upper(\'ind_t_object_id\');\\x0d\\x0aDEGREE\\x0d\\x0a----------------------------------------\\x0d\\x0a4\\x0d\\x0a\\x0d\\x0aSQL> alter index ind_t_object_id noparallel;\\x0d\\x0a\\x0d\\x0aSQL> select s.degree\\x0d\\x0afrom dba_indexes s\\x0d\\x0awhere s.index_name = upper(\'ind_t_object_id\');\\x0d\\x0aDEGREE\\x0d\\x0a----------------------------------------\\x0d\\x0a1以上是关于怎么查看索引oracle,建索引的主要内容,如果未能解决你的问题,请参考以下文章