通过Web服务,远程计算机将发送一组行以插入我们的中央sql服务器。
插入这些行的最佳方法(性能方面)是什么?每次都可以插入50-500行。
我知道我可以进行批量插入或将数据格式化为以这种方式插入的XML,但我之前从未在企业设置中完成此操作。
更新的 使用wcf Web服务(或者可能还不确定)和SQL Server 2008标准。
答案 0 :(得分:6)
除非你在一台已有10年历史的计算机上运行,否则50-500行并不是很多;您可以直接发送SQL语句并将它们直接传送到数据库中并获得出色的性能。假设您信任发送数据的服务,当然: - )
如果性能真的是一个问题,通过bcp文件发送绝对是在数据库中阻塞数据的最快方法。从你的问题来看,你已经知道如何做到这一点。
答案 1 :(得分:5)
仅有50-500条记录不构成“批量插入”。批量插入机制专为大量数据导入而设计,可以立即进行备份。
在Web服务中,我只是将XML传递给SQL服务器。细节将取决于版本。
答案 2 :(得分:3)
这是什么类型的网络服务?
如果是.Net,通常最好的方法是将输入加载到DataTable中,然后使用SqlBulkCopy类将其发送到SQL服务器
答案 3 :(得分:3)
50-500行应该不是问题!没有必要进行性能调整!在您的应用程序中执行正常(准备好的)SQL语句。
不要因复杂性和过度工程而杀死它。
当您应该插入超过250.000行时,您应该考虑缩放!
不要转动约束,你可能会杀死数据库。
答案 4 :(得分:2)
要回显所有其他答案,对于SQL Server,500行不是问题。如果你确实需要插入大量记录,最快的方法是使用一个名为BulkInsert的内置存储过程,
其中(我相信)是专门为此而设计的SQL Server实用程序的入口点,称为bcp.exe