int k = 0;
        myConnection.Open(); 
        while(sql[k]!=null)//此处循环1000次
        {
            SqlCommand myCommand = new SqlCommand(sql[k], myConnection);
            
             SqlDataReader dr = myCommand.ExecuteReader();//CommandBehavior.CloseConnection);//经测试就是 一千次打开关闭数据库慢,数据库表做了索引应该速度可以
              
             
            dr.Close();//以上这两句执行1000次需要3分钟。
            k++;
            
        }
        myConnection.Close();
        datareader.Close();求助 有什麽好方法?能够提高效率那?数据库是已有的 不能修改数据库的设计。

解决方案 »

  1.   

    执行一次sql查询160ms不算很慢了,关键是你的程序结构能否做优化,比如缓存数据之类的。
      

  2.   

    上面的程序主要耗时是耗费在了数据库连接的建立、数据查询上面了,跟索引没有太大关系。
    这没有什么办法优化,我能想到的唯一可以优化的方法就是用 Cache,这样如果查询的数据没有发生变化,程序就会直接从Cache读取数据
    而不必要反复读取数据库了。具体Cache怎么用,你还要结合你程序及数据库的实际情况。