在C#中采用IDataReader读取数据,
表中有几万条数据,每次从中读取300条,
然后使用IDataReader.read()逐行读取,
采用stopwatch计时,仅IDataReader.read()实现300条数据的滚动就需要3秒左右.
其中,读取数据的每一行只有十二列,且均为简单类型
请问一下,我应该从哪个角度着手来解决这个问题,
谢谢大家

解决方案 »

  1.   

    赫赫,建议你只是取得你想要的300条,而不是数据库的全部。假如你只是取了300条,都需要3秒的话,我觉得是不是你本身的IIS服务器的负担也比较重呢?还有数据滚动的时候,是不是还有其他的处理呢?都去掉,只是滚动,用了多久呢?
      

  2.   

    假如你做的是应用程序的话,是不是自己的机器本身负担也比较重呢?内存消耗等等。CPU利用等等。
      

  3.   

    这个问题我后来解决了,主要是由于这个表需要经常的删除数据,导致数据的分布碎片化。使用truncate table XXX drop storage,回收表空间的碎片就可以解决该问题,