建议7.3 - 建议7.4

来源:互联网 发布:宽带流量赚钱软件 编辑:程序博客网 时间:2024/03/29 01:19

建议7.3:谨用或尽量不要使用in/existsnot in/not exists方式,而应该使用直接连接方式替换。

--直接外连接方式写法:
select count(*)
  from t_tablename1 a, t_tablename2 b
 where a.column1 = b.column1(+)     
   and b.column1 is null;

--直接连接方式写法:
select count(*)
  from t_tablename1 a, t_tablename2 b
 where a.column1 = b.column1;

说明

使用in/exists/not in/not exists方式,要求开发人员必须正确理解其处理机制,并且需要对语句进行细致的测试和优化工作,如果不假思索的拿来使用往往会造成严重的性能问题。因此,我们通常建议使用直接连接方式进行替换。

建议7.4:嵌套循环连接中非常大的表作内表(被驱动表)时,其连接字段上需建有索引

&说明

嵌套循环连接在内表较大时,如果其连接字段无索引,那么每次循环都会对内表进行全表扫描,这样会产生大量的逻辑I/O,语句性能严重下降,在内表连接字段建立索引的目的是为了减少逻辑I/O。

0 0
原创粉丝点击