• Tuning SQL 11


    image

    这一章还是概述性的说明

    image

    image

    优化器

    现在都是在用 Cost-based 这种调优器

    image

    image

    注意这本书的作者是个大牛, 他就是说 DBA OVER 那个人, Jonathan Lewis

    image

    image

    image

    hint 是人告诉SQL语句使用什么优化, 优先级从下到上. statement->session->instance

    image

    ALL_ROWS: 缺省值, 完成所有的row, 用于批处理比较好(9i的缺省值是 choose)

    FIRST_ROWS_n : 为了返回头n条记录最好的办法, 这种用于 interface, 当人在看的时候可以先返回100行, 其余的oracle慢慢查

    FIRST_ROWS: 向后兼容使用, 10g 11g 不要用这个

    image

    image

    hint(提示) 嵌入在sql语句中

    image

    image  -- 追求最佳响应时间 response time

    image

    image

    image

    image

    analyze 是 OEM 里的, 其他的工具都要掌握

    image

    image

    execution plan 是一个树, 里边有很多原子操作.

    image

    EXPLAIN PLAN , SQL*Plus AUTOTRACE 是我们要掌握的

    image

    image

    utlxplan.sql 在 rdbms/admin/ 这个目录下

    因为使用 EXPLAIN PLAN FOR 这个命令创建的 execution plan 的汇报会放在一个表中, plan_table, 而上面这个脚本就是用来创建这个表的. plan_table

    image

    select employee_id, last_name, salary from employees

    where employee_id = 120;

    执行计划是:

    image

    注意, Operation 是有缩进的, 这表示 oracle 在执行这个语句时肯定要先执行缩进最里边的, 然后逐层往外

    注意: 如果是同一缩进, 就先执行上边的, 再执行下边的.

    所以, 我们从里向外分析

    由上图, 可以分析出

    首先, INDEX UNIQUE SCAN 根据这个 unique 所以, oracle 找到了 rowid, 注意 索引的意义是一个索引值对应一个rowid, 根据 where employee_id = 120, 找到了120对应的rowid.

    然后, TABLE ACCESS BY INDEX ROWID, 很明显, 根据里层的rowid和表的rowid索引(默认), 我们找到了EMPLOYEES 这个表的对应值

    最后, SELECT STATEMENT 很明显是一个类似title的东西, 总括这个SQL语句返回的情况.

    另外, 每次分析完以后最好把刚刚说的那个 table 删除(plan_table)

    好书推荐: Tom 大师, Effictive Oracle by design. (这本书我有中文版, TOM大师一共2本书, 都有)

    image

    一般使用 alter session set sql_trace = True;

    用 TKPROF 解读 trace 文件.

    image

    image

    USER_DUMP_DEST 决定放置 trace 文件的目录

    tkprof 这个工具的目录是在 oracle/bin的目录下

    tkprof pitts_ora_5390.trc(这个是输入, 即 user trace file) myoutput.txt(这个是输出, 你随便指定的文件名) 还可以接可选的 [options]

    image

    image

    安装

    image

    image

  • 相关阅读:
    javaScript系列---【js中获取元素的方式】
    javaScript系列---【js运算符类型】
    javaScript系列---【数据类型的强制转换】
    javaScript系列---【解析js基本数据类型】
    javaScript系列---【操作元素样式】
    Typora系列---【Typora常用快捷键】
    nyoj--239--月老的难题(最小点覆盖)
    nyoj--284--坦克大战(bfs模板)
    hdoj--3339--In Action(最短路+01背包)
    hdoj--2015--偶数求和(水题)
  • 原文地址:https://www.cnblogs.com/moveofgod/p/3638345.html
Copyright © 2020-2023  润新知