仓酷云

标题: MYSQL网页设计sql server平台用存储历程举行分页的两... [打印本页]

作者: 若相依    时间: 2015-1-16 22:36
标题: MYSQL网页设计sql server平台用存储历程举行分页的两...
”由于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中,大多数关系型数据库所要求的功能已经都具备。
作者: 再见西城    时间: 2015-1-19 18:16
现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层.
作者: 深爱那片海    时间: 2015-1-26 16:05
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
作者: 仓酷云    时间: 2015-2-4 17:05
这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?
作者: 蒙在股里    时间: 2015-2-10 04:56
个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
作者: 分手快乐    时间: 2015-2-28 20:49
备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。
作者: 冷月葬花魂    时间: 2015-3-10 07:58
现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层.
作者: 只想知道    时间: 2015-3-17 05:20
一个是把SQL语句写到客户端,可以使用DataSet进行加工;
作者: 若相依    时间: 2015-3-23 21:58
SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2