【发布时间】:2019-02-14 14:01:10
【问题描述】:
谁能在非常基本的层面上向我解释这两个查询的性能差异。
ORDER BY (select null)
OFFSET @Offset ROWS
FETCH NEXT @EntriesPerPage ROWS ONLY;
ORDER BY (ItemID)
OFFSET @Offset ROWS
FETCH NEXT @EntriesPerPage ROWS ONLY;
我希望第一个查询执行得更好,因为它不是按列排序,但是每次我测试这个第二个查询总是执行得更好。谁能向我解释为什么第二个查询对于 OFFSET / FETCH 会运行得更好,即使它是按列排序的。
我单独运行查询。我在每个查询之间擦除缓存计划和缓冲区,以便它不使用以前的执行计划。
谢谢
【问题讨论】:
-
ItemID 是否被索引?
-
你到底是如何测试的?
-
冷/热数据? (每个查询运行两次。)
标签: sql sql-server sql-order-by fetch offset