oracle11g SQL语句条件中存在数值型导致查询效率降低

近日为项目开发了一个维护功能,虽然是一个临时功能,目的是处理大量历史数据,发现一个有趣的现象,同样语义结构的两句SQL执行时间却相差百倍。

数据库: oralce11gR2
测试工具: sqldeveloper-17.2.0.188.1159

example:

  • sql1 : slect col1,col2 from table where col3 = ?
  • sql2 : slect col1,col4 from table where col5 = ?

这样两句执行效率相差百倍,原因是条件字段的数据类型为数值型,而查询字段中又不包含数值型。

解决方式:

  • 将条件字段增加至查询字段 : slect col1,col4,col5 from table where col5 = ?

  • 增加为数值型的查询字段col6: slect col1,col4,col6 from table where col5 = ?

你可能感兴趣的:(oracle,sql,效率,查询效率,数值型)