如何将重复的大时间序列发送+更新到 SQL 服务器

Roc*_*nce 4 sql-server bulk

我使用 SQL Server 2008 我想发送(并更新重复的日期时间索引)一个大的时间序列(超过 1000 个数据点,最终远不止这些)。这样做的最佳方法是什么?我被建议使用

合并

批量插入

但,

  1. 我们可以同时使用 2 吗?
  2. 我不想先将数据保存到文件中。它已经在内存中,为什么我必须先将它保存到文件中?另外,我可以让多个线程同时调用此方法,这会有点混乱。

欢迎任何建议

gbn*_*gbn 7

如果数据在内存中,您可以使用 .net 或类似文件中的 SQLBulkCOpy 将数据发送到 SQL Server。无需实例化文件。

并首先在 SQL Server 中加载一个临时表。然后使用 MERGE 从这个临时表到实际表

如果您不想要持久的临时表,请创建一个 #temp 表并在随后的 MERGE 中使用它。我不确定此处表值参数的用处

如果要直接加载最终表,则可以使用OPENROWSET(BULK...)直接从文件中 MERGE 。但是您不想实例化文件。

总而言之:最终表解决方案没有直接“在客户端内存中”:您需要一个中间表或文件