多线程下查询数据库 效率问题(sqlserver2005)
应用场景:
需查询数据库(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,它是一个后台程序)