仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 741|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL网页设计sql server平台用存储历程举行分页的两...

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:36:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 01:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表