C#连接MongoDB与连接Oracle的性能问题

孙大诚_SunRobin 2017-08-25 09:40:19
在项目中遇到这样一个问题,就是用C#写了一个服务,然后这个服务实时的会不间断的接收数据,然后写入到Oracle数据库中。
但是DBA那边不允许这样操作,说这样对Oracle的压力太大了,因为实时的总是有数据库的连接关闭。他们给出的思路是,实时的数据接收到了先写到MongoDB中,然后等攒够了一定的数据,最后一起写到Oracle中。

我的问题是,C#服务实时的接收数据连接MongoDB, 不会对MongoDB造成压力吗?
...全文
257 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 版主 2017-08-30
  • 打赏
  • 举报
回复
引用 2 楼 closurer 的回复:
当你攒够了一千万条数据,一次提交给 Oracle 的时候,DBA 又来唧唧歪歪了……
正解,就是这么干。 你也完全可以一小时提交一次,收集数据的收集数据,只要1小时触发一次提交到oracle就好啦。 这并没有什么冲突的
oktell 2017-08-30
  • 打赏
  • 举报
回复
DBA的建议是可取的,楼主可以考虑多种写入ORACLE策略,如: 1、每隔5秒一次; 2、当数据量超过10000行时; 这两个中任意一条条件满足即可定入ORACLE一次。
丰云 2017-08-30
  • 打赏
  • 举报
回复
其实mongodb自带了持久化策略,跟这个做法类似,并不是实时的读写操作,根据业务数据量有一个合理的安排。 mongodb在运行时,可以看作是一个纯内存数据库,因此可以不考虑读写压力(内存读写速度是非常快的,并且读写带宽几乎等同于处理器的带宽) dba的建议是对的,但如何设定好这个写的频率和数量,他们应该进一步给出一些建议
peng2739956 2017-08-25
  • 打赏
  • 举报
回复
我不知道楼主有没有做过压力测试,我觉得 你可以用MongoDB 做下压力测试,如果你们的实时数据在1分钟之内 需要读写DB多少次。然后根据这个还具体实行解决方案
  • 打赏
  • 举报
回复
但是我其实觉得对方的做法是可以理解的,站在对方的角度,从架构上就有一个缓冲机制,特别是考虑到许多关联子系统不可控的情况,然后随时可以打开这个“阀门”,总比直接放权要好一点。理解就好了。
by_封爱 2017-08-25
  • 打赏
  • 举报
回复
DBA会说.. 你玩你的东西.. 别给我干卡了就行了.. 至于你用什么 我不管... 你爱用什么就用什么..都跟我oracle无关....
  • 打赏
  • 举报
回复
引用 楼主 sundacheng1989 的回复:
我的问题是,C#服务实时的接收数据连接MongoDB, 不会对MongoDB造成压力吗?
人家摆明了只顾自己,不管你的 mongodb。 不过话要说回来,mongodb处理这类普通的数据库大规模频繁读写和索引查找操作,比 oracle 快几十倍。
闭包客 2017-08-25
  • 打赏
  • 举报
回复
“实时的总是有数据库的连接关闭” 这个理由是不充分的。 使用连接池,连接并不会频繁地打开和关闭。
闭包客 2017-08-25
  • 打赏
  • 举报
回复
当你攒够了一千万条数据,一次提交给 Oracle 的时候,DBA 又来唧唧歪歪了……
peng2739956 2017-08-25
  • 打赏
  • 举报
回复
MongoDB 属于NOSQL的范畴,也就是非关系型数据库,JSON格式存储的,虽然他的速度比之关系型数据库快了10倍的样子,但是如果量大的写入也会有压力。这个时候,你是否考虑用别的方法比如异步操作写入等方式来提高性能呢

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧