服务端放在广域网上,供成百上千个客户端下载数据,数据库是SQLserVer2000。我目前是的服务端是用.net的webservice服务,客户端用delphi,调用webservice,可是感觉比较慢。如果服务端换成delphi提供的远程数据模块,与客户端组建3层数据交换模式,你们说速度上会不会比Webservice更加快一些呢?请大家给点意见啊,

解决方案 »

  1.   

    都一样,首先要提的是从数据库中读取数据的速度,TT+oracal还不错,将查询结果以流的形式返回给客户端
      

  2.   

    webservice如果用soap xml来传数据,速度是会慢一点,优点是通用,跨语言,容错容易。如果能用二进制的方法来传的话,速度会快些,因为二进制序列化之后通常比XML小(无用字符太多),缺点是不跨语言,容错难处理。象你这种DELPHI+.NET的就不行了。不过.NET也有REMOBJECTS,假如两边都用REMOBJECTS,并用二进制传送数据,不知道是否能成功,没试过。是否使用web service应从日后扩展、系统集成等方面来考虑。
      

  3.   

    .net的remoting个人感觉效率不高,其实耽误时间的地方就是查询数据库,特别是大容量数据库的查询,目前我们采用的也就是TT+orcale,速度很快,对于SqlServer还没有太好的办法
      

  4.   

    webservice传的数据要大,效率会低一点,另外是不是查数据库的效率也低?一般网络传输都受限于网速的限制,如果是100M的局域网,那么你传输数据的效率应该是在8-12M/S,否则就要优化你的程序了。
      

  5.   

    广域网如果是2M的宽带,要达到200kbps才算可以,否则就优化代码。
      

  6.   

    有时候硬是取不下数据,也不知道是WEBSERVICE超时了还是停止服务了咋地
      

  7.   

    XML总体上浪费网络带宽。在某些情况下,如楼上说的,XML大量的内容用于格式。在小表上更明显。
      

  8.   

    最好在传输数据前压缩压缩一下数据。如果你朋友在下载东西 占用了大部分带宽,如果你在调用WebService 数据量大,而你没有压缩,就会超时。如果你设置让无线等待,那那那那。。