tsql – 过滤或加入是否先在T-SQL中发生?

前端之家收集整理的这篇文章主要介绍了tsql – 过滤或加入是否先在T-SQL中发生?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两张桌子:
Customers(Id,Name,TownId) T
Towns(Id,Name)

我有一个这样的sql语句:

SELECT *
FROM Customers
INNER JOIN Towns ON Towns.Id = Customers.TownId
WHERE Customers.Id > 5

首先会发生什么?
它会过滤Customers表,然后使用Towns表加入所选记录吗?
它会加入所有与城镇的客户,然后过滤?还是你说不出来?

解决方法

优化器将执行它认为最快的任何操作.

您可以使用联接提示强制某些行为,或者使用统计信息和索引来鼓励某些行为.但是,通常最好信任Optimizer.

如果您想详细解释查询的执行方式,请查看execution plan.

猜你在找的MsSQL相关文章