我正在使用简单的选择插入方法在SQL Query中执行数据迁移
我没有得到下面提到的2个查询在同一数据集上执行相同任务的性能差异的原因。
我正在使用下面的查询,这是无限的(72小时后工作被杀)持续时间完成,SELECT表上没有索引
INSERT INTO X (A,B,C,D,E,F,G)
SELECT 'ORSTX',
'ORGX_LVL_1',
CONCAT ('NC_CAT_GL_COM_VAL_', MAP.AUTO_ID),
CONCAT ('CAT_GL_SCOPE_', MAP.AUTO_ID),
MAP.SYSTEM,
REF.COMPANY_CODE,
1
FROM TEMP_CAT_GL_BU MAP
JOIN TEMP_CAT_GL REF ON MAP.CODE = REF.CODE
WHERE MAP.SYSTEM = 'ABCD'
AND REF.SYSTEM = 'ABCD';
而下面的查询是在有限(可接受)时间内完成的
INSERT INTO X (A,B,C,D,E,F,G)
SELECT A,B,C,D,E,F,G FROM (SELECT 'ORSTX',
'ORGX_LVL_1' AS A,
CONCAT ('NC_CAT_GL_COM_VAL_', MAP.AUTO_ID) AS B,
CONCAT ('CAT_GL_SCOPE_', MAP.AUTO_ID)AS C,
MAP.SYSTEM AS D,
REF.COMPANY_CODE AS E,
1 AS F,
MAP.AUTO_ID AS G
FROM TEMP_CAT_GL_BU MAP
JOIN TEMP_CAT_GL REF ON MAP.CODE = REF.CODE
WHERE MAP.SYSTEM = 'ABCD'
AND REF.SYSTEM = 'ABCD'
ORDER BY MAP.AUTO_ID);