Home > Database > Mysql Tutorial > Oracle Outline总结

Oracle Outline总结

WBOY
Release: 2016-06-07 16:50:19
Original
1442 people have browsed it

Oracle Outline,中文也称为存储大纲,是最早的基于提示来控制SQL执行计划的机制,也是9i以及之前版本唯一可以用来稳定和控制SQL

一、基本概述

注意:


注意:

  • SQL解析时,,使用SQL文本却匹配数据字典outline保存的文本,此处匹配的方式为去掉SQL空格,忽略SQL大小写区别后,进行的比较。
  • 例如,select * from dual 和SELECT * FROM dual这两个语句将使用同样的outline。
  • Oracle教程:实例故障恢复

    Linux-6-64下安装Oracle 12C笔记

    在CentOS 6.4下安装Oracle 11gR2(x64)

    Oracle 11gR2 在VMWare虚拟机中安装步骤

    Debian 下 安装 Oracle 11g XE R2

    三、使用场景

    注意

    任何一个数据库中,大部分的SQL语句执行计划应该是通过优化器自动生成,并且高效运行,而只有极少部分,需要通过各种工具(outine、sql profile)来锁定执行计划

    四、注意事项

    五、outline相关的视图

  • 两个基本视图:dba_outlines,dba_outline_hints
  • 三个底层表:ol$、ol$hints、ol$nodes
  • 六、使用outline

    一、创建outline

    创建outline的方法有三种,下面我们一一简单介绍

    1、给会话甚至整个系统执行的每一条SQL语句都创建outline,可以设置如下参数,分别针对会话级和系统级

    ALTER SYSTEM SET create_stored_outlines=TRUE;

    ALTER SESSION SET create_stored_outlines=TRUE;

    注意:基本上没有任何一个数据库会这么做,因此这种方式我们不做测试;

    2、手工通过CREATE OUTLINE方式来创建给定SQL语句的outline,如下

    CREATE or replace OUTLINE outline_dh_test FOR CATEGORY test on select * from dh_stat where id=11;

    or

    CREATE or replace OUTLINE outline_dh_test1 on select * from dh_stat where id=11;

    示例:

     

    replace OUTLINE outline_dh_test dh_stat where id=11;

    Outline created.

    linesize long long ,
    OUTLINE_DH_TEST DBMON TEST UNUSED dh_stat ,hint
    OUTLINE_DH_TEST )
    OUTLINE_DH_TEST OPT_PARAM(_gby_hash_aggregation_enabled_optimizer_extended_cursor_sharing)
    OUTLINE_DH_TEST OPT_PARAM()
    OUTLINE_DH_TEST DB_VERSION('11.2.0.1')
    OUTLINE_DH_TEST OPTIMIZER_FEATURES_ENABLE('11.2.0.1')
    OUTLINE_DH_TEST IGNORE_OPTIM_EMBEDDED_HINTS
    15 rows selected.

    注意:

  • 不指定outline类别是,默认为default,而且此处创建时,不能指定为default类别(会报错)。
  • 这个方法不是很方便,因为必须将整个SQL文本作为语句的一部分,可能导致语句无法共享等问题,因此很少使用这种方法
  •  

    3、从10g起,可以通过引用共享池中已经存在的SQL语句来创建outline

    exec DBMS_OUTLN.create_outline(hash_value=>1752921103,child_number => 0,category=>'test');

    注意

    更多详情见请继续阅读下一页的精彩内容:

    linux

    Related labels:
    source:php.cn
    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
    Popular Tutorials
    More>
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template