使用索引的基本事项+选择索引列的原则+索引失效
    
                
摘要:使用索引的基本事项 选择索引列的原则 1经常在where字句使用的列 2经常在表连接查询中用于表之间连接的列 3不宜将经常修改的列作为索引列 4不宜将经常在where字句使用,但与函数或者操作符相结合的列作为索引列 5对取值较小的列(2%),要考虑建立位图索引。索引失...
        
阅读全文
                    posted @ 
2017-06-04 14:59 
2637282556
        
阅读(216) 
         
        推荐(0)     
                 
                
                
    commit语句
    
                
摘要:在确保完整性的情况下多用commit语句 1用户DML操作完后,如果不使用commit命令进行提交,oracle会在回滚段中记录DML操作,好处是以便用户使用rollback对数据进行回滚。坏处记录DML会消耗时间和空间。所以在确保数据完整性的情况下,尽量及时使用co...
        
阅读全文
                    posted @ 
2017-06-04 14:16 
2637282556
        
阅读(286) 
         
        推荐(0)     
                 
                
                
    有效使用索引+索引列上所使用的操作符+避免对唯一索引列使用null+选择复合索引主列
    
                
摘要:有效使用索引 1.一般使用索引查询数据比全表扫描效率要高 2.oracle查找执行查询和update语句的最佳路径时,oracle优化器将使用索引 3.使用索引需要消耗额外的存储空间 4.索引需要定期维护,因为当记录增加或者索引列被修改的时候,索引本身也会被修改,这意...
        
阅读全文
                    posted @ 
2017-06-04 14:02 
2637282556
        
阅读(171) 
         
        推荐(0)     
                 
                
                
    表连接的方法+使用表连接而不是多个表查询+from字句表的顺序
    
                
摘要:表连接的方法 使用表连接而不是多个表查询 1执行表连接比多个表查询效率更高,因为执行每条sql语句,oracle内部会执行很多工作。比如解析SQL语句,估算索引的利用率,绑定变量,读取数据块等,所以检索访问SQL语句的执行次数 2尽量减少表的查询次数:可以使用一次查询...
        
阅读全文
                    posted @ 
2017-06-04 10:54 
2637282556
        
阅读(180) 
         
        推荐(0)     
                 
                
                
    使用exists+使用exists代替in+使用exists代替distinct
    
                
摘要:使用exists 使用exists代替in 1exists只检查行的存在性,in 检查实际的值,所以existsd的性能比in好 验证select * from emp where deptno in(select deptno from dept where ...
        
阅读全文
                    posted @ 
2017-06-04 10:20 
2637282556
        
阅读(245) 
         
        推荐(0)     
                 
                
                
    where字句有关的优化+使用where字句代替having字句
    
                
摘要:where字句有关的优化 注意:时间差不明显是因为数据比较少,数据多的话更好验证 使用where字句代替having字句 1select语句汇总,where字句过滤行 2having字句是分组后才过滤 3行被分组需要时间,降低分组的行数可以提高效率,所以使用where...
        
阅读全文
                    posted @ 
2017-06-04 10:01 
2637282556
        
阅读(248) 
         
        推荐(0)     
                 
                
                
    使用具体的列代替*
    
                
摘要:使用具体的列代替* 1*:用来表示所有列 2使用具体列代替*,可以提高查询效率 3效率高的原因是在SQL语句执行过程的第三步,oracle需要把*转换为具体列。而使用具体列就不需要这个步骤。sql语句的执行过程 1在共享池中搜索SQL语句是否存在 2验证SQL语...
        
阅读全文
                    posted @ 
2017-06-04 08:51 
2637282556
        
阅读(138) 
         
        推荐(0)