1、取前十条记录
select top 10 id from dbo.sysobjects
2、取11条记录到30条记录
select top 20 * from dbo.sysobjects where id not in
(select top 10 id from dbo.sysobjects)
性能分析
SET STATISTICS IO ON;
SET STATISTICS TIME ON;
SELECT TOP 10 *
FROM (SELECT TOP 20 * FROM sysobjects order BY id) as tbl2
ORDER BY tbl2.id DESC
SQL Server 分析和编译时间:
SELECT TOP 10 *
FROM (SELECT TOP 20 * FROM sysobjects order BY id) as tbl2
ORDER BY tbl2.id DESC
CPU 时间 = 0 毫秒,耗费时间 = 12 毫秒。
(所影响的行数为 10 行)
表 'sysobjects'。扫描计数 1,逻辑读 2 次,物理读 0 次,预读 0 次。
SQL Server 执行时间:
CPU 时间 = 2 毫秒,耗费时间 = 2 毫秒。
SQL Server 分析和编译时间:
select top 10 *
from sysobjects
where id not in (select top 20 id from sysobjects)
CPU 时间 = 14 毫秒,耗费时间 = 14 毫秒。
(所影响的行数为 10 行)
表 'sysobjects'。扫描计数 2,逻辑读 4 次,物理读 0 次,预读 0 次。
SQL Server 执行时间:
CPU 时间 = 0 毫秒,耗费时间 = 1 毫秒。
前者的性能,要好一些
本文介绍了两种SQL分页查询的方法,并对比了它们的性能差异。一种是直接选取前10条记录,另一种是从第11条记录开始选取20条记录。通过对这两种方法的SQL Server分析和编译时间进行对比,发现直接选取前10条记录的方法性能更优。
1067

被折叠的 条评论
为什么被折叠?



