这里2个语句,只有一个条件不同. 查询分析器速度很快.但是神奇的是, 调试发现da.Fill(ds, "ds"); ------ 这句
=R很快. =P很慢.更神奇的是. 有时候项目重新生成下
=R很慢 =P又很快

解决方案 »

  1.   

    这个锅甩给SqlDataAdapter感觉它很冤啊
    要排查这个问题,建议监控执行计划,查看慢的执行计划,再去做具体的分析与解决。
      

  2.   

    你先查一下条件P与条件R通过Microsoft SQL Server Management Studio 查询,看看耗时是多少,这个与SqlDataAdaper没关系
      

  3.   

    查询分析器本身就很快,它会使用最优的方式执行语句,目测这种查询方法会进行二次表扫描吧,具体sql的执行计划。 另外程序的处理速度,数据库的打开也是一个原因的。最好贴出“忽快忽慢”的测试依据。
      

  4.   

    这类问题别人没有你的代码和开发环境,除非也碰到过,否则很难解答。
    这个还是自己好好排查一下,先从sql在数据库执行情况排查起,再看和数据库通信,再看编译有什么问题(需要重点看下,设置写个简单的新程序比较)。
      

  5.   

    Sql Server是有自有缓存的,如果你两次查询一致并且落在缓存上那么就会不到1秒输出结果…………
      

  6.   

    这与“SqlDataAdapter”之间没有什么关联。它有几类方式影响这种情况
    同类型SQL查询第一次时会比较缓慢,第二次由于存在临时的高速缓存所以它基本瞬间就可以查询出来
    但是SQL客户端与SQL服务器之间传输这些数据,是采用TCP协议传递的 这个东西本身就存在波动性 
    主要受限于网路的当前的状况 可能一会很快一会又很慢,当然这也需要考虑SQL服务器、SQL客户端
    当前的系统状况、CPU占用率等等。但是“忽快忽慢”与“SqlDataAdapter”本身没有什么直接联系。