2011-05-27 76 views
0

我有一些导出的行要导入到当前正在运行的数据库中。在进行批量插入之前,我是否应该禁用与数据库交互的应用程序,以便BI是唯一正在执行的操作?SQL Server批量插入 - 在操作期间是否应允许其他插入?

我认为这将是最佳做法,但只是想与社区进行核对。

非常感谢!

+0

取决于您试图实现的目标。 – 2011-05-27 10:58:23

回答

1

我通常不会禁用任何其他使用数据库的应用程序。对我来说,批量加载只是数据库的另一个客户端,并且受到通常的并发/隔离机制的约束。

但也有例外,其中的大部分负载需要长时间运行的释放过程或maintanance日常工作的一部分,在这种情况下,它会出来几个小时反正

我总是用一个临时表来虽然加载数据。经过处理,清理,清理和密钥查找等后,我会通过一次原子操作将数据刷新到实时表。换句话说,我不会将批量加载与其他表访问混合在一起:我会通过临时表缓存批量加载

+0

谢谢你。只是一个简短的问题,你将使用什么技术将数据从临时表中移出?你会用select语句的insert语句将数据从一个表移动到另一个表吗? – Paul 2011-05-27 12:08:59

+0

@paul:是的。但它将是一个单独的INSERT:所有其他工作将在临时表上完成(例如,查找键) – gbn 2011-05-27 12:15:03