使用xml或存储过程动态插入

时间:2011-01-13 04:13:34

标签: sql-server xml

我有20个记录组,我需要在一个连接中批量插入它们,因此有两个解决方案(XML或存储过程)。这个操作经常执行,所以我需要快速的性能和最少的开销

1)我认为XML执行速度较慢但我们可以通过生成相应的XML自由指定我们需要多少条记录插入,我不知道记录中每个字段的值,可能有字符我们的XML格式错误,比如使用“或在值中提交标记,那么我应该如何防止这种行为?

2)使用存储过程更快但我需要定义所有输入参数,这是无聊的任务,如果我需要增加或减少批量插入的记录数,那么我需要更改SP

因此,对于我的约束,哪种解决方案在我的环境中更好

1 个答案:

答案 0 :(得分:1)

XML可能是更好的选择,但还有其他选择

如果您使用的是SQL Server 2008,则可以改为使用Table Valued parameters

从.NET 2.0开始,您可以选择使用SQLBulkCopy

如果你正在使用oracle,你可以传递user defined type,但我不确定使用哪种版本的ODP和Oracle。

请注意,这些都是.NET示例。我不知道这对你有用。如果您包含您正在使用的数据库以及版本和客户端技术,这可能会有所帮助。