|
|
![]() |
|
Oracle数据库中的timestamp和date类型
问题:where timestamp>date 这种子句是走索引吗?
下面我们针对这个问题做一个试验: c:>sqlplus / as sysdba sys@EOS >create table test as select table_name,to_timestamp(last_analyzed) date_test from dba_tables; 表已创建。 sys@EOS> create index idx_test_date on test (date_test); 索引已创建。 sys@EOS> desc test 名称 是否为空? 类型 ------------------------- -------- ---------------- TABLE_NAME NOT NULL VARCHAR2(30) DATE_TEST TIMESTAMP(0) sys@EOS> select date_test from test where date_test > TO_DATE('2007-11-5 00:00:00','yyyy-MM-dd HH24:mi:ss'); 执行计划 ---------------------------------------------------------- Plan hash value: 944171586 -------------------------------------------------------------------------------- -- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------------- -- | 0 | SELECT STATEMENT | | 1 | 22 | 1 (0)| 00:00:01 | |* 1 | INDEX RANGE SCAN| IDX_TEST_DATE | 1 | 22 | 1 (0)| 00:00:01 | -------------------------------------------------------------------------------- -- Predicate Information (identified by operation id): --------------------------------------------------- 1 - access("DATE_TEST">TIMESTAMP'2007-11-05 00:00:00') Note ----- - dynamic sampling used for this statement
统计信息 ---------------------------------------------------------- 7 recursive calls 0 db block gets 18 consistent gets 0 physical reads 0 redo size 280 bytes sent via SQL*Net to client 374 bytes received via SQL*Net from client 1 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 0 rows processed 从上文中大家可以清楚地看到,timestamp>date情况下,走索引。 另外,date类型一般很少用,建议大家在产品里面所有的date数据类型全部改为timestamp。 第 页 责任编辑:qwer19871212
相关文章
|
|