我觉得不必要改动.
建议你建两个基于function index.
substr(b,0,2),to_char(occur_date,'yyyy')create index b_substr_idx on table1 (substr(b,0,2));
create index occur_date_year_idx on table1 (to_char(occur_date,'yyyy'));注意:只有把init.ora参数QUERY_REWRITE_ENABLED=TRUE时,才能使用函数型索引.
建议你建两个基于function index.
substr(b,0,2),to_char(occur_date,'yyyy')create index b_substr_idx on table1 (substr(b,0,2));
create index occur_date_year_idx on table1 (to_char(occur_date,'yyyy'));注意:只有把init.ora参数QUERY_REWRITE_ENABLED=TRUE时,才能使用函数型索引.
解决方案 »
- oracle 11g 怎样导入 10G的备份文件呀
- 查询可访问表的问题!
- import导入出现ora-1013错误!
- oracle中关于orader by的问题,高手进!!
- 在partition分区中使用merge into 的问题,有熟悉的帮忙下
- 怎么得到oracle当中的一张表的所有列名呢???
- 哪位大侠有ORACLE8I或9I的Z版CD出售,请联系[email protected]
- 彻底删除数据
- oracle客户端怎样能实现执行服务器端的存储过程等?
- oracle取中数据某一段数据排序错误!!!
- 天啦!Oracle怎么这么难用呀,要备份一个东西,说要在OMS方式下,用OMS这种方式进,怎么这进不去,救救我呀!高分请教
- create table a (a nvarchar2(3) default '');怎么改?
建一个函数索引足够了:
create index occur_date_year_idx on table1 (to_char(occur_date,'yyyy'));BTW
在substr(b,0,2)上每必要作函数索引,WHERE里面都没有,用不上的。
是否设置QUERY_REWRITE_ENABLED=TRUE,要看你ORACLE的版本了