我如何优化我的插入sql查询,包含没有唯一值的字段?



我有一个分段表,它的所有字段都是varchar,该表中没有唯一值/id。我正在转换和插入另一个表与正确的数据类型,但查询运行约6小时写1500万条记录。我如何优化我的插入sql查询,因为字段不包含唯一的值?

我的代码
INSERT INTO reportingTable
(      
[activityYear]
,[stateCode]
,[countyCode]
,[loanAmount]
,[loanToValue]      
)
SELECT 
CAST(activityYear AS INT) AS activityYear,
CAST(stateCode AS varchar(2)) AS stateCode,
CAST((CASE WHEN ISNUMERIC(countyCode) = 0 then '-99999999' else countyCode END ) AS INT) AS countyCode,
TRY_CAST(TRY_CAST(loanAmount as float) as BIGINT) AS loanAmount,
TRY_CAST((CASE WHEN loanToValueRatio='Exempt' THEN '-88888888' WHEN ISNUMERIC(loanToValue) = 0 THEN '-99999999' else TRY_CAST(loanToValue as FLOAT) END ) AS NUMERIC(14,2)) AS loanToValue,
FROM stagingTable

示例数据
tbody> <<tr>
activityYearstateCodecountryCodeloanAmountloanToValue
2018纽约NA20000NA
2018数控36047105000
2019IA4200343500010.05
2019PA3608730500074
2020CA60956500090
2020121154500080
2020纽约NA10500065.11
2021数控360476500095
2021IA420036500085
2021IA1906155000NA
2021纽约1915322500055.73
2021纽约1915330000060
2021数控3604760000080
2021数控608510000

您可以使用"SQL Server导入和导出向导";工具输出您的数据作为平面文件。然后在目标表中输入bulk insert。另一个解决方案是在SSIS中使用ETL进程工具。