描述:
表A有20多万条记录,30多个字段,表B有8万多条记录20多个字段.
通过关连条件得到新表C.
大概是这样,下面是我的SQL的语句,
declare @value int
select @value = select aa from table1 where xyc = 'abc'
SELECT a.*,b.h1+b.h2 as h,b.xyc,b.ccz,b.xdd,b.yyc
INTO fees3
FROM fees a,fees2 b
where a.xx = b.xx and a.yy = b.yy and a.zz = b.zz
and (b.h1+b.h2) >= datediff(s,-@value,a.hh) and (b.h1+b.h2) < datediff(s,@value,a.hh)
执行起来,性能非常的慢,我分别在两张表上建聚集索引(xx,yy,cc字段),都很慢在30分钟以上.我也试过先不用最后的大于和小于条件直接插入表,然后再到表中进行比较筛选更慢.
请问有没有好的优化的方法.先谢谢了.
------解决方案--------------------
不知道你的表怎么设计的,感觉有点太慢了!
如果可以的话,在B表上建个h1+h2的计算列,然后给这个列加索引,试试。
------解决方案--------------------
视图你知道吧,视图只是即时的通过sql去查询一个结果
索引视图就是把这个查询结果固化起来,类似于专门用一个表,存储你组织后的数据