在使用 SQL Server 的 OFFSET 和 FETCH 进行分页查询时,我遇到了一个非常奇怪的现象:无论查询第一页还是其他页,只要 FETCH NEXT 的值是 1,查询性能就会变得非常糟糕,甚至比查询多行数据(如 FETCH NEXT 100)还要慢。这完全违背了直觉,因为按理说,查询的行数越少,性能应该越好。 经过一番排查,我发现问题可能出在以下几个关键点上。 1. 问题现象 无论查询第一页(OFFSET 0 ROWS FETCH NEXT 1 ROWS)还是其他页(如 OFFSET 100 …