.Net技术研究  
Castle框架

1.用exists,not exists 代替in,not in

2.where后面的表是从右到左, 如表a 10条记录,表b 100条记录,那么b就是基础表 语句是where b,a 

3.三个以上的表连接查询,那就需要使用交叉表为基础表 

3.where 子句是自下而上的过滤,那么过滤量最大的数据应该写在最后面

 例如:  
   (低效,执行时间156.3秒)  
   SELECT *  
   FROM EMP E  
   WHERE SAL > 50000  
   AND JOB = ’MANAGER’  
   AND 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO);     
   (高效,执行时间10.6秒)  
   SELECT *  
   FROM EMP E  
   WHERE 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO)  
   AND SAL > 50000  
   AND JOB = ’MANAGER’;  

4.尽量避免使用*,如select *,

5.减少数据库访问次数

6.适当使用索性

7.where子句代替having,having先检索所有所有然后过滤

8.减少对表的查询
     

 

posted on 2016-04-02 19:49  潭水清纯  阅读(144)  评论(0)    收藏  举报