• Oracle性能优化顺序表名称来选择最有效的学习笔记


            选择最有效的顺序表名(只有有效的基于规则的优化)

            ORACLE分析器按照订单处理从右到左FROM在FROM子句中的表名,故FROM写在最后的表(基础表 driving table)将被最先处理. 在FROM子句中包括多个表的情况下,你必须选择记录条数最少的表作为基础表.当ORACLE处理多个表时, 会运用排序及合并的方式连接它们.首先,扫描第一个表(FROM子句中最后的那个表)并对记录进行派序,然后扫描第二个表(FROM子句中最后第二个表),最后将全部从第二个表中检索出的记录与第一个表中合适记录进行合并.

    比如:

            表 TAB1:16,384 条记录、表 TAB2:1 条记录

            选择TAB2作为基础表 (最好的方法):运行时间0.96秒

    select count(*) from tab1,tab2 
            选择TAB2作为基础表 (不佳的方法):运行时间26.09秒

    select count(*) from tab2,tab1
           假设有3个以上的表连接查询, 那就须要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其它表所引用的表.
    比如:

          EMP表描写叙述了LOCATION表和CATEGORY表的交集.

    SELECT * 
    FROM LOCATION L , 
          CATEGORY C,
          EMP E 
    WHERE E.EMP_NO BETWEEN 1000 AND 2000
    AND E.CAT_NO = C.CAT_NO
    AND E.LOCN = L.LOCN
    将比下列SQL更有效率:

    SELECT * 
    FROM EMP E ,
    LOCATION L , 
          CATEGORY C
    WHERE  E.CAT_NO = C.CAT_NO
    AND E.LOCN = L.LOCN
    AND E.EMP_NO BETWEEN 1000 AND 2000
    小注:
           本文摘自百度文库,详细链接木有找到。抱歉。


    版权声明:笔者:jiankunking 资源:http://blog.csdn.net/jiankunking 本文版权归作者和CSDN共同拥有。欢迎转载。但是,如果没有从本节宣布提交权限必须保留,并连接到原来的文章页给出视在位置。

  • 相关阅读:
    上传预览图片
    css3图片3D翻转效果
    获取新浪天气api显示天气情况(转)
    matlab添加M_map工具箱(转 http://blog.sina.com.cn/s/blog_491b86bf0100srt9.html)
    Matlab read_grib.r4 安装新方法(转自:http://blog.sina.com.cn/s/blog_9f36648b010179s7.html)
    grb文件的读取
    Windows 7 防火墙对Virtualbox guest的影响
    Virtualbox修改bios信息安装Windows XP OEM
    Wordpress编辑器(Tinymce)在Chrome中动态修改图片大小
    Android流行的框架整理
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4841045.html
Copyright © 2020-2023  润新知