当前位置:首页 > 开发 > 数据库 > 正文

略知三

发表于: 2010-11-29   作者:cywhoyi   来源:转载   浏览次数:
摘要: 1.ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. 2. WHERE子句中的连接顺序 3.
1.ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.
2. WHERE子句中的连接顺序 3. SELECT子句中避免使用 ‘ * ‘ 
错误写法:select * from tablename;
9. 用>=替代> 
高效: SELECT * FROM EMP WHERE DEPTNO >=4 ;
低效: SELECT * FROM EMP WHERE DEPTNO >3 ;
两者的区别在于, 前者DBMS将直接跳到第一个DEPT等于4的记录而后者将首先定位到DEPTNO=3的记录并且向前扫描到第一个DEPT大于3的记录. 
10. 优化GROUP BY
提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉.下面两个查询返回相同结果,但第二个明显就快了许多. 
低效: SELECT JOB , AVG(SAL) FROM EMP 
        GROUP BY JOB 
        HAVING JOB = ‘PRESIDENT’ OR JOB = ‘MANAGER‘;
 高效:SELECT JOB , AVG(SAL)  FROM EMP 
        WHERE JOB=‘PRESIDENT'OR JOB = ‘MANAGER' 
       GROUP BY JOB;
正确写法:select column1,column2….from tablename; 4. 用TRUNCATE替代DELETE 5. 使用表的别名 6. 用EXISTS替代IN、用NOT EXISTS替代NOT IN: 7. 合理的使用索引提高查询效率 意味着每条记录的INSERT , DELETE , UPDATE将为此多付出4 , 5 次的磁盘I/O . 8. 索引列失效情况 我们要避免在索引列上使用NOT,函数,‘!=’,‘||’运算符, 如果使用了就会导致索引列失效. 他就会停止使用索引转而执行全表扫描. 避免在索引列上使用IS NULL和IS NOT NULL 尽量使用前端匹配的模糊查询(like),以通过使用索引来避免全表扫描。例如,column1 like ‘ABC%’方式,可以对column1字段进行索引范围扫描;而column1 like ‘%ABC%’方式,即使column1字段上存在索引,也无法使用该索引,只能走全表扫描。

 

略知三

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
实验目的 用高级语言完成一个进程调度程序,以加深对进程的概念及进程调度算法的理解。 实验要求 设
一、题目简介 使用图形用户界面:一个文本框;0-9数字按钮;加、减、乘、除运算符;小数点和等于符
孙雪媛博客园地址:http://www.cnblogs.com/sunxueyuan/p/4489740.html 一、题目简介:图书管理系统
JFreeChart 是一个开源的 JAVA 项目,它主要用来开发各种各样的图表,这些图表包括:饼图、柱状图 (
大三了。 很有没有更新博客了。最近,在完善聊天室,还有五子棋的网络版。打算等差不多的时候再写总
jvm classLoader architecture : a, Bootstrap ClassLoader/启动类加载器 主要负责jdk_home/lib目录
2.1 业务建模(UC1,UC2) A. 业务流程建模。 u 使用UML活动图分析目标系统所支持的业务流程。 u 使
九、 Draw a Class Diagram 现在我们来画一个类图。类图和序列图是UML中最常用的两种diagram,所以
表格是一种常见的数据表现方式,ExtJS也提供了强大的表格显示工具。现在新建一个mygrid.html文件,
1. 一对多的双向 Class.hbm.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hiber
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号