我有一个临时表,其所有字段都是 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
示例数据
非常感谢您的帮助,谢谢
最佳答案
您可以使用“SQL Server 导入和导出向导”工具将数据输出为平面文件。然后在目标表中输入批量插入。 另一种解决方案是使用SSIS中的ETL处理工具。
关于sql - 如何优化包含没有唯一值的字段的插入 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72803241/