占用率/内存使用情况等性能指标却发现均在正常范围内,无意中在SqlServer Profier中跟踪数据库执行的sql语句时,发现有大量语句直接将整个表的数据全部提取出来了,而非仅返回分页中的当前页数据...Server Profiler跟踪提交到数据库的语句为:
exec sp_executesql N'SELECT [t1]....[F_Age]
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY [t0].[F_ID], [t0].[F_Name], [t0]....[F_Age]) AS [ROW_NUMBER], [t0].[F_ID], [t0].[F_Name], [t0].[F_Age]
FROM [dbo]....[ROW_NUMBER]',N'@p0 int,@p1 nvarchar(3),@p2 int,@p3 int',@p0=20,@p1=N'%J%',@p2=1,@p3=1
一切都很完美,跟我们想象的一样仅取了一条记录