我有一个正在运行的系统,其中数据会定期插入 MS SQL DB,并且 Web 应用程序用于向用户显示这些数据。
在数据插入期间,用户应该可以继续使用 DB,可惜我现在不能重新设计整个系统。每 2 小时插入 40k-80k 条记录。
现在这个过程看起来像这样:
- 临时表已创建
- 使用普通的 INSERT 语句将数据插入其中(参数化查询或存储的处理程序应该会提高速度)。
- 使用以下命令将数据从临时表泵送到目标表
INSERT INTO MyTable(...) SELECT ... FROM #TempTable
我认为这种方法效率很低。我明白了,可以改进插入阶段(批量插入?),但是将数据从临时表传输到目标呢?