Ich habe zwei Abfragen. erste ist:Leistungsunterschied zwischen INSERT INTO-Tabelle SELECT und SELECT INTO-Tabelle
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)
weitere Abfrage ist:
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)
erste Abfrage nimmt etwa 5 Minuten auszuführen, während zweite wird 3 Sekunden für die gleiche Anzahl von Datensätzen unter (etwa 2500). Können Sie mir bitte sagen, warum es in beiden Fragen einen Unterschied gibt?
Ich weiß, wo Sie beide Abfragen verwenden, nur neugierig, warum der erste zu viel Zeit braucht.
Ich muss jeden Datensatz aus der Tabelle Tabelle validieren. Gibt es eine Alternative zu Schleifen und Cursorn?
Indizes auf vorhandene Tabelle? –
Eigentlich möchte ich wissen, warum die erste Abfrage dauert mehr Zeit.Ist nicht doppelte Frage, ich habe bereits durch diese Frage gegangen. – gkarya42
Post Execution Plan für beide Abfragen, idealerweise in auswählen sollte etwas länger dauern, da es Metadaten alle Sachen – TheGameiswar