|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
”由于MySQL已经是一个运行了众多知名Web2.0网站的数据,包括Craigslist、Digg、Wikipedia和Google等,或许我们可以说每一个Web2.0公司实质上是一个使用MySQL数据库的公司。server|存储历程|分页killergo的专栏
比来由于略微有点余暇工夫,以是想了下在sqlserver平台用存储历程的分页体例,如今列示鄙人面。
实践测试时,在15000条数据情形下二者功能大致相称,在20000-30000条数据的情形下前者分明比后者功能更佳。更年夜数据量没有举行测试了。
注重,数据内外面是不是有键和索引对功能的影响相称年夜
-----------------------------------------------------
第一种:
/*第一个参数是每页条数,第二个参数是方针页码*/
CREATEprocsp_fixpage@pagesizeint,@destpageintas
setnocounton
declare@idint
declare@startidint
select@startid=(@destpage-1)*@pagesize
setrowcount@startid
select@id=idfromt_member
setrowcount@pagesize
setnocountoff
select*fromt_memberwhereid>@idorderbyid
GO
第二种:
CREATEPROCEDUREsp_fixpage1@pagesizeint,@destpageint
as
setnocounton
CREATETABLE#myTable(
[ID][int]NOTNULL,
[UserName][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,
[Name][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[Origin][int]NULL,
[LatencyBuyDegree][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[UserType][varchar](2)COLLATEChinese_PRC_CI_ASNULL,
[Email][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[UserLev][int]NULL,
[RegTime][datetime]NULL,
[RegMode][bit]NULL,
[PaperNum][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[UserClass][bit]NULL,
[password][binary](64)NULL,
[Tel][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[drass][varchar](150)COLLATEChinese_PRC_CI_ASNULL,
[Zip][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[PaperNumlb][int]NULL,
[OpUser][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[Province][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[BirthDate][datetime]NULL
)ON[PRIMARY]
declare@tempPosint
declare@absPosint
declare@nowIDint
set@tempPos=1
set@absPos=1
if@destpage>1
set@absPos=(@pagesize*(@destpage-1)+1)
declaremyCursorscrollcursorfor
select[ID]fromt_memberorderbyid
openmyCursor
fetchabsolute@absPosfrommyCursorinto@nowID
while(@@fetch_status=0)and(@tempPos<=@pagesize)
begin
set@tempPos=@tempPos+1
insertinto#myTableselect*fromt_memberwhere[ID]=@nowID
fetchnextfrommyCursorinto@nowID
end
closemyCursor
deallocatemyCursor
setnocountoff
select*from#myTable
droptable#myTable
GO
有的时候,一些缺失的功能可以通过别的办法来实现,例如,在MySQL4.1以前,你可以通过使用join方法来替代子查询的功能。在MySQL5.0中,大多数关系型数据库所要求的功能已经都具备。 |
|