免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2667 | 回复: 8
打印 上一主题 下一主题

求助数据库重复打开关闭的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-31 10:03 |只看该作者 |倒序浏览
现在小弟碰到这样的情况:
A程序——B子程序
A程序里面有500个循环重复调用B子程序,而B子程序每次都有对数据库操作,这样的话就导致在500次A程序掉B程序的过程中,间接的导致500次打开关闭数据库(如果对数据库有更新、插入等操作的话数据库打开关闭就很慢),所以想问一下各位,400中有没有好的方法能加快数据库打开关闭时的速度。谢谢大家。

论坛徽章:
0
2 [报告]
发表于 2006-03-31 10:16 |只看该作者
up
打开会很慢吗?把B子程作为subroutine放到A里不行吗

论坛徽章:
0
3 [报告]
发表于 2006-03-31 10:21 |只看该作者

回复 2楼 fxf_china 的帖子

是的,如果是以只读方式打开,那是比较快的,如果是以UA方式的打开话就比较慢了,关闭的时候比打开更慢,差不多有0.55秒的样子,我也想过防在程序A里做,但是我们这里对队列的数据做处理,有不同的情况需调不同的子程序。所以说还是得一条一条处理,这样就难免重复打开关闭数据库了。

论坛徽章:
0
4 [报告]
发表于 2006-03-31 10:47 |只看该作者
感觉设计上似乎有点问题,你可以做一个代理程序c,负责打开数据库,关闭数据库,管理数据库资源等,
修改b子程序,让b只负责业务逻辑,而不要在这里做打开数据库连接等无关逻辑。
A->C->B 最后用C关闭连接好了。

论坛徽章:
0
5 [报告]
发表于 2006-03-31 11:01 |只看该作者
那这样是不是A程序也要重复调用C,那C里面的操作是不是也要被重复操作500次,这样我就不知道是不是也会很慢的?

论坛徽章:
0
6 [报告]
发表于 2006-03-31 12:36 |只看该作者

论坛徽章:
0
7 [报告]
发表于 2006-03-31 13:02 |只看该作者
好的,我去看看。

论坛徽章:
0
8 [报告]
发表于 2006-03-31 13:41 |只看该作者
rpg的话,应该不用考虑什么

c/s b/s程序的话,是你程序使用框架的问题。
可以参考DAO模式,用于处理SOA之类的,目前我们使用这种。

论坛徽章:
0
9 [报告]
发表于 2006-03-31 17:46 |只看该作者
RPG 或者COBOL就不说了。
如果是CS或者BS架构的,如果你用DAO模式,还是需要做这样的代理程序或者类,在这里面负责
和数据库连接等操作,这样一旦建立连接,就可以直接使用,业务逻辑处理完毕,然后代理负责释放
数据库资源,这样业务逻辑就不用关心数据库这些无关逻辑了。
你可以看看DAO模式的说明和例子。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP