INSERT INTO CCP_D2
(CONT_MAS_SID,
COMP_M_SID,
ITM_M_SID)
SELECT DISTINCT CM.CONT_MAS_SID,
CMP_MAS.COMP_M_SID,
IM.ITM_M_SID
FROM CONT_MAS CM
INNER JOIN CFP_C CCT
ON CM.CONT_MAS_SID = CCT.CONT_MAS_SID
AND CM.IN_STATUS <> 'D'
AND CCT.IN_STATUS <> 'D'
INNER JOIN CFP_C_DET CCD
ON CCT.CFP_C_SID = CCD.CFP_C_SID
INNER JOIN COMP_M CMP_MAS
ON CMP_MAS.COMP_M_SID = CCD.COMP_M_SID
AND CMP_MAS.IN_STATUS <> 'D'
INNER JOIN IFP_C IFP_CONT
ON IFP_CONT.CFP_C_SID = CCT.CFP_C_SID
AND IFP_CONT.IN_STATUS <> 'D'
AND CM.CONT_MAS_SID = IFP_CONT.CONT_MAS_SID
INNER JOIN IFP_C_DET ICD
ON IFP_CONT.IFP_C_SID = ICD.IFP_C_SID
INNER JOIN ITM_M IM
ON IM.ITM_M_SID = ICD.ITM_M_SID
AND IM.IN_STATUS <> 'D'
WHERE NOT EXISTS (SELECT 1
FROM CCP_D CD
WHERE CD.CONT_MAS_SID = CM.CONT_MAS_SID
AND CD.COMP_M_SID = CMP_MAS.COMP_M_SID
AND CD.ITM_M_SID = IM.ITM_M_SID)
--number返回= 209519554插入万条记录,通过选择在SQL Server中的记录
我有一个返回值近20万元记录的SQL。我想将结果插入到表中。 它工作正常,记录数量较少,但是当记录数量达到百万时,需要大约1小时30分钟才能完成,即使我对所有连接列都有适当的索引。
我使用while循环而不是在这种情况下,工作的尝试下面的事情
- 分裂,以多发性批量插入。
- 创建所有建议的索引,但性能没有按预期提高。
注:我不喜欢分区,因为我使用的是sql server标准版。
请问您可以使用任何方式来改善此查询的性能。
http://stackoverflow.com/questions/13722014/insert-2-million-rows-into-sql-server-quickly – mohan111
@mohan:感谢分享链接,我不是在寻找bcp或批量插入,因为我必须将sql查询的结果集插入到表中。 – StackUser
你可以发布你的批量插入解决方案吗? –