關于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

          posted on 2007-12-26 00:42 tacy lee 閱讀(1925) 評論(0)  編輯  收藏 所屬分類: 性能相關數據庫

          主站蜘蛛池模板: 巴彦淖尔市| 扶绥县| 綦江县| 天祝| 兴仁县| 鄂托克旗| 九龙坡区| 闸北区| 右玉县| 浦江县| 甘孜县| 宝山区| 青冈县| 江永县| 温泉县| 额敏县| 稷山县| 铜梁县| 苍溪县| 安宁市| 聂拉木县| 镇康县| 胶州市| 法库县| 永安市| 柳州市| 山东省| 正定县| 永川市| 邢台市| 四川省| 睢宁县| 昭觉县| 龙门县| 区。| 东阳市| 安岳县| 龙里县| 昂仁县| 德钦县| 福泉市|