什么是更快的IN或OR?

Zyp*_*rax 6 t-sql optimization performance profiling sql-optimization

在T-SQL中什么更快?

DELETE * FROM ... WHERE A IN (x,y,z)
Run Code Online (Sandbox Code Playgroud)

要么

DELETE * FROM ... WHERE A = x OR A = y OR A = z
Run Code Online (Sandbox Code Playgroud)

在我的例子中,x,y和z是存储过程的输入参数.而且我正试图尽我最大的能力获得DELETE和INSERT语句的性能.

cha*_*aos 14

不要想; 轮廓.

在考虑速度问题时,我敦促你不要依赖直觉,你的或任何其他人的直觉.相反,尝试这两种选项,进行某种分析/运行时间测量,并找出哪种情况更快.

  • +1 感谢您支持我自己想说的话。:-) (2认同)

Ada*_*Dev 11

"IN"将转换为一系列"OR"...如果您查看带有"IN"的查询的执行计划,您将看到它已将其展开.

在我看来,使用"IN"更加清晰,特别是在较大的查询中,它使它更具可读性.