select sum(44) from view as b where b.code=a.code and b.color=a.color把 这个也建成视图 试下。视图建立索引查起来快点。可惜用了Union好像不能建立索引。。

解决方案 »

  1.   

    可能最好的办法就是利用周末,先计算出所有的结果
    然后把这张表作为统计信息表,今后每次业务修改或者增加、删除view的数据,同时更新统计信息表,化整为零法。
    对经常需要的查询可以这么设计。
    或许你的应用做不到,但我觉得这么做是一劳永逸的事情
      

  2.   

    select a.code,a.color, 
    [44]=sum(case 数量 when 44 then 1 else 0 end),
    [55]=sum(case 数量 when 55 then 1 else 0 end),
    [66]=sum(case 数量 when 66 then 1 else 0 end),
    [77]=sum(case 数量 when 77 then 1 else 0 end),
    [88]=sum(case 数量 when 88 then 1 else 0 end)
    from [view] as a group by a.code,a.color
      

  3.   

    呵呵,做好了trigger,现在情况有所改观了.