我有一个正在运行的系统,其中数据被定期插入到MS SQL DB中,并且Web应用程序用于向用户显示此数据。将数据插入MS SQL数据库而不锁定它的最快方法是什么?
在插入数据的用户应该能够继续使用DB,可惜的是我不能重新设计整个系统现在。每插入2小时40k-80k记录。
眼下的过程是这样的:创建
- 临时表
- 数据使用普通的INSERT语句(参数化查询或存储proceuders应该提高速度)插入到它。
- 数据从临时表抽到使用
INSERT INTO MyTable(...) SELECT ... FROM #TempTable
我认为这样的做法是非常低效的目标表。我看到,插入阶段可以改进(批量插入?),但是如何将数据从临时表传输到目标?
看来我已经在该表中有很多数据了。似乎复制它也需要一些时间。 – artvolk 2013-05-08 08:31:15