原因是
OR在查询中使用它通常会使Query
Optimizer放弃使用索引查找并恢复为扫描。如果您查看两个查询的执行计划,则很可能会看到在使用处的扫描,
OR并在使用处查找
UNIOn。如果不查看查询,就无法真正给出如何重组
OR条件的任何想法。但是您可能会发现,将行插入临时表并连接到临时表可能会产生积极的结果。
另外,通常最好使用
UNIOn ALL而不是
UNIOn如果要所有结果,因为这样可以消除行匹配的成本。

原因是
OR在查询中使用它通常会使Query
OR并在使用处查找
UNIOn。如果不查看查询,就无法真正给出如何重组
OR条件的任何想法。但是您可能会发现,将行插入临时表并连接到临时表可能会产生积极的结果。
另外,通常最好使用
UNIOn ALL而不是
UNIOn如果要所有结果,因为这样可以消除行匹配的成本。