properties: {
startPoint: Number,
locationPoint: Number, ...
是350k行。 Orders
是20k行。 Users
是2k行。 Reflinks
是40k ids。 @p0
分割SplitIds(@p0)
并返回@p0
。看起来它会立即执行。
第一个TABLE(Id INT NOT NULL PRIMARY KEY)
立即执行并返回7.5k行。它的执行计划完全基于' Hash Match'块。
第二个SELECT
执行120秒并返回相同的7.5k行。它的执行平面相同,但基于SELECT
块。
是否有可能以某种方式加快第二个查询?我的任务是明确指定输入订单列表,这就是我创建Nested Loop
的原因。如果您知道如何在没有SplitIds
的情况下执行此操作 - 您的想法也将受到赞赏。
SplitIds
答案 0 :(得分:2)
如果您愿意使用临时表,则可以将Container
中的结果存储在正确索引的临时表中,然后使用它来执行第二个查询。这肯定会加快速度,因为SQL Server将能够为查询创建更好的执行计划。
SplitIds