日期:2014-05-17  浏览次数:20558 次

查询中引用外库会影响效率吗
查询中引用外库会影响效率吗

比如
 
 SELECT MENUCODE, MENUNAME, FATHERMENU, ISMENU, WINDOWNAME
 FROM SystemInfo..Info_MenuInfo WHERE VESTSYSTEM = 'LOANWEB' and ISVISIBLE = 1 
 AND ISMENU = 1 and MENUCODE IN (SELECT MENUCODE FROM SystemInfo..Info_MenuStaff 
 WHERE VESTSYSTEM = 'LOANWEB' and HR_NO = @HR_No) 

------解决方案--------------------
肯定会啊
------解决方案--------------------
 --会影响的,建议楼主语句改为exists
 SELECT MENUCODE, MENUNAME, FATHERMENU, ISMENU, WINDOWNAME
 FROM SystemInfo..Info_MenuInfo t1
 WHERE VESTSYSTEM = 'LOANWEB' and ISVISIBLE = 1 
 AND ISMENU = 1 and exists(SELECT top 1 FROM SystemInfo..Info_MenuStaff 
 WHERE MENUCODE=t1.MENUCODE and VESTSYSTEM = 'LOANWEB' and HR_NO = @HR_No)
------解决方案--------------------
引用外库需要做更多的权限检查,并且由于本库没有外库数据的统计信息,所以生成的执行计划往往都不够本库内查询的好。
------解决方案--------------------
项目大了 总不能还是一个库吧
------解决方案--------------------
in 可以用关联代替