解决方案 »

  1.   

    这个BussinessID 字段是什么类型的,一般看ID都是int类型的把。你改成这样试试,能不能快点:B.BussinessID= 132
      

  2.   

    你好,阳泉酒家小当家 ,B.BussinessID= 132 速度也很慢,如果改成B.BussinessID= 31,或者去掉这个查询条件,速度比较快。
      

  3.   


    你试试运行这个,是更新统计信息的:update statistics Cost_HoursProduction
      

  4.   

    1、统计信息不够新,update statistics '用到的表'
    2、数据分布不均匀,查询过程中应该用了并行执行(可以看执行计划),查查sselect top 5 * from sys.dm_os_wait_stats order by wait_time_ms DESC 
    应该会有CXPACKET这些等待状态
    3、贴出执行计划
      

  5.   

    群主你好,1.所有表已经执行update statistics  
            2.select top 5 * from sys.dm_os_wait_stats 有CXPACKET这些状态,见附件。
             3.执行计划很长,不知道怎么发上来,截图又不好截,还请详细指点一下,谢谢!
      

  6.   


    群主你好,确实有CXPACKET这些等待状态,另外执行计划如何贴出来,计划很长,图又截不全?不好意思。。
      

  7.   

    这个表HoursProductionID、ProcessFixDataID、ProcessID上有索引吗?你的查询竟然没有where条件用到这个表?还有返回的数据量有多少啊?
      

  8.   

    已经建立索引,如上图。where条件是查询的主表,主要是根据时间作为条件。Cost_HoursProductionDetail 没有在查询条件内。查询是按分页来取的,就15条。如果不分页,数据量可能也就100,200条,因为是按月份取的值。
      

  9.   

    但是开销就在那个表上面,你还是先用DTA检查一下
      

  10.   


    嗯,是个报表,所有关联的表与点多。但因为对sql优化不熟悉,刚开始没什么数据的时候,报表数据比较快,现在越来越慢了。有什么建议没!
      

  11.   

    from Cost_HoursProductionDetail a 
     left join Cost_HoursProduction b on a.HoursProductionID=b.HoursProductionID left join 改成left hash join,速度立马变快了,感谢yupeigu阳泉酒家小当家的热情帮助。还特意加我qq,远程帮我调试。真的非常感谢!