我有這樣的要求:過濾和獲取數據或過濾器然後獲取數據更快嗎?
SELECT myTable.ID,
myTable.Adress,
-- 20 more columns of all kind of type
FROM myTable
WHERE EXISTS(SELECT * FROM myLink
WHERE myLink.FID = myTable.ID
and myLink.FID2 = 666)
myLink的有很多行。
你認爲這是更快地這樣做:
INSERT INTO @result(ID) SELECT myLink.FID
FROM myLink
WHERE myLink.FID2 = 666
UPDATE @result SET Adress = myTable.Adress,
-- 20 more columns of all kind of type
FROM myTable
WHERE myTable.ID = @result.ID
你的兩個查詢是非常不同的 - 第一個只是選擇,第二個是更新。你是在問不同的方式來選擇或不同的方式來更新? – Oded 2010-03-16 13:38:18
你只是試圖強制從一個表到另一個表中的所有「匹配的ID」的鏈接?即:您的myLink是您的主表,myTable是其他工作表,並且您希望將所有記錄更新爲另一個(或者表格反之亦然)?或者...是否有其他進程針對@result提取進行。 – DRapp 2010-03-16 13:48:45
2個查詢的結果是相同的:我有一張表,其中包含ID和來自myTable的數據,而且我只有鏈接到ID2 666的記錄。 不同之處在於,第一次獲取數據和I在同一時間選擇記錄。在第二個請求中,我選擇了記錄,一旦我有了我的記錄ID,我就可以得到這些數據。 – 2010-03-16 14:00:44