C# 如何通过internet加速将数据保存到数据库?
我正在使用C#、实体框架和SQL Server 2008 Express。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
我通过internet连接到数据库。
加快将数据保存/更新到数据库的最佳方法是什么?
将180条记录保存到数据库需要87秒。
将相同数量的记录保存到本地(在同一台计算机上)SQL Server只需3.5秒。
对于保存/更新的每个记录,我检查数据库中是否存在具有此主键的记录,
如果它不存在,我只需保存它,
如果它存在,我使用ObjtCurrase.Apple yCurralValues(EntyTestNeNT,CurrnEngultIt实体)方法来更新它。 < P>我会考虑将一个类似于CSV的字符串发送给存储过程,然后在服务器上,存储过程将使用SQL函数来分割数据并创建一个带有它的临时表,然后,存储过程将继续执行检查并在必要时插入 有几个不在internet上使用SQL的原因
- 第一,对我来说,这会造成太多的麻烦 暴露sql的风险 internet上的服务器。我不希望SQL攻击:)。如果你把 交通,那就不同了 因为中间人的攻击是 那就难多了
- 第二,SQL 协议是一个“聊天”协议,所以 高性能服务器之间的链接 延迟将对您的查询产生一定的影响 很多
当然,在传输数据时对数据进行批处理将有助于减少提交记录所需的通信量。由于延迟,您需要尽可能少的有线呼叫。除了Mikael Svenson写的内容之外 您可以通过“蛮力”克服延迟,并在多个db连接上运行。但总的来说,我真的推荐米克尔的建议