插入查询的比较更好

时间:2010-06-08 20:41:18

标签: sql-server performance insert

以下哪个查询具有更好的性能?这两个查询的优点是什么?我想讨论插入1000行和100k行的场景谢谢。

第一

INSERT INTO table_name (col1,col2) VALUES (value1, value2);
INSERT INTO table_name (col1,col2) VALUES (value3, value4);

第二

INSERT INTO table_name
SELECT (col1,col2) 
FROM (
    SELECT value1 as col1, value2 as col2 UNION ALL
    SELECT value3 as col1, value4 as col2
) A

2 个答案:

答案 0 :(得分:2)

我认为您需要使用批量插入。 以下是.net http://www.dotnetcurry.com/ShowArticle.aspx?ID=323&AspxAutoDetectCookieSupport=1

中的示例

答案 1 :(得分:2)

第二个查询将更好地执行,因为数据库引擎必须只分析并执行一个语句。但差异将是微不足道的,仅对大插入(大于100)有用但最好的方法是

INSERT INTO table_name (col1,col2) VALUES (value1, value2),(value3, value4); 

但是你的查询2的语法应该是 INSERT INTO table_name SELECT col1,col2 FROM(     将value1选为col1,将value2选为col2 UNION ALL     SELECT3作为col1,value4作为col4 )A