多线程怎么查数据库提高效率啊,球版主
如果利用多线程,返回SqlDataReader 对象,有用么,怎么分开一起查询呢
提高效率的办法,其他的也行,数据有几十万个
------解决方案--------------------SqlDataReader是独占连接且只读的,效率很高
你可以将要查询的数据按照规则(比如把主键分成若干区间)拆分成多个,然后用多个线程查询,不过数据库连接池的默认连接数比较有限,一般很少这么弄
尽量用缓存
------解决方案--------------------如果要提高查询性能 使用多线程查询反而效率更低 除非你为每个线程使用单独的连接池(or连接串) 就算弄好了 也要考虑数据合并问题 有没有重复数据
这些都很麻烦 建议查询那些实时性不高的数据时使用缓存(cache)
查询实时性很高的数据 尽量优化SQL查询语句 设计好表的索引等 就算超大的数据表速度也不会很慢
SQL内部的查询应该也是使用了并行化处理 充分运用CPU 它查询数据比LINQ快非常多