当前位置: 代码迷 >> Sql Server >> sql server优化有关问题
  详细解决方案

sql server优化有关问题

热度:24   发布时间:2016-04-24 10:49:22.0
sql server优化问题
语句中有一条:
convert(CHAR(15), v1.finterid) + convert(CHAR(15), u1.fentryid) 
NOT IN
 (SELECT convert(CHAR(15), fdinterid) + convert(CHAR(15), fdentryid) FROM icclientver)
做了函数计算,用不到索引,导致整个语句执行很慢
语句是应用内置的,无法修改,sql server又没有函数索引,求助要如何优化?
------解决方案--------------------
从代码来看,not in/not exists恐怕不是root cause,而是convert的拼接和转换,如果你的查询总是char(15),可以考虑用计算列预存convert之后的值,然后not exists
------解决方案--------------------
可以把语句改成 LEFT JOIN ,在where做为空的筛选。例如

select  v1.*   from table v1left join icclientver v2 on  v1.finterid =  v2.finterid  and  v1.fentryid = v2.fentryid
where v2.finterid   is null 
  相关解决方案