数据库之间的快速行传输

时间:2016-04-27 22:35:14

标签: c# sql-server wcf optimization sql-server-ce

我正在使用SQL CE(4.0)数据库作为主SQL Server(Express 2014)中特定视图的记录的本地缓存。我的算法的每次迭代都要验证本地缓存,并使用主服务器中的必要记录对其进行更新。

我当前的解决方案序列化包含行的DataTable(使用SyncFramework代理)并通过WCF将其带到反序列化并插入到缓存中。原因是只需要打开一个WCF端口。问题是这对我来说太慢了。

如果我放宽单端口要求,我可以从另一种方法获得更好的性能吗?

1 个答案:

答案 0 :(得分:0)

不,启用多个端口不会提高数据传输或处理的性能。 TCP端口不是可以强调的物理资源,而是标识特定进程或服务类型的逻辑结构。

您可以采取一些措施来改善客户端和服务器之间的通信性能:

  • 使用更快的绑定:像NetTcpBinding或NetNamedPipeBinding。
  • 在将数据发送到服务器之前压缩数据,以便将更少的信息从客户端传输到服务器。 (使用DataTable可能不是最好的策略。)
  • 异步进行服务调用。所以你不要等待服务器响应继续在客户端工作。
  • 微调WCF以并行接受更多连接。
  • 如果您不需要,可以使用自托管服务来避免IIS开销。