我需要做一张表的笛卡尔积,但没有相同的行。现在我有:如何优化笛卡尔积
select *
From T_Car C1
Join T_Car C2 On C1.CarID <> C2.CarID
但是对于1300行的T_Car表需要2分钟的时间。 我试过使用OPTION(HASH JOIN)和OPTION(MERGE JOIN),但是最后出现错误:
查询处理器由于此查询中定义的提示而无法生成查询计划。重新提交查询而不指定任何提示,也不使用SET FORCEPLAN。
有没有可能优化此查询?
你知道如何吓跑许多结果,将返回? (如果我没有弄错,则为169万行)。明显的优化是:不要选择那么多东西。 – delnan 2012-02-25 12:38:58
@delnan,有一个where子句,我相信它只会是1,687,400 :-)。你为什么要做笛卡尔产品?您的问题可能有更好的解决方案。 – Ben 2012-02-25 13:03:30
@Ben我最初占了这一点,但采用大多数舍入方法,结果保持不变;) – delnan 2012-02-25 13:10:17