我正在尝试确定在 SQL Server 2005 中运行的一段生成的 SQL 的性能。
它使用 CROSS JOINS,但绑定交叉连接表的条件位于 where 语句中。
我以前认为所有具有 where 语句的交叉连接都会首先提取完整的笛卡尔积,然后应用过滤器。
但是,MSDN 上的以下链接建议不同。
https://msdn.microsoft.com/en-us/library/ms190690.aspx
它特别指出,如果交叉连接表上有条件,它将像内部连接一样“表现”。它继续展示了一个内部连接和带条件的交叉连接的类似结果的示例。
它没有说明性能差异是什么,只是它们的行为方式相似。