这个语句应该如何建立索引呢 select * from a where f=0 and d>sysdate-3 order by id desc建立 f 和 d 字段的联合索引不起作用,好像因为d字段是范围查询,不走索引。有什么好办法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你什么知道它不起作用呢?create index idx_tb on tb (f,d); 索引不会在SQL语句体现出来的,索引的作用在于提高查询效率,降低查询时的资源利用。一个基表不能建太多的索引; 空值不能被索引 只有唯一索引才真正提高速度,一般的索引只能提高30%左右。对表进行insert,update,delete处理时,由于要将表的存放位置记录到索引项中 而会降低一些速度。 看是否走索引,用set autotrace on,查询后会显示执行计划,看看是不是用了索引. 从哪里来的观点? 可以这么说,不管是unique还是一般的普通index, 这不是区别性能的根本,通常来说,在同样的结果集返回率的情况下,3个左右的IO都能完成索引扫描,这不取决于是什么索引类型,而是取决于你的索引的构造,如CF和blevel等.当然还有CBO的选择,统计信息的差异.因此不是说提高30%还是多少,而是根据很多东西来决定的. oracle中有太多的因素会影响你的查询.因此不能一概而论. 可以创建以下的索引:create index ind_fd on a(f,d);然后改写一下你的SQL语句:select * from a where f=0 and d>=sysdate-2 order by id desc; 试下这2种:create index ind_fd on a(f,d, id); create index ind_fd on a(f,d, id desc); 如何在plsql中执行查询存储过程 请教一个存储过程问题 ORA-01219:数据库未打开:仅允许在固定表/视图中查询 EXP-00008: 遇到 ORACLE 错误 376 ,如何处理。 新手提问:关于oracle的中插入日期的问题,急! 新手提问,如果字段是not null的,那么写进空格也不行?是这样么? 各位大虾请指教! oracle8.1.6能否安裝在win2000上?急救? 关于ERwin生成设计文档的中文显示问题,急 这条sql语句该怎么写? 哪位好心人帮我一下,一个小问题,看了一会没明白! ORACLE启动问题
索引的作用在于提高查询效率,降低查询时的资源利用。
一个基表不能建太多的索引;
空值不能被索引
只有唯一索引才真正提高速度,一般的索引只能提高30%左右。
对表进行insert,update,delete处理时,由于要将表的存放位置记录到索引项中 而会降低一些速度。
从哪里来的观点? 可以这么说,不管是unique还是一般的普通index, 这不是区别性能的根本,通常来说,在同样的结果集返回率的情况下,3个左右的IO都能完成索引扫描,这不取决于是什么索引类型,而是取决于你的索引的构造,如CF和blevel等.当然还有CBO的选择,统计信息的差异.因此不是说提高30%还是多少,而是根据很多东西来决定的. oracle中有太多的因素会影响你的查询.因此不能一概而论.
create index ind_fd on a(f,d, id); create index ind_fd on a(f,d, id desc);