Sql server 比较插入到查询中更好
下面哪一个查询的性能更好?这两个问题的优点/缺点是什么?我想讨论插入1000行和100k行的场景,谢谢 第一 第二Sql server 比较插入到查询中更好,sql-server,performance,insert,Sql Server,Performance,Insert,下面哪一个查询的性能更好?这两个问题的优点/缺点是什么?我想讨论插入1000行和100k行的场景,谢谢 第一 第二 我认为您需要使用批量插入。 下面是.net中的一个示例,第二个查询将执行得更好,因为DB引擎只需分析和执行一条语句。但是差异将是微不足道的,并且仅对大型插入(超过100条)重要,但最好的方法是 INSERT INTO table_name (col1,col2) VALUES (value1, value2),(value3, value4); 但是查询2的语法应该是 插入到表
我认为您需要使用批量插入。
下面是.net中的一个示例,第二个查询将执行得更好,因为DB引擎只需分析和执行一条语句。但是差异将是微不足道的,并且仅对大型插入(超过100条)重要,但最好的方法是
INSERT INTO table_name (col1,col2) VALUES (value1, value2),(value3, value4);
但是查询2的语法应该是
插入到表\u名称中
选择col1,col2
由(
选择value1作为col1,选择value2作为col2 UNION ALL
选择值3作为列1,选择值4作为列4
)A但当我在SQL server 2000中运行此查询时,它抱怨编译时堆栈溢出。我只尝试插入300行。josephj1989给出的语法仅在SQL Server 2008中有效。
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
INSERT INTO table_name (col1,col2) VALUES (value1, value2),(value3, value4);