首页 > 数据库技术 > 详细

Oracle 隐式转换

时间:2020-06-22 22:34:27      阅读:70      评论:0      收藏:0      [点我收藏+]

Oracle在执行自隐式转换时:总是会把字符串转为数字,字符串转为日期。当列进行转换,会跳过索引,降低性能。

  1. 创建一个表格,给三个列建立索引,进行测试。
技术分享图片
create table t1(n1 number, v1 varchar2(10), d1 date);

insert into t1
  select
        rownum n1
      , rownum v1
      , sysdate + dbms_random.value(0,365)
  from
        dual
connect by level <= 1e3;


create index t1_n1_idx on t1(n1);
create index t1_v1_idx on t1(v1);
create index t1_d1_idx on t1(d1);
View Code
  • 查看执行计划,v1列因为隐式to_number,所以没有走索引
select count(1) from t1 where v1 = 1

技术分享图片

 

下面的走索引T1_V1_IDX

select count(1) from t1 where v1 = 1

技术分享图片

  • 查看执行计划,因为v1列需要转日期,所以不走索引

技术分享图片

只要列不转类型,就走索引

技术分享图片

 技术分享图片

 

总结自:https://www.red-gate.com/simple-talk/sql/oracle/oracle-data-type-implicit-conversion-hierarchy/

 

Oracle 隐式转换

原文:https://www.cnblogs.com/bibi-feiniaoyuan/p/oracle_implicit_convert.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!