我正在将数据文件加载到临时表,该临时表工作得很好,但之后我需要将最终表转换为多个数据类型,并且插入语句对于大表而言变得不可行。 这些陈述是由我的工具创建的,我想优化这部分。 插入语句看起来像这样,但有更多的列,有效性检查和一些在这些转换器内需要替换。将数据从临时表转换为最终表
INSERT INTO foo
SELECT
convert(decimal(10,2),col1),
convert(date, col2),
convert(decimal(10,2),col3),
convert(int, col4),
convert(decimal(10,2),col5)
...
from foo_staging
在小桌子上,这种方式运行得非常快,但随着桌子变得更大,表现变得非常糟糕。任何想法如何提高转换的性能?
编辑:我使用Bulkinsert进入临时表和文件真的很大。
什么是具有不同的数据类型 – TheGameiswar
两个相同的表中的数据我从源获得需要的是真的搞砸了很多方面(即在数字上有“ - ”的第一个位置或最后一个,textqualifier,需要被原始字符替换的转义字符......),所以我认为把搞砸的数据放入临时表和“清理”到最终表后将比源数据上的I/O操作更有效。 – McNade
你可以在临时表上有一个触发器,它可以像上面那样转换数据,并且每次插入记录时都可以插入到最终表中 – TheGameiswar