哪位大虾能给我讲讲一下两种方式创建的索引的区别:
create index table_idx on table(bsm asc);
create index table_idx on table(bsm);
create index table_idx on table(bsm asc);
create index table_idx on table(bsm);
解决方案 »
- 在单一的表中怎么提取相同名称的成员 菜菜鸟
- oracle 数据恢复
- 求教索引专家: 终于找到查询缓慢的原因了? 但不知该如何解决!
- oracle字段的截取问题~~急
- Oracle测试软件
- 请教一个难题,高分致谢!有关Trigger || 存储过程的
- 当DROP过程和表时ORACLE老是死!!(大家帮忙阿)
- 我用oracle database assistant创建了一个数据库实例,可是删不掉???
- oracle9i支持的中文字符集名称是什么?
- oracle 关于事务问题
- 【愁死了】ORA-03115错误,大伙们来帮帮忙啊,弄2天了,快被搞疯掉了~!!!
- 在ms sql2000中用的case when 查询如果改为oracle该如何写?
区别就是 前面的索引是以bsm升序来的
后面的是按bsm的插入来的时间来的
A,B两表的查询条件都是where bsm in(..);
结果我看执行计划时,A表进行了全表扫描,B表按BSM索引进行查询。因为数据量很大,所以效率相差也很大。
这是怎么回事?
默认就是asc排序,所以是一样的。
这个得细说,CBO是根据数据情况决定执行计划的,可能是你没收集统计信息
分别对两表做下DBMS_STATS.GATHER_TABLE_STATS(ownername,tablename)试试