我有一个如下所示的SQL查询:
SELECT *
FROM tableB ta
INNER JOIN tableB tb ON tb.someColumn = ta.someOtherColumn
someColumn
和someOtherColumn
都不是其表的主键。两者均为数据类型int
。
TableA
有〜500.000条记录,tableB
有〜250.000条记录。查询大约需要2分钟才能完成,我认为这太长了。
查询执行计划如下:
我已经尝试(a)使用OPTION (RECOMPILE)
和(b)在相应表上创建INDEX
。无济于事。
我的问题是:如何提高查询的性能?
答案 0 :(得分:1)
在tb.SomeColumn上创建索引,并在ta.SomeOtherColumn上创建另一个索引。
然后,当您运行此查询时,哈希匹配项应替换为内部循环,并且速度更快。