我正在將數據文件加載到臨時表,該臨時表工作得很好,但之後我需要將最終錶轉換爲多個數據類型,並且插入語句對於大表而言變得不可行。 這些陳述是由我的工具創建的,我想優化這部分。 插入語句看起來像這樣,但有更多的列,有效性檢查和一些在這些轉換器內需要替換。將數據從臨時錶轉換爲最終表
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