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