当前位置:编程学习 > C#/ASP.NET >>

使用Remoting访问远端数据库方案好吗??

系统是这样:
中心一个集中数据库(Oracle),在远端。
有N个本地客户端,需要访问这个集中数据库,因此考虑使用Remoting技术。
做了一个实验,通过dataset返回数据集,好像速度确实不敢恭维!

试问:除了Remoting在.net中还有更好的方案吗?web service?一般人认为速度更慢!
有什么好的方案,望有经验的同志给点建议!! --------------------编程问答-------------------- 你需要把数据压缩一下,DAtaSet有很大的压缩空间,我做过一个案例,就是用的它
另外,服务器端的程序,需要加一个定时器,定时的做一下GC.Collect()来清理过期的东西,自动回收比较慢.
当然如果数据量实在是太大,就要考虑这种方式是否合适了.
DataSet的内部结构比较大,比原始数据会大不少,如果你有能力,可以把数据库的内容自己组织出一个结构,然后以字符串的形式进行压缩,客户端再反向解开,这样传输量会小,但是灵活性会差很多.
--------------------编程问答-------------------- 学习。。。我也有这种需求,

顶起 --------------------编程问答-------------------- 没办法啊,用Remoting远程访问就是存在速度的问题。这是网络带宽的限制。
当然如果用专线相连,速度上应该会快些。否则我觉得也没啥好办法。
以前我做过类似的,用专线相连,速度可以得到保证。
如果不用专线,做数据压缩包传送的话也会有速度上的问题。
呵呵,没啥太好的方法。
--------------------编程问答-------------------- 谢谢各位的支持,听说可以不用dataset,而采用对象实体来传送,这样可以避免将sql语句传递给服务端。
这样可行吗??这样如何实现那?? --------------------编程问答-------------------- 不管怎么传送,网络带宽就是个问题,呵呵。如果解决带宽,用什么方法都不是问题。 --------------------编程问答-------------------- 顶,继续关注! --------------------编程问答-------------------- 嘿嘿,我们公司的一套系统最初也是打算用远程访问数据库的方法。不过后来一些关键的(访问量比较大)的进程都没办法达到设计效率,只好另外做了一个Remoting的组件用于实时返回Connection String。
--------------------编程问答-------------------- 关注中,我们现在也是用remoting --------------------编程问答-------------------- “另外做了一个Remoting的组件用于实时返回Connection   String”
不是太明白你的意思,ado.net本身有连接池的功能,你不用关心连接对象的。
只要你的最大并发数<=max pool就不会柱塞。 --------------------编程问答-------------------- 我的意思是说,通过中间件只是获得了connection string,然后利用本地的ado Connection对像连接数据库。这样子才解决效率的问题。 --------------------编程问答-------------------- 楼主这样的做法是错误的,速度很慢,我以前就这么做过,这与压缩不压缩没有关系,是与Remoting的序列化有关系,你试试返回一个2000行的数据,慢的要死,就算你用Tcp模式也没有用,还是放弃吧
建议还是直接返回DataTable --------------------编程问答-------------------- 我也正用到Remoting 不我打算在局域网内使用,外网的使用Socket来实现
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,