如何从脚本中删除多余的插入语句以提高性能[重复]
Posted
技术标签:
【中文标题】如何从脚本中删除多余的插入语句以提高性能[重复]【英文标题】:How to remove redundant Insert Statements from a Script to improve the performance [duplicate] 【发布时间】:2016-05-10 09:11:24 【问题描述】:我正在创建一个包含 700 多个 INSERT 语句的脚本
INSERT tableName ([A], [B], [D], [E]) VALUES (1, 1, N'a', N'p')
INSERT tableName ([A], [B], [D], [E]) VALUES (2, 1, N'x', N'o')
INSERT tableName ([A], [B], [D], [E]) VALUES (3, 1, N'y', N'u')
INSERT tableName ([A], [B], [D], [E]) VALUES (4, 1, N's', N't')
INSERT tableName ([A], [B], [D], [E]) VALUES (5, 1, N'y', N'w')
INSERT tableName ([A], [B], [D], [E]) VALUES (6, 1, N'z', N'z')
INSERT tableName ([A], [B], [D], [E]) VALUES (7, 1, N'k', N'f')
等等……
我想去掉多余的部分
插入表名([A]、[B]、[D]、[E])
有什么办法可以做到吗?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
想象力:
比如,
INSERT tableName ([A], [B], [D], [E]) MULTIPLE VALUES
(1, 1, N'a', N'p')
, (2, 1, N'x', N'o')
, (3, 1, N'y', N'u')
, (4, 1, N's', N't')
, (5, 1, N'y', N'w')
, (6, 1, N'z', N'z')
, (7, 1, N'k', N'f')
请指导...我怎样才能提高性能,正如我已经提到的,我有 700 条记录要添加...来自单个脚本..
【问题讨论】:
是的,这是可能的,只需删除multiple
:msdn.microsoft.com/en-us/library/ms174335.aspx 参见此处:sqlfiddle.com/#!6/07202/1
可以在 SQL Server 中通过删除 Multiple.不确定其他供应商。
如果您提供表中的所有列,则不需要第一部分:假设您有列 A 到 E 和 C 应该始终为空,然后执行以下操作:INSERT tableName VALUES (1, 1, null, N'a', N'p') INSERT tableName VALUES (2, 1, null, N'x', N'o') INSERT tableName VALUES (3, 1, null, N'y', N 'u') INSERT tableName VALUES (4, 1, null, N's', N't') INSERT tableName VALUES (5, 1, null, N'y', N'w') INSERT tableName VALUES (6, 1, null, N'z', N'z') INSERT tableName VALUES (7, 1, null, N'k', N'f')
【参考方案1】:
你可以这样试试:
INSERT tableName ([A], [B], [D], [E]) VALUES
(1, 1, N'a', N'p')
, (2, 1, N'x', N'o')
, (3, 1, N'y', N'u')
, (4, 1, N's', N't')
, (5, 1, N'y', N'w')
, (6, 1, N'z', N'z')
, (7, 1, N'k', N'f')
即,只需从您几乎自己得到的查询中删除MULTIPLE
。
【讨论】:
这会提高性能吗? @N.K:- 不完全是性能改进,但是是的,这是在插入多行时避免列名不明确的更好方法。 :)以上是关于如何从脚本中删除多余的插入语句以提高性能[重复]的主要内容,如果未能解决你的问题,请参考以下文章