• SQL优化


     
     

    总则
    1. SQL优化要区分数据库
     

    基础
    1. 书写
    语句用大写
     
    2. SELECT
    避免使用“*”
    移除不必要的字段
     
    3. FROM:FROM语句从后向前处理
    选择最有效率的表名顺序
    选择“基础表”放置于末尾
    在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表
    有3个以上的表连接查询,那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表
    使用表“别名”
    移除不必要的表
     
    4. WHERE:WHERE从下往上执行
    将表之间的连接必须写在其它WHERE条件之前
    将可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾
     
    5. 其它
    使用不同的“表空间”
     
     

    索引
    在SQL语句的WHERE和JOIN部分中用到的所有字段上,都应该加上索引。
    不要把存在控制的列作为索引
     
    注:监视索引是否被使用
    -- 设置监视索引IDX_XXX
    alter index IDX_XXX monitoring usage;
    
    -- 检查索引使用情况
    select * from v$object_usage;
    
     

    子查询
    在内部语句上使用过滤,而不是在外部语句上。
     
     

    操作符
    IN -> EXISTS
    用EXISTS 方案代替
     
    NOT IN
    采用NOT EXISTS
     
    IS NULL 或IS NOT NULL操作
     
    UNION
    UNION ALL
     
    “>”、“<”
    用“>=”、“<=”替换
     

    最小数据集
     
     

    临时表
     
  • 相关阅读:
    构建之法阅读笔记06
    钢镚儿开发前会议
    构建之法阅读笔记05
    4.11第8周学习总结
    人月神话阅读笔记01
    构建之法阅读笔记04
    4.4日学习总结
    构建之法阅读笔记03
    3.28第六周学习内容总结
    二人团队项目增删改查
  • 原文地址:https://www.cnblogs.com/cnblogs-qm/p/6536816.html
Copyright © 2020-2023  润新知