表值参数与多个插入行性能问题,用于插入SQL Server 2008

时间:2010-11-29 21:56:29

标签: sql sql-server tsql sql-server-2008

如果我正在做的就是在SQL Server 2008中将多行数据插入单个表中,哪个更快?

Table-Valued Parametera single insert statement with multiple values

在这个简单的场景中你更喜欢哪一个?

2 个答案:

答案 0 :(得分:1)

如果我正确理解了这个问题,我会使用表格值参数。否则我认为参数列表很快就会变得无法管理。你不希望最终得到类似的东西:

insert into YourTable
    (col1, col2, ..., colN)
    values
    (@Row1Col1, @Row1Col2, ..., @Row1ColN),
    (@Row2Col1, @Row2Col2, ..., @Row2ColN),
    ...
    (@RowMCol1, @RowMCol2, ..., @RowMColN)

答案 1 :(得分:0)

由于两个操作都会将数据插入表中,因此问题就变成了; “使用存储过程来为我的系统处理多少表插入的开销是多少?”

您的系统现在是否允许直接从应用程序插入表格?如果是,那么就直接插入。

我更喜欢使用存储过程,因为它允许我添加审计,错误逻辑等,这让我感觉比直接将数据直接转储到表中更好。