摘要: 在SQL中用NOT IN会影响性能,导致的主要原因就是索引无效,所以最好是将NOT IN改为其他方式实现。没修改之前的NOT IN写法:[sql]view plaincopySELECTDISTINCTt2.a_idFROMtemp_bt2WHEREt2.a_idNOTIN(SELECTDISTINCTt4.a_idFROMbASt3,temp_bASt4WHEREt4.a_id=t3.a_id)修改为LEFT JOIN写法:[sql]view plaincopySELECTDISTINCTt6.a_idFROM(SELECTt2.a_id,t5.a_idAStempIdFROMtemp_bt 阅读全文
posted @ 2012-06-07 00:30 ansionchen 阅读(411) 评论(0) 推荐(0)
摘要: 在SQL中用NOT IN会影响性能,导致的主要原因就是索引无效,所以最好是将NOT IN改为其他方式实现。没修改之前的NOT IN写法:[sql]view plaincopySELECTDISTINCTt2.a_idFROMtemp_bt2WHEREt2.a_idNOTIN(SELECTDISTINCTt4.a_idFROMbASt3,temp_bASt4WHEREt4.a_id=t3.a_id)修改为LEFT JOIN写法:[sql]view plaincopySELECTDISTINCTt6.a_idFROM(SELECTt2.a_id,t5.a_idAStempIdFROMtemp_bt 阅读全文
posted @ 2012-06-07 00:30 ansionchen 阅读(171) 评论(0) 推荐(0)
摘要: exists 和 in 的执行效率是一样的 很多资料上都显示说,exists要比in的执行效率要高,同时应尽可能的用not exists来代替not in。但事实上,我试验了一下,发现二者无论是前面带不带not,二者之间的执行效率都是一样的。因为涉及子查询,我们试验这次用SQL SERVER自带的pubs数据库。运行前我们可以把SQL SERVER的statistics I/O状态打开。 (1)select title,price from titles where title_id in (select title_id from sales where qty >30) 该句的执行结 阅读全文
posted @ 2012-06-07 00:28 ansionchen 阅读(426) 评论(0) 推荐(0)
摘要: exists 和 in 的执行效率是一样的 很多资料上都显示说,exists要比in的执行效率要高,同时应尽可能的用not exists来代替not in。但事实上,我试验了一下,发现二者无论是前面带不带not,二者之间的执行效率都是一样的。因为涉及子查询,我们试验这次用SQL SERVER自带的pubs数据库。运行前我们可以把SQL SERVER的statistics I/O状态打开。 (1)select title,price from titles where title_id in (select title_id from sales where qty >30) 该句的执行结 阅读全文
posted @ 2012-06-07 00:28 ansionchen 阅读(213) 评论(0) 推荐(0)