我们就SQL Server 2008和连接进行了讨论。一半人说,连接越多,SQL 运行得越慢。另一半人则认为这并不重要,因为 SQL Server 能够自动处理,所以你不会注意到任何性能损失。哪个说法是正确的呢?
我们就SQL Server 2008和连接进行了讨论。一半人说,连接越多,SQL 运行得越慢。另一半人则认为这并不重要,因为 SQL Server 能够自动处理,所以你不会注意到任何性能损失。哪个说法是正确的呢?
不要按照您的方式提问,考虑以下问题:
这也是一个程度问题。连接无法避免添加额外的处理。即使查询优化器将其移除(例如,左连接与未使用连接的内容)- 解析它仍然需要CPU周期。
现在,如果问题是关于比较连接和另一种技术,例如LEFT JOIN + IS NULL与NOT EXISTS的特殊情况,用于X中的记录不在Y中
的场景,那么让我们讨论具体细节 - 表大小(X vs Y),索引等。
它会减慢速度:查询越复杂,数据库服务器执行它所需的工作就越多。
但是关于那个“性能损失”:相对于什么?是否有另一种获取相同数据的方法?如果有,那么您可以将各种选项进行分析比较,以确定哪个最快。