2010-11-29 46 views
2

如果我正在做的是将多行数据插入到SQL Server 2008中的单个表中,哪个更快?Table-Valued参数与插入SQL Server 2008的多个插入行性能问题

A Table-Valued Parameter or a single insert statement with multiple values

在这种简单的情况下,你会更喜欢哪一个?

+0

可能重复的[SQL Server:表值函数与存储过程](http://stackoverflow.com/questions/4254814/sql-server-table-valued-functions-vs-stored-procedures) – 2010-11-29 22:02:30

+0

http ://stackoverflow.com/search?q = [sql-server] +表+值+功能+ vs – 2010-11-29 22:02:46

回答

1

如果我理解正确的问题,我会去与表值​​参数。否则,我会认为参数列表很快就会变得难以管理。你不会想要类似这样的结果:

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

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

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

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