【发布时间】:2017-10-21 11:15:01
【问题描述】:
如何优化此查询,因为 EXT 表每个包含大约 150 万条记录。我还有其他联接,但它们的记录相对少于 50 条。 两个 EXT 表都使用默认设置设置身份,并且是 P
SELECT *
FROM (
SELECT
ROW_NUMBER() OVER(ORDER BY ID ASC) AS RowNumber
, *
FROM History
LEFT JOIN FlattenExt1
ON History.ID = FlattenExt1.ExtID
LEFT JOIN FlattenExt2
ON History.ID = FlattenExt2.ExtId
) as final
where final.RowNumber BETWEEN (@PageIndex -1) * @PageSize + 1
AND (((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1
order by final.rownumber
【问题讨论】:
-
使用Paste The Plan @ brentozar.com 分享您的执行计划,以下是说明:How to Use Paste the Plan。
-
如前所述共享您的表 DDL 和执行计划。
-
@artashes Khachatryan 实际上,这只是一段代码,仅在左连接方面需要优化的地方。还有其他内部连接,无论如何这都是必要的,但我在这里没有提到。
-
@MonkeyD.luffy 我们需要查看包含在此查询中的表的创建语句以帮助您。
标签: sql-server tsql join sql-server-2008-r2 query-optimization