衆所周知,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