楼主: wisdomone1

[精华] 在web网站中大量采用存储过程性能讨论

[复制链接]
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
21#
发表于 2010-6-29 15:03 | 只看该作者
nice idea

使用道具 举报

回复
论坛徽章:
1088
金色在线徽章
日期:2007-04-25 04:02:08金色在线徽章
日期:2007-06-29 04:02:43金色在线徽章
日期:2007-03-11 04:02:02在线时间
日期:2007-04-11 04:01:02在线时间
日期:2007-04-12 04:01:02在线时间
日期:2007-03-07 04:01:022008版在线时间
日期:2010-05-01 00:01:152008版在线时间
日期:2011-05-01 00:01:342008版在线时间
日期:2008-06-03 11:59:43ITPUB年度最佳技术原创精华奖
日期:2013-03-22 13:18:30
22#
发表于 2010-6-29 15:09 | 只看该作者
还是淘宝的几位大师出来澄清下吧,难道后台分析什么的一点存储过程都没有用?

使用道具 举报

回复
论坛徽章:
56
马上加薪
日期:2014-12-22 13:11:12复活蛋
日期:2011-08-31 14:55:20ITPUB9周年纪念徽章
日期:2010-10-08 09:32:252010世博会纪念徽章
日期:2010-09-07 08:52:012010年世界杯参赛球队:瑞士
日期:2010-06-24 09:16:222010年世界杯参赛球队:德国
日期:2010-04-27 09:40:272010年世界杯参赛球队:韩国
日期:2010-04-23 23:34:412010新春纪念徽章
日期:2010-03-01 11:06:222010新春纪念徽章
日期:2010-01-04 08:33:08参与WIN7挑战赛纪念
日期:2009-11-06 10:44:24
23#
发表于 2010-6-29 15:11 | 只看该作者
这个主要看你的应用。对于计算密集型的,可以用PL/SQL,对于操作密集型的(比如淘宝)能用SQL的就不要用PL/SQL。我想你的web网站也是操作密集型把,最好能用SQL的就不要用PL/SQL,把逻辑都写在应用中。

使用道具 举报

回复
论坛徽章:
11
2010新春纪念徽章
日期:2010-03-01 11:19:072014年新春福章
日期:2014-02-18 16:42:02优秀写手
日期:2014-02-09 06:00:122011新春纪念徽章
日期:2011-02-18 11:43:34数据库板块每日发贴之星
日期:2010-12-22 01:01:01数据库板块每日发贴之星
日期:2010-11-26 01:01:012010广州亚运会纪念徽章:拳击
日期:2010-11-22 15:26:49ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51数据库板块每日发贴之星
日期:2010-07-10 01:01:04数据库板块每日发贴之星
日期:2010-07-07 01:01:01
24#
发表于 2010-6-29 15:11 | 只看该作者
不相信我说的算了

淘宝中包括复杂的order by , sum这样的计算都是应用通过算法处理的,而不是数据库处理的

数据库只做合适的事情

使用道具 举报

回复
论坛徽章:
11
2010新春纪念徽章
日期:2010-03-01 11:19:072014年新春福章
日期:2014-02-18 16:42:02优秀写手
日期:2014-02-09 06:00:122011新春纪念徽章
日期:2011-02-18 11:43:34数据库板块每日发贴之星
日期:2010-12-22 01:01:01数据库板块每日发贴之星
日期:2010-11-26 01:01:012010广州亚运会纪念徽章:拳击
日期:2010-11-22 15:26:49ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51数据库板块每日发贴之星
日期:2010-07-10 01:01:04数据库板块每日发贴之星
日期:2010-07-07 01:01:01
25#
发表于 2010-6-29 15:19 | 只看该作者
关于存储过程,首先带来的问题就是业务变动,然后数据库扩展,业务扩展

你怎么弄,扩展十几个数据库时,你去把存储过程迁移十几次去?那不把你搞死

如果业务逻辑变化的时候,怎么弄,改存储过程只有

然后就是在并发比较高的OLTP,性能是很差的

还有对测试人员来说,调试时,你还要他专门跑到数据库里去调试存储过程?如果是SQL,他直接跟踪调试就可以了

使用道具 举报

回复
论坛徽章:
11
2010新春纪念徽章
日期:2010-03-01 11:19:072014年新春福章
日期:2014-02-18 16:42:02优秀写手
日期:2014-02-09 06:00:122011新春纪念徽章
日期:2011-02-18 11:43:34数据库板块每日发贴之星
日期:2010-12-22 01:01:01数据库板块每日发贴之星
日期:2010-11-26 01:01:012010广州亚运会纪念徽章:拳击
日期:2010-11-22 15:26:49ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51数据库板块每日发贴之星
日期:2010-07-10 01:01:04数据库板块每日发贴之星
日期:2010-07-07 01:01:01
26#
发表于 2010-6-29 15:20 | 只看该作者
数据库合适的事情:

1、存数据

2、单条查询

3、多维度查询(多表查询)

4、业务逻辑处理,比如存储过程,函数等

5、复杂的在线分析(比如Order by , sum, group by, distinct等等)

像淘宝目前数据库就只做前3条,其中以前两条为主要

使用道具 举报

回复
招聘 : Java研发
论坛徽章:
71
马上加薪
日期:2014-02-19 11:55:14蜘蛛蛋
日期:2012-12-26 18:16:01茶鸡蛋
日期:2012-11-16 08:12:48ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07奥运会纪念徽章:网球
日期:2012-08-23 14:58:08奥运会纪念徽章:沙滩排球
日期:2012-07-19 17:28:14版主2段
日期:2012-07-07 02:21:02咸鸭蛋
日期:2012-03-23 18:17:482012新春纪念徽章
日期:2012-02-13 15:13:512012新春纪念徽章
日期:2012-02-13 15:13:51
27#
发表于 2010-6-29 15:22 | 只看该作者
原帖由 fan0124 于 2010-6-29 15:11 发表
不相信我说的算了

淘宝中包括复杂的order by , sum这样的计算都是应用通过算法处理的,而不是数据库处理的

数据库只做合适的事情

这么说的话,你一定理解错了
如果order by 、sum 都是到应用层来做的话,估计会很糟糕

比如要汇总一下你本月交易的金额,会去这么做:
把你的明细查出来,拿到应用层,应用层再做sum
my god!!!

使用道具 举报

回复
论坛徽章:
56
马上加薪
日期:2014-12-22 13:11:12复活蛋
日期:2011-08-31 14:55:20ITPUB9周年纪念徽章
日期:2010-10-08 09:32:252010世博会纪念徽章
日期:2010-09-07 08:52:012010年世界杯参赛球队:瑞士
日期:2010-06-24 09:16:222010年世界杯参赛球队:德国
日期:2010-04-27 09:40:272010年世界杯参赛球队:韩国
日期:2010-04-23 23:34:412010新春纪念徽章
日期:2010-03-01 11:06:222010新春纪念徽章
日期:2010-01-04 08:33:08参与WIN7挑战赛纪念
日期:2009-11-06 10:44:24
28#
发表于 2010-6-29 15:23 | 只看该作者
原帖由 dingjun123 于 2010-6-29 15:09 发表
还是淘宝的几位大师出来澄清下吧,难道后台分析什么的一点存储过程都没有用?


我不是淘宝的,但是fan0124说的没错   

使用道具 举报

回复
论坛徽章:
1088
金色在线徽章
日期:2007-04-25 04:02:08金色在线徽章
日期:2007-06-29 04:02:43金色在线徽章
日期:2007-03-11 04:02:02在线时间
日期:2007-04-11 04:01:02在线时间
日期:2007-04-12 04:01:02在线时间
日期:2007-03-07 04:01:022008版在线时间
日期:2010-05-01 00:01:152008版在线时间
日期:2011-05-01 00:01:342008版在线时间
日期:2008-06-03 11:59:43ITPUB年度最佳技术原创精华奖
日期:2013-03-22 13:18:30
29#
发表于 2010-6-29 15:29 | 只看该作者
开发和测试分开的啊,测试干测试的事情,程序中也可以测试存储过程的啊
数据库肯定不止干那几个事情了,不然ORACLE还搞一堆东西干嘛?什么form之类的,还有html db
存储过程对业务变动改起来比程序简单,而且很多就算表结构变了,存储过程也不用动,但是用程序实现,可能就要动表结构了。
总之,各有优点啊我觉得。
如果说并发性什么的,可以找青云探讨下,他一直用存储过程作并发的东西!~

使用道具 举报

回复
论坛徽章:
1088
金色在线徽章
日期:2007-04-25 04:02:08金色在线徽章
日期:2007-06-29 04:02:43金色在线徽章
日期:2007-03-11 04:02:02在线时间
日期:2007-04-11 04:01:02在线时间
日期:2007-04-12 04:01:02在线时间
日期:2007-03-07 04:01:022008版在线时间
日期:2010-05-01 00:01:152008版在线时间
日期:2011-05-01 00:01:342008版在线时间
日期:2008-06-03 11:59:43ITPUB年度最佳技术原创精华奖
日期:2013-03-22 13:18:30
30#
发表于 2010-6-29 15:30 | 只看该作者
原帖由 waityou81 于 2010-6-29 15:23 发表


我不是淘宝的,但是fan0124说的没错   

这个可能啊,因为他们不需要存储过程就能实现啊,而且他们发现了更好的方法。
并不是说存储过程就是最好的,没有什么东西是最好的,有的人就喜欢用c,c++来代替存储过程,很正常吗!~

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表