众所周知,CTE是在SQL Server 2005中引入的,人群疯狂。CTE vs多插入
我有一个情况,我插入一大堆的静态数据到表中。我想知道的是以下哪一项更快,以及我应该注意哪些其他因素。
INSERT INTO MyTable (MyField) VALUES ('Hello')
INSERT INTO MyTable (MyField) VALUES ('World')
或
WITH MyCTE(Field1) AS (SELECT 'Hello' UNION SELECT 'World')
INSERT INTO MyTable (MyField) SELECT Field1 FROM MyCTE
我有一种不舒服的感觉,答案将取决于之类的东西是什么原因引发的MyTable
存在...
(另外,我知道并不在意即CSV和任何数量的其他方法客观上都是更快和更好的插入静态数据的方式,我特别想知道我应该知道的关于CTE与多个插入的关注点。)
简单的解决方案:测试测试测试和测量!在远离你的系统,磁盘布局,桌面布局等情况下,你真的很难说。版本,触发器等等都会发挥作用。所以真的:只有**你**可以通过测试和测量这两种方法来判断..... – 2009-11-30 05:54:12
marc_s,yes测试和分析总是最好的方式来得到你的确切情况的答案,但我是寻找一些更一般的趋势和考虑因素,以便记住。 – Matthew 2009-12-01 04:51:13