首页 > 数据库 > Oracle > 数据表的非唯一索引使用的问题
|
在“realkid4”的博客上看到一篇文章《由于版本升级引发的SQL语句故障(续)》在自己的数据库上进行了一些测试,发现了一些问题,不是说“realkid4”文章的问题,而是ORACLE数据库的一些问题,也有可能是我的数据库设置的问题,但到现在还没有找到原因:先描述一下问题的现像,一个数据库表,里面有6万多条数据,建的有主键,login_id有一个非空,非唯一的数据库索引,进行SELECT login_id from table order by login_id,按说这样的操作会直接利用索引的排序功能,不会再排序了,但执行计划里不是这样显示的,我重建索引,重新分析索引,重新分析表,这样都不行,后来 create table tablename as select 重建一张表,重建主键,重建索引就好使了,可能是个个例吧。 原来表结构: 原来表的索引: 原表的执行计划: 执行计划显示还要再进行排序, 重新建表,建索引后表的执行计划: 显示直接利表的索引的排序功能,不再另行排序 到现在也没有搞清楚具体是什么原因,原来的索引有问题的话,索引已经删除重建过,重新分析过,还是不行! 转自:http://www.dba365.net/forum.php?mod=viewthread&tid=126&extra= |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24070544/viewspace-1259402/ ,如需转载,请注明出处,否则将追究法律责任。