SQL Server 2012:快速从SELECT中插入数百万行

时间:2015-11-14 07:23:54

标签: sql-server sql-server-2012

如果我在重复性问题上激怒论坛,请道歉。无法在论坛中找到合适的解决方案,因此可以发布。

我需要快速将129991763行提取到游标或临时表或临时表中,然后将它们处理到另一个表中。而且这张目的地表也很大。

目前我正在使用INSERT使用SELECT语句(SELECT嵌套4个级别)使用选项(FAST 1000),MAXDOP 1,RECOMPILE ......等提示。

该程序耗费大量时间并且没有显示任何结果或根本没有完成。

以前我使用过相同提示的游标;但因为它也跑了22个多小时;我使用INSERT切换到SELECT

从字面上看,我需要停止上述两种方法的执行。

说实话,我是SQL Server数据库的初学者。

即使根据标准专门过滤掉SELECT中的记录;仍然需要打破4或5个块,这些块也需要超过4-5个小时才能完成。

请帮忙。

由于 Pradyumna

2 个答案:

答案 0 :(得分:0)

过去我使用BULK INSERT取得了一定的成功,但我怀疑将其分解成块并删除索引的建议仍然是明智之举。你可以在这里找到一些细节

https://msdn.microsoft.com/en-GB/library/ms188365.aspx

希望它有所帮助,祝你好运。

答案 1 :(得分:0)

道歉,您可能最好使用SSIS包将其拉过来。有了这个,您还可以根据需要转换数据。我仍然建议在可能的情况下将数据插入表中。由于使用了GUI,你需要进行一些阅读但很难在这里解释。

祝你好运

相关问题