多线程下查询数据库 效率问题(sqlserver2005)

sanxiong 2012-08-27 11:13:10
应用场景:
需查询数据库(1000W条数据的表),然后将查询出来的数据放入lucene索引文件中.

我的方案:
采用多线程去查询数据库,每个线程负责查询一个区间的数据(如:1W条),每个线程查询完之后创建一个索引文件,最后把这些小的索引文件
合并.

实施步骤:
创建了一个线程池,初始化500个线程,每个线程分配的任务是到数据库查询1W条记录(单线程环境下查询1W条数据花费5分钟)
直到1000W条数据全部查完.数据库连接池设了150个

测试结果:
记录数量 花费时间 线程数量 单个线程查询的记录数
1W 75S 50 200
10W 11分钟 100 1000
10W 11分钟 200 500
100W 114分钟 1000 1000

经测试,效率瓶颈应该在多线程查询数据库上面,如何提高多线程查询数据库的效率了.

请问大家有没有更好的方案提高 来完成这个需求(只要考虑效率高就OK,它是一个后台程序)
...全文
246 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
筱筱澄 2012-08-27
  • 打赏
  • 举报
回复
单线程环境下查询1W条数据花费5分钟

你这个语句怎么写的?

表结构以及索引分布情况呢?

快溜 2012-08-27
  • 打赏
  • 举报
回复
把表分区再开多线程查询。
KevinLiu 2012-08-27
  • 打赏
  • 举报
回复
将数据分区然后放到不同的磁盘再看看效率。
sanxiong 2012-08-27
  • 打赏
  • 举报
回复
单线程环境下查询1W条数据花费5分钟
--这个是需要查询全部字段,没有过滤条件,所以是全表扫描.

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧