SQL Server 2005數(shù)據(jù)庫(kù)的2種分頁(yè)sql語(yǔ)句的比較
此文章主要向大家講述的是SQL Server 2005數(shù)據(jù)庫(kù)的2種分頁(yè)sql語(yǔ)句的比較,我們是在以下的平臺(tái)和環(huán)境中對(duì)其進(jìn)行比較的,即 CPU:Intel(R) Pentium(R) Dual T2390 1.86GHz 內(nèi)存:1G(系統(tǒng)正常啟動(dòng)后約占300M空間) 。
硬盤:SATA 160G 8M Cache
系統(tǒng):windowsxp+Sql Server 2005 sp2
測(cè)試數(shù)據(jù):共100萬條
分頁(yè)測(cè)試代碼:
1)row_number的兩種分頁(yè)方式:分別用top和between過濾
2)包含子查詢結(jié)果的三種分頁(yè)方式
共5種方式。
SQL Server 2005數(shù)據(jù)庫(kù)的幾種分頁(yè)sql語(yǔ)句的比較方式1:
每頁(yè)顯示200條
分頁(yè)至10萬條之后的第兩百條記錄
- Java代碼
- PROCEDURE [dbo].[proc_select_moauser1]
- AS
- BEGIN
- SET NOCOUNT ON;
- declare @tdiff datetime
- set @tdiff=getdate()
- select top 200 * from(select row_number() over(order by uid asc) as rownumber,* from moa_user ) as tb where rownumber>100000
- select datediff(ms,@tdiff,getdate()) as '耗時(shí)(毫秒)'
- END
- PROCEDURE [dbo].[proc_select_moauser1]
- AS
- BEGIN
- SET NOCOUNT ON;
- declare @tdiff datetime
- set @tdiff=getdate()
- select top 200 * from(select row_number() over(order by uid asc) as rownumber,* from moa_user ) as tb where rownumber>100000
- select datediff(ms,@tdiff,getdate()) as '耗時(shí)(毫秒)'
- END
- 響應(yīng)時(shí)間:156ms-210ms
SQL Server 2005數(shù)據(jù)庫(kù)的幾種分頁(yè)sql語(yǔ)句的比較方式2:
每頁(yè)顯示200條
分頁(yè)至10萬條之后的第兩百條記錄
- Java代碼
- PROCEDURE [dbo].[proc_select_moauser2]
- AS
- BEGIN
- -- SET NOCOUNT ON added to prevent extra result sets from
- -- interfering with SELECT statements.
- SET NOCOUNT ON;
- -- Insert statements for procedure here
- declare @tdiff datetime
- set @tdiff=getdate()
- select * from(select row_number() over(order by uid asc) as rownumber,* from moa_user ) as tb where rownumber between 100000 and 100200
- select datediff(ms,@tdiff,getdate()) as '耗時(shí)(毫秒)'
- END
- PROCEDURE [dbo].[proc_select_moauser2]
- AS
- BEGIN
- -- SET NOCOUNT ON added to prevent extra result sets from
- -- interfering with SELECT statements.
- SET NOCOUNT ON;
- -- Insert statements for procedure here
- declare @tdiff datetime
- set @tdiff=getdate()
- select * from(select row_number() over(order by uid asc) as rownumber,* from moa_user ) as tb where rownumber between 100000 and 100200
- select datediff(ms,@tdiff,getdate()) as '耗時(shí)(毫秒)'
- END
響應(yīng)時(shí)間:153ms-176ms,以上的相關(guān)內(nèi)容就是對(duì)SQL Server 2005數(shù)據(jù)庫(kù)的幾種分頁(yè)sql語(yǔ)句的比較的介紹,望你能有所收獲。
【編輯推薦】
- SQL Server Compact中的DLL文件與工具
- SQL Server合并復(fù)制性能的提高有哪些方案?
- SQL Serverlink Oracle的幾種不同方式
- Eclipse連接SQL Server 2000的步驟與易出現(xiàn)的問題
- 遇到SQL Server 2000Bug不可怕!