我应该将过滤器放在 TSQL 查询的什么位置?
SELECT a.colum FROM A
JOIN B ON A.ID = B.ID AND B.STATUS = 1
或者
SELECT a.colum FROM A
JOIN B ON A.ID = B.ID
WHERE B.STATUS = 1
我正在寻找性能问题或良好做法。
我应该将过滤器放在 TSQL 查询的什么位置?
SELECT a.colum FROM A
JOIN B ON A.ID = B.ID AND B.STATUS = 1
或者
SELECT a.colum FROM A
JOIN B ON A.ID = B.ID
WHERE B.STATUS = 1
我正在寻找性能问题或良好做法。
笔记:
这会改变 OUTER JOIN,因为您会将其更改为内部连接
快捷方式:
使用单独的过滤器:
这取决于。您需要查看特定查询的执行计划,并查看哪个查询正在使用更有效的计划。使用与您的示例一样简单的查询,计划可能看起来非常相似。查询越复杂,您在计划中看到的差异就越大。