Performance 在DB2中的where子句或其组合中,哪个性能更好

Performance 在DB2中的where子句或其组合中,哪个性能更好,performance,db2,conditional,Performance,Db2,Conditional,方法1: 从表中选择* 其中col1在('A','B','C')中 还有col2,什么东西 方法2: 从表中选择* 其中(col1='A'或col1='B'或col1='C') 还有col2,什么东西 这里哪种方法更好。考虑到查询将在Zlinux db2 10.5中运行50K。在寻求帮助时,您应该始终提供您的db2平台(z/os、i-series、linux/unix/windows)和db2版本,因为这些可能会影响答案 您可能会发现,Db2优化器会根据您的配置自动将方法2重写为方法1,这意味着

方法1: 从表中选择* 其中col1在('A','B','C')中 还有col2,什么东西 方法2: 从表中选择* 其中(col1='A'或col1='B'或col1='C') 还有col2,什么东西

这里哪种方法更好。考虑到查询将在Zlinux db2 10.5中运行50K。

在寻求帮助时,您应该始终提供您的db2平台(z/os、i-series、linux/unix/windows)和db2版本,因为这些可能会影响答案

您可能会发现,Db2优化器会根据您的配置自动将方法2重写为方法1,这意味着这两个语句将使用相同的访问计划。您可以通过研究这两个语句的访问计划来证明这一点,查询重写会清楚地显示出来

要查看解释计划,请学习如何使用工具、(最佳)和“用于选择…”

一些GUI工具具有内置支持,可以让您查看访问计划,例如IBM Data Studio和DB Visualizer等


中描述了将查询重写为语义等价且更易于优化的语句

在您的数据中,这两种情况的解释结果是什么样的?索引?选择性。。。?如何检查并解释@henrik