走oracle要需什么,到底什么情况下才会走索引?

必须要有等值的条件才能走索引吗?

SQL> explain plan for

2  select mdata_sn, data_channel_sn, getdate, mdata_val, syn_clock

3    from cd_moni_h_data

4    where getdate =to_date('2010','yyyy');

Explained

SQL> select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT

--------------------------------------------------------------------------------

Plan hash value: 349188874

--------------------------------------------------------------------------------

| Id  | Operation                          | Name                 | Rows  | Byte

--------------------------------------------------------------------------------

|   0 | SELECT STATEMENT                   |                      |     1 |    2

|   1 |  TABLE ACCESS BY GLOBAL INDEX ROWID| CD_MONI_H_DATA       |     1 |    2

|*  2 |   INDEX RANGE SCAN                 | CD_MONI_H_DATA_IDX_2 |     1 |

--------------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

2 - access("GETDATE"=TO_DATE('2010','yyyy'))

14 rows selected

SQL>

SQL> explain plan for

2  select mdata_sn, data_channel_sn, getdate, mdata_val, syn_clock

3    from cd_moni_h_data

4    where getdate >=to_date('2010','yyyy') and  getdate

Explained

SQL> select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT

--------------------------------------------------------------------------------

Plan hash value: 3461087540

--------------------------------------------------------------------------------

| Id  | Operation                 | Name           | Rows  | Bytes | Cost (%CPU)

--------------------------------------------------------------------------------

|   0 | SELECT STATEMENT          |                |    17M|   439M| 21016  (19)

|*  1 |  FILTER                   |                |       |       |

|   2 |   PARTITION RANGE ITERATOR|                |    17M|   439M| 21016  (19)

|   3 |    PARTITION HASH ALL     |                |    17M|   439M| 21016  (19)

|*  4 |     TABLE ACCESS FULL     | CD_MONI_H_DATA |    17M|   439M| 21016  (19)

--------------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

1 - filter(TO_DATE('2010','yyyy')

4 - filter("GETDATE">=TO_DATE('2010','yyyy') AND "GETDATE"

17 rows selected

SQL>

SQL> explain plan for

2  select mdata_sn, data_channel_sn, getdate, mdata_val, syn_clock

3    from cd_moni_h_data

4    where getdate >to_date('2010','yyyy') and  getdate

Explained

SQL> select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT

--------------------------------------------------------------------------------

Plan hash value: 3461087540

--------------------------------------------------------------------------------

| Id  | Operation                 | Name           | Rows  | Bytes | Cost (%CPU)

--------------------------------------------------------------------------------

|   0 | SELECT STATEMENT          |                |    17M|   439M| 21016  (19)

|*  1 |  FILTER                   |                |       |       |

|   2 |   PARTITION RANGE ITERATOR|                |    17M|   439M| 21016  (19)

|   3 |    PARTITION HASH ALL     |                |    17M|   439M| 21016  (19)

|*  4 |     TABLE ACCESS FULL     | CD_MONI_H_DATA |    17M|   439M| 21016  (19)

--------------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

1 - filter(TO_DATE('2010','yyyy')

4 - filter("GETDATE">TO_DATE('2010','yyyy') AND "GETDATE"

17 rows selected

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值