1
我有兩個查詢。 第一個是:INSERT INTO表SELECT和SELECT INTO表之間的性能差異
SELECT
Tbl.Col.value('ID[1]','INT') AS ID,
Tbl.Col.value('SPACE_CODE[1]', 'VARCHAR(100)') AS SPACE_CODE,
Tbl.Col.value('SPACE_TYPES[1]', 'INT') AS SPACE_TYPES,
Tbl.Col.value('IS_CORPORATE[1]', 'BIT') AS IS_CORPORATE,
Tbl.Col.value('IS_HOTELLING[1]', 'BIT') AS IS_HOTELLING,
Tbl.Col.value('AREA_NAME[1]', 'VARCHAR(50)') AS AREA_NAME,
Tbl.Col.value('OPERATION[1]', 'varchar(20)') AS OPERATION,
Tbl.Col.value('REMARKS[1]', 'varchar(200)') AS REMARKS,
CAST('' AS VARCHAR(20)) AS RESULT,
CAST('' AS VARCHAR(200)) AS COMMENTS
INTO #temp_space
FROM @XML_Data.nodes('//row') Tbl(Col)
另一查詢是:
CREATE TABLE #temp_space
(
id int identity(1,1),
AREA_NAME VARCHAR(20),
IS_CORPORATE BIT,
IS_HOTELLING BIT,
OPERATION VARCHAR(20),
REMARKS VARCHAR(200),
SPACE_CODE VARCHAR(100),
SPACE_TYPES INT,
RESULT VARCHAR(20),
COMMENTS VARCHAR(100)
)
INSERT INTO #temp_space(SPACE_CODE ,SPACE_TYPES ,IS_CORPORATE ,IS_HOTELLING,AREA_NAME ,OPERATION ,REMARKS)
SELECT
Tbl.Col.value('ID[1]','INT') AS ID,
Tbl.Col.value('SPACE_CODE[1]', 'VARCHAR(100)') AS SPACE_CODE,
Tbl.Col.value('SPACE_TYPES[1]', 'INT') AS SPACE_TYPES,
Tbl.Col.value('IS_CORPORATE[1]', 'BIT') AS IS_CORPORATE,
Tbl.Col.value('IS_HOTELLING[1]', 'BIT') AS IS_HOTELLING,
Tbl.Col.value('AREA_NAME[1]', 'VARCHAR(50)') AS AREA_NAME,
Tbl.Col.value('OPERATION[1]', 'varchar(20)') AS OPERATION,
Tbl.Col.value('REMARKS[1]', 'varchar(200)') AS REMARKS,
CAST('' AS VARCHAR(20)) AS RESULT,
CAST('' AS VARCHAR(200)) AS COMMENTS
FROM @XML_Data.nodes('//row') Tbl(Col)
首先查詢花費約5分鐘,同時第二個被服用3秒鐘的相同數量的記錄(2500左右)來執行。你能告訴我爲什麼這兩個查詢有差異。
我知道在哪裏使用這兩個查詢,只是好奇爲什麼第一個需要太多的時間。
我需要驗證表格中的每個記錄。有沒有其他選擇循環和光標。
現有表上的索引? –
其實我想知道爲什麼第一個查詢需要更多time.Its不重複的問題,我已經經歷了這個問題。 – gkarya42
這兩個查詢的執行後計劃,理想情況下,select into應該花費一些時間,因爲它已經創建了所有元數據的元數據 – TheGameiswar