添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
豪情万千的山羊  ·  Entity Framework ...·  1 年前    · 
机灵的木瓜  ·  《Apache ...·  2 年前    · 
执行SQL

在Oracle中执行下面的命令,我们可以看一下这句sql的执行过程:

EXPLAIN PLAN FOR SELECT * from PAYADM.RPMTORD WHERE CRE_DT =20171229;

SELECT * FROM TABLE (dbms_xplan.display);

下图就是我们这句命令的执行计划,我们可以看见在表中第二行Operation中出现“TABLE ACCESS FULL”,意思就是我们这句sql使用的是“按全表扫描”,而不是索引检索,接着往下看:1 - filter(TO_NUMBER("CRE_DT")=20171229),到这里真相就大白了,CREDT字段在数据库中实际上一个字符串类型,然而我们where条件中的参数传的是number类型,因此会出现放弃索引,并且每次检索都会做一次TO_NUMBER转换的情况;