我有一表,数据量上千万行。不用日期查询时,会很快。一用到日期,很慢。加过索引。我用三种方法测试,都慢:
1.dtl.startday >= to_date('2009-01-01','yyyy-mm-dd') AND dtl.startday <= to_date('2009-01-31','yyyy-mm-dd')
2. dtl.startday between '2009-01-01' and '2009-01-31'
3.to_char(dtl.startday,'yyyy-mm-dd')>='2009-01-01' and to_char(dtl.startday,'yyyy-mm-dd')<='2009-01-31'请问还有什么办法?
1.dtl.startday >= to_date('2009-01-01','yyyy-mm-dd') AND dtl.startday <= to_date('2009-01-31','yyyy-mm-dd')
2. dtl.startday between '2009-01-01' and '2009-01-31'
3.to_char(dtl.startday,'yyyy-mm-dd')>='2009-01-01' and to_char(dtl.startday,'yyyy-mm-dd')<='2009-01-31'请问还有什么办法?
解决方案 »
- 我通过日志挖掘 找到了这样的数据 而且我确定 这就是我插入的数据
- 64位suse上安装oracle11g-64时提示:[INS-32033]central inventory location was not writable
- ORACLE中如何将2001-11-11 12:12:12更改为20011111 121212的格式啊?
- insert语句,字段来自不同的表
- 为什么我的建的表字段是char却只能插入数字
- oracle的order by排序规则
- in和or的区别
- 再提一次imp 和 exp?
- 实例(instance),全局数据库名(db_name),系统标识符(SID)怎么区分?
- 菜鸟问个SQL问题
- jdbc连接不了远程数据库
- 怎样把Oracle中的表数据插入到informix表中
第一和第二个方法有一个会出错的吧
如:(dtl.startday >= to_date('2009-01-01','yyyy-mm-dd')) .....
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as twc3_test
SQL> SELECT SYSDATE, FUN_DATE2UTC(SYSDATE) FROM DUAL;
SYSDATE FUN_DATE2UTC(SYSDATE)
----------- ---------------------
2009-11-10 1257846073
SQL> FUN_DATE2UTC 为 一个 方法。
这列假设表明是:table_test,可以向下面这样,你再试试看看速度是不是有所提高:
create index index_date on table_test to_char(startday,'yyyy-mm-dd');