USE AdventureWorks2008
GO
SELECT COUNT(*) FROM Production.TransactionHistoryArchive
GO
SELECT TOP 50 * FROM Production.TransactionHistoryArchive
ORDER BY ReferenceOrderID ASC
GO
--Use Top*Top
DECLARE @Start datetime,@end datetime;
SET @Start=getdate();
DECLARE @PageNumber INT, @Count INT, @Sql varchar(max);
SET @PageNumber=5000;
SET @Count=10;
SET @Sql='SELECT T2.* FROM (
SELECT TOP 10 T1.* FROM
(SELECT TOP ' + STR(@PageNumber*@Count) +' * FROM Production.TransactionHistoryArchive
ORDER BY ReferenceOrderID ASC) AS T1
ORDER BY ReferenceOrderID DESC) AS T2
ORDER BY ReferenceOrderID ASC';
EXEC (@sql);
SET @end=getdate();
PRINT Datediff(millisecond,@Start,@end);
GO
--USE table value
DECLARE @Start datetime,@end datetime;
SET @Start=getdate();
DECLARE @PageNumber INT, @Count INT, @Sql varchar(max);
SET @PageNumber=5000;
SET @Count=10;
DECLARE @local_variable table (RowNumber int identity(1,1),[TransactionID] [int],
[ProductID] [int],
[ReferenceOrderID] [int],
[ReferenceOrderLineID] [int],
[TransactionDate] [datetime],
[TransactionType] [nchar](1),
[Quantity] [int],
[ActualCost] [money],
[ModifiedDate] [datetime]);
insert into @local_variable (TransactionID, ProductID, ReferenceOrderID, ReferenceOrderLineID, TransactionDate, TransactionType, Quantity, ActualCost, ModifiedDate)
SELECT TOP 50000 TransactionID, ProductID, ReferenceOrderID, ReferenceOrderLineID, TransactionDate, TransactionType, Quantity, ActualCost, ModifiedDate from Production.TransactionHistoryArchive ORDER BY ReferenceOrderID ASC
select * from @local_variable where RowNumber > (@PageNumber-1)*@Count and RowNumber <= @PageNumber*@Count
SET @end=getdate();
PRINT Datediff(millisecond,@Start,@end);
GO
--USE temp table
DECLARE @Start datetime,@end datetime;
SET @Start=getdate();
DECLARE @PageNumber INT, @Count INT, @Sql varchar(max);
SET @PageNumber=5000;
SET @Count=10;
create table #local_variable(RowNumber int identity(1,1),[TransactionID] [int],
[ProductID] [int],
[ReferenceOrderID] [int],
[ReferenceOrderLineID] [int],
[TransactionDate] [datetime],
[TransactionType] [nchar](1),
[Quantity] [int],
[ActualCost] [money],
[ModifiedDate] [datetime]);
insert into #local_variable (TransactionID, ProductID, ReferenceOrderID, ReferenceOrderLineID, TransactionDate, TransactionType, Quantity, ActualCost, ModifiedDate)
SELECT TOP 50000 TransactionID, ProductID, ReferenceOrderID, ReferenceOrderLineID, TransactionDate, TransactionType, Quantity, ActualCost, ModifiedDate from Production.TransactionHistoryArchive ORDER BY ReferenceOrderID ASC
select * from #local_variable where RowNumber > (@PageNumber-1)*@Count and RowNumber <= @PageNumber*@Count
SET @end=getdate();
PRINT Datediff(millisecond,@Start,@end);
GO
--Use ROW_NUMBER
DECLARE @Start datetime,@end datetime;
SET @Start=getdate();
DECLARE @PageNumber INT, @Count INT, @Sql varchar(max);
SET @PageNumber=5000;
SET @Count=10;
SELECT * FROM
( SELECT ROW_NUMBER()
OVER(ORDER BY ReferenceOrderID) AS RowNumber,
*
FROM Production.TransactionHistoryArchive) AS T
WHERE T.RowNumber<=@PageNumber*@Count AND T.RowNumber>(@PageNumber-1)*@Count;
SET @end=getdate();
PRINT Datediff(millisecond,@Start,@end);
GO
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
_Demo.zip (22个子文件)
Codes
Codes
01.DL
DataPager.sql 3KB
02.AL
PagerSite
App_Code
AdwWks.dbml 3KB
ProductUtil.cs 741B
AdwWks.designer.cs 16KB
AdwWks.dbml.layout 737B
UsingDataPager.aspx 4KB
UsingLINQ.aspx 2KB
UsingGridView.aspx.cs 287B
UsingGridView.aspx 2KB
web.config 8KB
App_Data
UsingLINQ.aspx.cs 1KB
UsingDataPager.aspx.cs 577B
03.CL
PagerSite
DataService.debug.js 38KB
App_Code
Northwind.edmx 6KB
Northwind.Designer.cs 13KB
NorthwindService.cs 695B
DataServices.aspx.cs 286B
AJAXPager.aspx.cs 283B
web.config 9KB
AJAXPager.aspx 2KB
App_Data
NorthwindService.svc 118B
DataServices.aspx 3KB
共 22 条
- 1
枝柳飞扬
- 粉丝: 5
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论2