方法-1: 从表中选择* col1 in('A','B','C') 和col2 ='某事' 方法2: 从表中选择* 其中(col1 ='A'或col1 ='B'或col1 ='C') 和col2 ='Something'
这种方法更好。考虑到查询将在Zlinux db2 10.5中运行50K。
答案 0 :(得分:0)
你应该总是在寻求帮助时给你的Db2平台(z / os,i-series,linux / unix / windows)和Db2版本,因为这些会影响答案
您可能会发现Db2优化器会自动将Approach-2重写为Approach-1,具体取决于您的配置 - 这意味着两个语句将使用相同的访问计划。您可以通过研究两个语句的访问计划来证明这一点,查询重写会清楚地显示出来。
要查看解释计划,请了解如何使用工具db2expln,db2exfmt(最佳)和“explain plan用于SELECT ...”。
一些GUI工具具有内置支持,可让您查看访问计划,例如IBM Data Studio和DB-Visualizer等。
documentation中描述了将查询重写为语义等效且更易于优化的语句。