若相依 发表于 2015-1-16 22:36:27

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(
NOTNULL,
(50)COLLATEChinese_PRC_CI_ASNOTNULL,
(50)COLLATEChinese_PRC_CI_ASNULL,
NULL,
(50)COLLATEChinese_PRC_CI_ASNULL,
(2)COLLATEChinese_PRC_CI_ASNULL,
(50)COLLATEChinese_PRC_CI_ASNULL,
NULL,
NULL,
NULL,
(50)COLLATEChinese_PRC_CI_ASNULL,
NULL,
(64)NULL,
(50)COLLATEChinese_PRC_CI_ASNULL,
(150)COLLATEChinese_PRC_CI_ASNULL,
(50)COLLATEChinese_PRC_CI_ASNULL,
NULL,
(50)COLLATEChinese_PRC_CI_ASNULL,
(50)COLLATEChinese_PRC_CI_ASNULL,
NULL
)ON
declare@tempPosint
declare@absPosint
declare@nowIDint
set@tempPos=1
set@absPos=1
if@destpage>1
set@absPos=(@pagesize*(@destpage-1)+1)
declaremyCursorscrollcursorfor
selectfromt_memberorderbyid
openmyCursor
fetchabsolute@absPosfrommyCursorinto@nowID
while(@@fetch_status=0)and(@tempPos<=@pagesize)
begin
set@tempPos=@tempPos+1
insertinto#myTableselect*fromt_memberwhere=@nowID
fetchnextfrommyCursorinto@nowID
end
closemyCursor
deallocatemyCursor
setnocountoff

select*from#myTable
droptable#myTable
GO
有的时候,一些缺失的功能可以通过别的办法来实现,例如,在MySQL4.1以前,你可以通过使用join方法来替代子查询的功能。在MySQL5.0中,大多数关系型数据库所要求的功能已经都具备。

再见西城 发表于 2015-1-19 18:16:29

现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层.

深爱那片海 发表于 2015-1-26 16:05:46

记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。

仓酷云 发表于 2015-2-4 17:05:42

这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?

蒙在股里 发表于 2015-2-10 04:56:46

个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。

分手快乐 发表于 2015-2-28 20:49:35

备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。

冷月葬花魂 发表于 2015-3-10 07:58:21

现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层.

只想知道 发表于 2015-3-17 05:20:28

一个是把SQL语句写到客户端,可以使用DataSet进行加工;

若相依 发表于 2015-3-23 21:58:58

SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。
页: [1]
查看完整版本: MYSQL网页设计sql server平台用存储历程举行分页的两...