大家好,我有一个视图view,数据只有1500条,但有一百多个字段,直接在查询分析器里执行select * from view,执行很快,但是在.net代码里,用
DataSet ds = new DataSet();
OracleDataAdapter command = new OracleDataAdapter(SQLString, connection);
command.Fill(ds, "ds");
结果在command.Fill(ds, "ds");这一句执行很慢,大概用了4,5分钟,请问是什么原因呢?有没有其它方法可以提高效率的?

解决方案 »

  1.   

    先试一下用DataReader,然后再将dataReader转换成Table.
      

  2.   

    你好,我试过了OracleDataReader reader = command.ExecuteReader();
    int count = reader.FieldCount;
    string value = "";
    while (reader.Read())
    {
       for (int i = 0; i < count; i++)
       {
           value = reader.GetValue(i).ToString();
       }
    }结果还是很慢,主要是在reader.Read()这里,执行完循环,也要4分钟多钟
      

  3.   

    如果是只读的话还是用DataReader效率要高于DataAdpater的
      

  4.   

    首先考虑下你的表设计是不是很合理
    一百多个字段:估计是要拆分表结构了一百多个字段:创建table都需要点时间,当然慢了哦
      

  5.   


    同意楼上的意见,
    我们公司的数据库以前有个Table就是有好多栏位,每次转Excel出来时把那些列都排满了,效率很底,但是
    没有办法,此资料是根据客户的要求来的,要转资料给客户,后来更改结构后,效率就提高了很多.