兰色精灵 发表于 2015-1-16 22:51:43

MYSQL网页编程之静态分组查询

人力成本上的节省,MySQL的用户Spacemonkey实验室的首席执行官MitchPirtle如此表示:“维护MySQL使得你不需要一个年薪15万美元的DBA。静态|分组
原帖地点:
http://community.csdn.net/Expert/topic/3428/3428792.xml?temp=.6476251

--示例数据
createtable表(IDint,NUMint)
insert表select1,2
unionallselect2,3
unionallselect3,2
unionallselect4,2
unionallselect5,12
unionallselect6,2
unionallselect7,1
unionallselect8,5
unionallselect9,1
go

/*--成绩申明:

输出分组参数,好比输出"3,6",完成按ID<=3,3<ID<=6,ID>6分组查询
输出分组参数,好比输出"2,5,8",完成按ID<=2,2<ID<=5,5<ID<=8,ID>8分组查询
--*/

--查询的存储历程
createprocp_qry
@numlistvarchar(1000)
as
setnocounton
declare@ttable(idintidentity,组varchar(10),aint,bint)
declare@iint,@pnumvarchar(10)
select@i=charindex(,,@numlist+,)
,@pnum=left(@numlist,@i-1)
,@numlist=stuff(@numlist,1,@i,)
,@i=charindex(,,@numlist)
insert@tselectid<=+@pnum,null,@pnum
while@i>0
begin
insert@tselect@pnum+<id<=+left(@numlist,@i-1),@pnum,left(@numlist,@i-1)
select@pnum=left(@numlist,@i-1)
,@numlist=stuff(@numlist,1,@i,)
,@i=charindex(,,@numlist)
end
insert@tselectid>+@numlist,@numlist,null

selectb.组,num=sum(a.num)
from表a,@tb
wherecase
whenb.aisnullthencasewhena.id<=b.bthen1else0end
whenb.bisnullthencasewhena.id>b.athen1else0end
elsecasewhena.id>b.aanda.id<=b.bthen1else0end
end=1
groupbyb.组
orderbymin(b.id)
go

--挪用存储历程举行查询
execp_qry2,5,8
go

--删除测试
droptable表
dropprocp_qry

/*--测试了局

组num
---------------------
id<=25
2<id<=516
id>81
--*/
DBaaS系统本身并不提供面对面访问或个人客户关系或持续不断的支持MySQL学习教程。这些就是需要解决方案提供商的原因。他们帮助客户选择正确的解决方案、规划集成和迁移战略,然后协助实施。

灵魂腐蚀 发表于 2015-1-20 05:11:42

一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)

活着的死人 发表于 2015-1-25 10:57:42

SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。

第二个灵魂 发表于 2015-2-8 07:31:30

作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!

再见西城 发表于 2015-2-24 23:46:10

习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。

变相怪杰 发表于 2015-3-7 14:21:32

如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。

小女巫 发表于 2015-3-15 07:36:07

呵呵,这就是偶想说的

乐观 发表于 2015-3-21 20:48:39

一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
页: [1]
查看完整版本: MYSQL网页编程之静态分组查询