我在程序里建了一个组件类。在里面把所有的表都写进DATASET里了。但现在数据多了,发现变的很慢,每次调用这个类都大约要读6、7秒,请问要怎样才能更快一些。

解决方案 »

  1.   

    能否说的再明白一些,是指每次调用那些表里数据时再FILL(dataset)一次吗?
      

  2.   

    回复人: ningbao(ningbao) ( ) 信誉:95  2005-03-14 14:31:00  得分: 0  
     
     
       能否说的再明白一些,是指每次调用那些表里数据时再FILL(dataset)一次吗?
      
     
    ----------------------------------------------------------------------------------
    难道你是每次都把整个库都fill了???是的话,就分开,或是,程序开始时fill,以后直接传过来dt就行了,如果单个表数据量很大,可以分批读入
      

  3.   

    到也不是每次都FILL,是开始时FILL了所有的表,之后写到DATAVIEW里调用的。但这样也很慢啊。
      

  4.   

    我试了,,好像真的每次都要FILL一下。。靖问我要在类的什么位置写FILL时,才会在初始时FILL一次啊。谢谢天外来客提醒。
      

  5.   

    我也在等待回答呢。我的问题是DATASET变的好慢。是不是因为DATASET里的表太多了呢?
      

  6.   

    是的!!记录多了,DataSet Fill要整表,所以慢!!
    改进SQL语句,少用DataSet ,
      

  7.   

    程序做到这步田地,要全改成SQL的也不太现实啊。
      

  8.   

    web还是winform??
    web的话可以fill之后放到cache中,当然数据量不要太大才好,否则浪费资源,如果是不常修改的数据放到cache中最好,否则还是不要,每次使用时用Fill就好了
    winform的话程序起动最初把所有数据Fill一下就好,当然是单用户情况,如果是多用户,需要刷新的时候要是很多就没必要,只好每次使用时用一下Fill,如果你用不到修改操作那么用到只进的SqlDataReader/OleDbDataReader/...就可以了,根据情况选用适当的工具是最好的选择