1

我有一个包含 112000 多条记录和 38 列的表 (A),其中包括一个 BLOB(最大大小为 2Mb 的 PDF/PNG 文件)。该表有大约 13Gb 的数据空间和几乎 9Gb 的索引空间。出于规范化目的,我创建了另一个表 (B) 来存储这些 BLOB 数据。表 A 将具有来自表 B 的 FK。

我在将表 A 中的数据插入表 B 时遇到问题......它需要的时间太长了。我已经尝试SELECT INTO过导出向导。第一选择跑了 2 小时,我不知道需要多长时间。导出时第二个选择失败(设法插入大约 35000 条记录)。

所以,我的问题是:有没有更快的方法?有什么我可以做的,所以我可以做到这一点?我的意思是,尽管磁盘空间非常大,但 112000 条记录似乎并不算多。

4

2 回答 2

1

虽然尚不清楚加载失败的原因,但如果您尝试将数据加载到一个大型INSERT语句中,如果您将工作分成块,性能将会提高。不要一次做一排。尝试加载总计约 10M、50M、100M、250M 等的行,直到找到有效的“最佳位置”。

于 2012-10-01T22:38:09.647 回答
0

最好的方法是拆分成更小的块,然后像 Philip Kelley Said 那样使用 while 循环插入。. 删除目标表上的所有非聚集索引,插入数据后创建它们。. 如果您安装了 SQL Server BI 工具,请使用那里的导入导出向导并创建一个基本包,它会做得很好。它不取决于您的磁盘空间,取决于您与其他进程的内存共享。

于 2012-10-01T23:40:41.243 回答