2011-02-18 189 views
2

我需要从SQL表中选择一些100k +记录并执行一些处理,然后对另一个表执行批量插入。我正在使用SQLBulkCopy来执行快速运行的批量插入。为了获得100k +记录,我正在使用DataReader。快速选择100K +记录

问题:有时我在DataReader中发生超时错误。我把超时时间增加到了一些可管理的数字。

有没有像SQLBulkCopy选择批量记录的记录?

谢谢!
Bala

+1

为什么不在数据库中进行处理,甚至只是在块/页面中获取结果集? – 2011-02-18 10:14:28

+0

Bala你能告诉我们你在代码中使用DataReader的方式吗? – 2011-02-18 10:36:03

回答

4

它听起来像你应该做的所有你的SQL Server内处理。或者将数据分成块。

0

引自this msdn page

注意

无特殊优化技术用于批量出口业务存在。这些操作只需使用SELECT语句从源表中选择数据。

但是,在同一页上,它提到了bcp utlity可以将数据从SQL Server批量导出到文件。

我建议你尝试使用bcp查询,看看它是否显着更快。如果不是,我会放弃并尝试处理您的批处理大小,或者更难以将处理转移到SQL Server中。