2010-11-29 64 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

由於兩個操作都將數據插入到表中,問題就變成了; 「使用存儲過程爲我的系統處理很多表插入操作的開銷是多少?」

您的系統現在是否允許直接從應用程序插入表中?如果是,那麼就直接插入。

我更喜歡使用存儲過程,因爲它允許我添加審計,錯誤邏輯等,這使我比直接將數據轉儲到表中感覺更好。