none
查询问题--烦请大家分析一下 RRS feed

  • 问题

  • TABLE_A 数据4356 条,TABLE_B 数据2035条,有个业务需要两张表关联取出数据,SELECT COUNT(1) FROM TABLE_A LEFT JOIN TABLE_B ON TABLE_A.ID=TABLE_B.ID WHERE TABLE_A.DTE='2011-08-09 00:00:00.000' 但是问题很奇怪,在SSMS里面 持续连接到30多分钟,一直没有返回任何信息.table_a 上DTE 有非聚集索引,IX_DTE_Index 如果 SELECT COUNT(1) FROM TABLE_A LEFT JOIN TABLE_B ON TABLE_A.ID=TABLE_B.ID  这样很快能读出结果,我现在有个疑问就是SELECT COUNT(1) FROM TABLE_A LEFT JOIN TABLE_B ON TABLE_A.ID=TABLE_B.ID WHERE TABLE_A.DTE='2011-08-09 00:00:00.000'  这个应该持续连接25分钟也应该有结果集,然而却持续连接不返回任何结果,大家看看问题出在哪里?


    星光总能为我指引方向
    2011年9月2日 11:58

全部回复

  •  SELECT COUNT(1) FROM TABLE_A LEFT JOIN TABLE_B ON TABLE_A.ID=TABLE_B.ID  这样很快能读出结果 大约1分钟 ,如果加上WHERE TABLE_A.DTE='2011-08-09 00:00:00.000'  就要持续30分钟也不返回任何信息,大家看看为什么加上这个字段却有这么大的影响呢?
    星光总能为我指引方向
    2011年9月2日 13:07
  • Did you see blocking? Checked execution plan?
    2011年9月2日 14:37
  • 检查时没有阻塞信息的,所以我也很奇怪,从来没有遇到这么蹊跷的问题?


    星光总能为我指引方向
    2011年9月5日 1:31
  • Did you compare execution plans and i/o stats?
    2011年9月5日 1:38
  • 跟新统计信息 试试;

    看执行计划 哪个环节 消耗资源大 ? 联接类型 是什么?

    2011年9月5日 3:06