楼主: yulihua49

[讨论] 侃一下关于程序的“柔性”

[复制链接]
招聘 : 多个岗位招聘
论坛徽章:
33
2010广州亚运会纪念徽章:跆拳道
日期:2010-11-22 15:42:39灰彻蛋
日期:2012-05-16 13:17:56参与WIN7挑战赛纪念
日期:2012-05-24 10:37:35茶鸡蛋
日期:2012-05-28 17:27:32灰彻蛋
日期:2012-06-13 18:48:14双黄蛋
日期:2012-06-14 14:32:02奥运会纪念徽章:帆船
日期:2012-07-10 09:43:29奥运会纪念徽章:足球
日期:2012-08-17 09:17:32奥运会纪念徽章:帆船
日期:2012-07-26 15:46:49奥运会纪念徽章:赛艇
日期:2012-08-20 16:23:58
181#
发表于 2011-9-20 15:53 | 只看该作者
yulihua49 发表于 2011-9-20 15:43
还好,我的框架支持存储过程。甚至可以在客户端直接调存储过程,带参考游标的。这可就是有状态服务了, ...

说白了 还是你们架构设计的好

使用道具 举报

回复
论坛徽章:
14
2009新春纪念徽章
日期:2009-01-04 14:52:28沸羊羊
日期:2015-03-04 14:51:52优秀写手
日期:2014-03-14 06:00:13马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:15蜘蛛蛋
日期:2012-06-27 21:08:142012新春纪念徽章
日期:2012-01-04 11:53:29ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
182#
 楼主| 发表于 2011-9-20 16:16 | 只看该作者
本帖最后由 yulihua49 于 2011-9-20 16:27 编辑
nannan5000 发表于 2011-9-20 15:53
说白了 还是你们架构设计的好


多谢,
希望能有更多的好思路。

其实我们这个架构,N多年前就有个应用(那时还没有DAU),客户端直接调存储过程,根本不写应用服务,只写存储过程。
结果就是不断的改。

这个架构是由网络包装器和数据库包装器构成,本贴讨论的是数据库包装器。


使用道具 举报

回复
招聘 : 多个岗位招聘
论坛徽章:
33
2010广州亚运会纪念徽章:跆拳道
日期:2010-11-22 15:42:39灰彻蛋
日期:2012-05-16 13:17:56参与WIN7挑战赛纪念
日期:2012-05-24 10:37:35茶鸡蛋
日期:2012-05-28 17:27:32灰彻蛋
日期:2012-06-13 18:48:14双黄蛋
日期:2012-06-14 14:32:02奥运会纪念徽章:帆船
日期:2012-07-10 09:43:29奥运会纪念徽章:足球
日期:2012-08-17 09:17:32奥运会纪念徽章:帆船
日期:2012-07-26 15:46:49奥运会纪念徽章:赛艇
日期:2012-08-20 16:23:58
183#
发表于 2011-9-20 16:50 | 只看该作者
对于简单的crud 没什么比较性

前台 后台都一样

关键就是 批量数据和 复杂查询的 处理上

使用道具 举报

回复
论坛徽章:
14
2009新春纪念徽章
日期:2009-01-04 14:52:28沸羊羊
日期:2015-03-04 14:51:52优秀写手
日期:2014-03-14 06:00:13马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:15蜘蛛蛋
日期:2012-06-27 21:08:142012新春纪念徽章
日期:2012-01-04 11:53:29ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
184#
 楼主| 发表于 2011-9-20 17:31 | 只看该作者
本帖最后由 yulihua49 于 2011-9-20 17:34 编辑
nannan5000 发表于 2011-9-20 16:50
对于简单的crud 没什么比较性

前台 后台都一样


OLTP复杂SQL用的不多,太过复杂的SQL的确不是DAU的长项。这时,可以调用直接执行语句,或存储过程。
我常说,20/80法则,你用20%的精力解决80%的问题。
这里讨论柔性的问题。我们提供了程序的柔性,减小了程序的开发维护成本。其实性能只要不是太差,都是可接受的。hibernate就很受欢迎。
尽管如此,DAU依然高效。敢跟sqlldr叫板的框架有几个?

使用道具 举报

回复
论坛徽章:
14
2009新春纪念徽章
日期:2009-01-04 14:52:28沸羊羊
日期:2015-03-04 14:51:52优秀写手
日期:2014-03-14 06:00:13马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:15蜘蛛蛋
日期:2012-06-27 21:08:142012新春纪念徽章
日期:2012-01-04 11:53:29ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
185#
 楼主| 发表于 2011-11-2 15:42 | 只看该作者
本帖最后由 yulihua49 于 2011-11-2 16:08 编辑
yulihua49 发表于 2011-9-20 17:31
OLTP复杂SQL用的不多,太过复杂的SQL的确不是DAU的长项。这时,可以调用直接执行语句,或存储过程。
我 ...


最近抽空又做了些功课,还是前边的分页下载服务。
DAU如果每次都去查列属性,列修正,主键列,那它的性能的确比存储过程差(在那个存储过程的功能并不完备的条件下),
存储过程的交易吞吐量大约是2500TPS,而DAU是1800TPS左右。
但是我可以改进,常用的表可以保存一个模板库。这个下载服务收到表名,先在模板库查找,如果没有在从数据库生成。这样改进的结果,在保持程序的柔性的同时,性能大为改观,吞吐量一下提高到5400TPS。
虽然这样对比有失公平,但还是可以说明一些问题。1是存储过程不支持使用模板,就不能用此类招数。2是体现了中间件服务器对数据库引擎的负载分担作用。这个数据库引擎在DAU下只有20%的负载,中间件服务器几乎是100%的CPU负载(瓶颈),可以看到的潜力是,如果有5台中间件服务器,
整个系统的吞吐量有望达到27000TPS的极限,而存储过程(它的数据库引擎CPU负载大约86%)只有大约到2700TPS的潜力。在一个企业里,数据库服务通常是由
昂贵的小型机+磁盘阵列系统实现的,购置或扩充代价昂贵。而中间件服务器则是廉价的PC服务器,可容易配备成阵列。
还是这个想法,每个交易让数据库引擎尽量少干活,让他为更多的交易服务。

使用道具 举报

回复
论坛徽章:
14
2009新春纪念徽章
日期:2009-01-04 14:52:28沸羊羊
日期:2015-03-04 14:51:52优秀写手
日期:2014-03-14 06:00:13马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:15蜘蛛蛋
日期:2012-06-27 21:08:142012新春纪念徽章
日期:2012-01-04 11:53:29ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
186#
 楼主| 发表于 2011-11-2 15:58 | 只看该作者
本帖最后由 yulihua49 于 2011-11-2 15:59 编辑
yulihua49 发表于 2011-9-20 17:31
OLTP复杂SQL用的不多,太过复杂的SQL的确不是DAU的长项。这时,可以调用直接执行语句,或存储过程。
我 ...


OAD批量插入测试结果:
t_OAD 批量插入测试,15104行,执行主机与数据库不在一台机器上,G网。
10000/批:TIMEVAL= 519704     //批太大了反而不好
1000/批:TIMEVAL= 483283
100/批: TIMEVAL= 609713
10/批:  TIMEVAL=1116234   
2/批:    TIMEVAL=2915680
1/批:   TIMEVAL=4832975   (微秒)   

OLTP通常的批量是10-100/批。供参考。

使用道具 举报

回复
论坛徽章:
14
2009新春纪念徽章
日期:2009-01-04 14:52:28沸羊羊
日期:2015-03-04 14:51:52优秀写手
日期:2014-03-14 06:00:13马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:15蜘蛛蛋
日期:2012-06-27 21:08:142012新春纪念徽章
日期:2012-01-04 11:53:29ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
187#
 楼主| 发表于 2011-11-2 16:04 | 只看该作者
nannan5000 发表于 2011-9-20 16:50
对于简单的crud 没什么比较性

前台 后台都一样

楼上回答你的问题。批量是DAU的优势,即使简单语句,也尽显其价值。

使用道具 举报

回复
招聘 : 多个岗位招聘
论坛徽章:
33
2010广州亚运会纪念徽章:跆拳道
日期:2010-11-22 15:42:39灰彻蛋
日期:2012-05-16 13:17:56参与WIN7挑战赛纪念
日期:2012-05-24 10:37:35茶鸡蛋
日期:2012-05-28 17:27:32灰彻蛋
日期:2012-06-13 18:48:14双黄蛋
日期:2012-06-14 14:32:02奥运会纪念徽章:帆船
日期:2012-07-10 09:43:29奥运会纪念徽章:足球
日期:2012-08-17 09:17:32奥运会纪念徽章:帆船
日期:2012-07-26 15:46:49奥运会纪念徽章:赛艇
日期:2012-08-20 16:23:58
188#
发表于 2011-11-2 22:10 | 只看该作者
yulihua49 发表于 2011-11-2 15:42
最近抽空又做了些功课,还是前边的分页下载服务。
DAU如果每次都去查列属性,列修正,主键列,那它的性 ...

LZ的专研精神值得学习

还是那句话,好的性能是设计出来的。

通用性的东西肯定是损失一些性能,如何把这些减少到最小。就是努力的方向

支持yulihua49

使用道具 举报

回复
论坛徽章:
520
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
189#
发表于 2011-11-2 23:39 | 只看该作者
"存储过程不支持使用模板"谁说的?我事先把所有SQL生成好保存到表里怎么不行?你不也是这样做?
这个不叫“交易”,只是个简单的查询以及结果的格式化,我同意不用存储过程,甚至你要把结果缓存到数据库外面我都没意见。

使用道具 举报

回复
论坛徽章:
14
2009新春纪念徽章
日期:2009-01-04 14:52:28沸羊羊
日期:2015-03-04 14:51:52优秀写手
日期:2014-03-14 06:00:13马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:15蜘蛛蛋
日期:2012-06-27 21:08:142012新春纪念徽章
日期:2012-01-04 11:53:29ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
190#
 楼主| 发表于 2011-11-5 21:04 | 只看该作者
本帖最后由 yulihua49 于 2011-11-5 22:28 编辑
newkid 发表于 2011-11-2 23:39
"存储过程不支持使用模板"谁说的?我事先把所有SQL生成好保存到表里怎么不行?你不也是这样做?
这个不叫“ ...


办法总是人想出来的。我不反对你。
不过常用模板放在内存里还是要比放在数据库里快很多。

使用道具 举报

回复

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

本版积分规则 发表回复

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