sql分頁方式及效率比較

2022-03-02 14:12:05 字數 1653 閱讀 6961

好久沒有運算元據庫分頁了,在看了這篇文章(後,感觸很深,萬丈高樓平地起基礎的東東還是時刻準備著。

--

------------先插入100w條資料用時4'50'』

declare

@iint

set@i=0

while

@i<

1000000

begin

insert

into pagetest select

cast(floor (rand()*

1000000 )as

int ), left( newid() ,10),getdate()

set@i=@i

+1end--

-----------單機完全查詢總耗時16500毫秒-17500毫秒左右

select

*from dbo.pagetest

重點對row_number()分頁方法單機測試(取99000-100000之間的1001條資料)

---------------分頁方案1

select

*from(select row_number() over (order

by id) rownumber,*

from pagetest )a

where rownumber between

99000

and100000

--------------分頁方案2

select

*from (select row_number() over (order

by id))rownumber,*

from pagetest)a

where rownumber>

99000

and rownumber<=

100000

-------------分頁方案3

select

top1001

from (select row_number()over (order

by id ) rownumber,*

from pagetest)a

where rownumber>=

99000

declare

@begintime

datetime

declare

@endtime

datetime

select

@begintime

=getdate()

---sql

select

*from(select row_number() over (order

by id) rownumber,*

from

select

@endtime

=getdate()

select

datediff(ms,@begintime,@endtime)as'毫秒

'5次方案

方案1 五次分別耗時

--436 436 440 420 423

方案2五次分別耗時

--453 436 436 436 436

方案3五次分別耗時

--483 436 470 466 483

幾種常見SQL分頁方式效率比較

1.建立測試環境,插入100萬條資料大概耗時5分鐘 create database dbtest use dbtest 建立測試表 create table pagetest id int identity 1,1 not null,col01 int null,col02 nvarchar 50 ...

幾種常見SQL分頁方式效率比較

1.建立測試環境,插入100萬條資料大概耗時5分鐘 create database dbtest use dbtest 建立測試表 create table pagetest id int identity 1,1 not null,col01 int null,col02 nvarchar 50 ...

幾種常見SQL分頁方式效率比較

1.建立測試環境,插入100萬條資料大概耗時5分鐘 create database dbtest use dbtest 建立測試表 create table pagetest id int identity 1,1 not null,col01 int null,col02 nvarchar 50 ...