先看下表中共有多少条数据:
一百二十多万条,呵呵。
sql语句:
declare
@d
datetime
set
@d
=
getdate
()
select
top
10
ID,U_Name,U_Age,U_Sex,U_Address
from
Test1
where
ID
not
in
(
select
top
9990
ID
from
Test1
order
by
ID)
order
by
ID
select
[
not in方法升序分页执行花费时间(毫秒)
]
=
datediff
(ms,
@d
,
getdate
())
declare
@s
datetime
set
@s
=
getdate
()
select
top
10
ID,U_Name,U_Age,U_Sex,U_Address
from
Test1
where
ID
>=
(
select
max
(ID)
from
(
select
top
9991
ID
from
test1
order
by
ID)
as
T)
order
by
ID
select
[
Max方法升序分页执行花费时间(毫秒)
]
=
datediff
(ms,
@s
,
getdate
())
declare
@t
datetime
set
@t
=
getdate
()
select
top
10
ID,U_Name,U_Age,U_Sex,U_Address
from
Test1
where
ID
not
in
(
select
top
9990
ID
from
Test1
order
by
ID
desc
)
order
by
ID
desc
select
[
not in方法降序分页执行花费时间(毫秒)
]
=
datediff
(ms,
@t
,
getdate
())
declare
@q
datetime
set
@q
=
getdate
()
select
top
10
ID,U_Name,U_Age,U_Sex,U_Address
from
Test1
where
ID
<=
(
select
min
(ID)
from
(
select
top
9991
ID
from
Test1
order
by
ID
desc
)
as
T)
order
by
ID
desc
select
[
Min方法降序分页执行花费时间(毫秒)
]
=
datediff
(ms,
@q
,
getdate
())
分页效率一目了然!
两种方法的不同点之一就是计算第二个top中的值
not in 中计算公式为:
pgSize
*
(pgNo
-
1
)
max\min中计算公式为:
((pgNo
-
1
)
*
pgSize
+
1
)
pgNo为当前第几页,pgSize为每页几条数据。

