最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

OracleOutline总结

来源:动视网 责编:小采 时间:2020-11-09 12:33:47
文档

OracleOutline总结

OracleOutline总结:Oracle Outline,中文也称为存储大纲,是最早的基于提示来控制SQL执行计划的机制,也是9i以及之前版本唯一可以用来稳定和控制SQL 一、基本概述 注意: 注意: SQL解析时,使用SQL文本却匹配数据字典outline保存的文本,此处匹配的方式为去掉SQL空格
推荐度:
导读OracleOutline总结:Oracle Outline,中文也称为存储大纲,是最早的基于提示来控制SQL执行计划的机制,也是9i以及之前版本唯一可以用来稳定和控制SQL 一、基本概述 注意: 注意: SQL解析时,使用SQL文本却匹配数据字典outline保存的文本,此处匹配的方式为去掉SQL空格


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');

    注意

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

    文档

    OracleOutline总结

    OracleOutline总结:Oracle Outline,中文也称为存储大纲,是最早的基于提示来控制SQL执行计划的机制,也是9i以及之前版本唯一可以用来稳定和控制SQL 一、基本概述 注意: 注意: SQL解析时,使用SQL文本却匹配数据字典outline保存的文本,此处匹配的方式为去掉SQL空格
    推荐度:
    标签: oracle 总结 outline
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top