這是我們當前的表在Sql Server中遷移這些數據的最有效方法是什麼?
CREATE TABLE Visitor
(
VisitorID bigint,
DayPhone varchar(50),
NightPhone varchar(50)
)
我想這個數據遷移到一個單獨的表:
CREATE TABLE VisitorPhone
(
VisitorID bigint,
Label varchar(50), --Day, Night, Work, Cell, etc.
Phone varchar(50)
)
我的想法是,最有效的辦法是做這樣的:
INSERT INTO VisitorPhone(VisitorID, Label, Phone)
SELECT VisitorID, 'day', DayPhone FROM dbo.Visitor WHERE DayPhone IS NOT NULL AND DayPhone <> ''
INSERT INTO VisitorPhone(VisitorID, Label, Phone)
SELECT VisitorID, 'night', NightPhone FROM dbo.Visitor WHERE NightPhone IS NOT NULL AND NightPhone <> ''
我的其他選擇是什麼?我們已經談到了一切,從Sql CLR函數,臨時表,ADO.NET,你的名字。什麼是最有效的方法呢?請記住,DayPhone和NightPhone不是索引的一部分,並且我有16MM +的訪問者記錄,相當於約16MM到約32MM的VisitorPhone記錄。
爲什麼不用一個整數列代替varchar標籤?如果你有這麼多的記錄一個int會更小,更快......和varchar(50)的電話號碼?這難道不是一點點寬容嗎? – 2010-12-07 15:39:57