C# 如何通过internet加速将数据保存到数据库?

C# 如何通过internet加速将数据保存到数据库?,c#,entity-framework,sql-server-2008,C#,Entity Framework,Sql Server 2008,我正在使用C#、实体框架和SQL Server 2008 Express。 我通过internet连接到数据库。 加快将数据保存/更新到数据库的最佳方法是什么? 将180条记录保存到数据库需要87秒。 将相同数量的记录保存到本地(在同一台计算机上)SQL Server只需3.5秒。 对于保存/更新的每个记录,我检查数据库中是否存在具有此主键的记录, 如果它不存在,我只需保存它, 如果它存在,我使用ObjtCurrase.Apple yCurralValues(EntyTestNeNT,Currn

我正在使用C#、实体框架和SQL Server 2008 Express。
我通过internet连接到数据库。
加快将数据保存/更新到数据库的最佳方法是什么?
将180条记录保存到数据库需要87秒。
将相同数量的记录保存到本地(在同一台计算机上)SQL Server只需3.5秒。

对于保存/更新的每个记录,我检查数据库中是否存在具有此主键的记录,
如果它不存在,我只需保存它,

如果它存在,我使用ObjtCurrase.Apple yCurralValues(EntyTestNeNT,CurrnEngultIt实体)方法来更新它。

< P>我会考虑将一个类似于CSV的字符串发送给存储过程,然后在服务器上,存储过程将使用SQL函数来分割数据并创建一个带有它的临时表,然后,存储过程将继续执行检查并在必要时插入

有几个不在internet上使用SQL的原因

  • 第一,对我来说,这会造成太多的麻烦 暴露sql的风险 internet上的服务器。我不希望SQL攻击:)。如果你把 交通,那就不同了 因为中间人的攻击是 那就难多了
  • 第二,SQL 协议是一个“聊天”协议,所以 高性能服务器之间的链接 延迟将对您的查询产生一定的影响 很多
如果可能的话,我会在SQL端设置一个WCF服务,让我的客户机将数据发送到该服务,该服务将执行对数据库的查询。与SQL相比,任何WCF协议都不会那么健谈,与您现在看到的相比,您很可能会获得速度提升


当然,在传输数据时对数据进行批处理将有助于减少提交记录所需的通信量。由于延迟,您需要尽可能少的有线呼叫。

除了Mikael Svenson写的内容之外

您可以通过“蛮力”克服延迟,并在多个db连接上运行。但总的来说,我真的推荐米克尔的建议