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

请问下面这种语句怎么改能提高效率?
select * from t_sys_res tsr where tsr.zybh in (
       select tsrr.zyid from t_sys_res_role tsrr where tsrr.jsid in (
               select tsru.jsbh from t_sys_role_user tsru where tsru.yhbh='1'
       )
);

oralce工具看了下,都是查全表的……
sql效率

------解决方案--------------------

select tsr.*
from t_sys_res tsr 
left join t_sys_res_role tsrr on tsr.zybh = tsrr.zyid
left join t_sys_role_user tsru on tsrr.jsid = tsru.jsbh and tsru.yhbh='1' 
where tsrr.zyid is not null and tsru.jsbh is not null
;

试试看,还慢的话,就分开步骤做。
------解决方案--------------------


1、建立索引 2、保证索引有效
------解决方案--------------------
引用:
引用:
1、建立索引 2、保证索引有效接受建议哈,主要现在数据还不多,所以没搞索引……


数据不多没索引 影响不大, 数据多了 影响就很明显了