【发布时间】:2011-01-12 23:34:36
【问题描述】:
我目前正在开发一个将旧数据库转换为新样式的程序,我被分配的任务之一是删除一些旧的二进制列并将它们转换为我们存储库中的文档。
我们的表中有大约 110 万行,我的过程大约需要 12 小时才能完成。
我正在寻找使这一切变得更快的方法,而我正在研究的一件事是更快地获取数据。如果有办法在查询完成之前获得查询结果?我注意到,当我在查询分析器中对该表运行“select *”语句时,我会立即开始返回结果,但是当我在 .NET 中使用 ExecuteReader 时,该查询似乎需要大约 30 分钟才能开始读取行.
【问题讨论】:
-
您的实际代码是什么样的?听起来您在非索引列上有一些繁重的 where 查询。在不过滤数百万列的情况下执行普通 SELECT 应该很快,ExecuteReader 也是如此。
-
也许您可以尝试将您的查询分解成较少的行数并运行几个线程来处理它们?
-
@Pauli - 问题不在于索引,而在于数据量。我正在处理几个 BLOB 列。 :(
标签: .net datareader