sql 2008
1.每个表中一个经常用到的字段,为 时间、是否有效,时间维度为月,但是字段类型为时间类型,我们都是用'201401' 来进行匹配,(利用到数据库的自动转型),是否这样会存在效率上面的问题?
2.在做数据查询、修改、时都会用到,我现在的索引有 一个为id的聚集索引,和根据时间、是否有效的复合索引,感觉有些时候还是比较慢,在表查询的时候where后面有时候还会跟随一些筛选条件,是否这些也要添加到索引中去呢?
3.如这条语句,差不多执行了2个小时,不筛选是200多w,筛选后为40多w,临时表中有60多w,belong = '20140101' and p.isavailable = 1
为索引标识,如何优化。
update x_src_bendijiazhangduanxinxiang_mx
set isdudect = '是'
from x_src_bendijiazhangduanxinxiang_mx p
where p.belong = '20140101' and p.isavailable = 1
and p.kt_time_bak is not null
and p.number in(
select parent_number from #ywdm
where convert(varchar(7),DATEADD(mm, DATEDIFF(mm,0,td_time), 0),120 ) > convert(varchar(7),DATEADD(mm, DATEDIFF(mm,0,dateadd(month,-6,p.kt_time_bak)), 0),120)
and convert(datetime,td_time,120 ) < convert(datetime,p.kt_time_bak ,120))
请高手指定。