在向大家详细介绍Oracle Hints之前,首先让大家了解下Oracle Hints是什么,然后全面介绍Oracle Hints,希望对大家有用。基于

在向大家详细介绍Oracle Hints之前,首先让大家了解下Oracle Hints是什么,然后全面介绍Oracle Hints,希望对大家有用。基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担。但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比。

此时就需要DBA进行人为的干预,告诉优化器使用我们指定的存取路径或连接类型生成执行计划,从而使语句高效的运行。例如,如果我们认为对于一个特定的语句,执行全表扫描要比执行索引扫描更有效,,则我们就可以指示优化器使用全表扫描。在Oracle中,是通过为语句添加 Hints(提示)来实现干预优化器优化的目的。

Oracle Hints是一种机制,用来告诉优化器按照我们的告诉它的方式生成执行计划。我们可以用Oracle Hints来实现:

1) 使用的优化器的类型

2) 基于代价的优化器的优化目标,是all_rows还是first_rows。

3) 表的访问路径,是全表扫描,还是索引扫描,还是直接利用rowid。

4) 表之间的连接类型

5) 表之间的连接顺序

6) 语句的并行程度

除了”RULE”提示外,一旦使用的别的提示,语句就会自动的改为使用CBO优化器,此时如果你的数据字典中没有统计数据,就会使用缺省的统计数据。所以建议大家如果使用CBO或Hints提示,则最好对表和索引进行定期的分析。

如何使用Hints:

Hints只应用在它们所在sql语句块(statement block,由select、update、delete关键字标识)上,对其它SQL语句或语句的其它部分没有影响。如:对于使用union操作的2个 sql语句,如果只在一个sql语句上有Hints,则该Hints不会影响另一个sql语句。

我们可以使用注释(comment)来为一个语句添加Hints,一个语句块只能有一个注释,而且注释只能放在SELECT, UPDATE, or DELETE关键字的后面

使用Oracle Hints的语法:

{DELETE|INSERT|SELECT|UPDATE} /*+ hint [text] [hint[text]]... */

or

{DELETE|INSERT|SELECT|UPDATE} --+ hint [text] [hint[text]]...

注解:

1) DELETE、INSERT、SELECT和UPDATE是标识一个语句块开始的关键字,包含提示的注释只能出现在这些关键字的后面,否则提示无效。

2) “+”号表示该注释是一个Hints,该加号必须立即跟在”/*”的后面,中间不能有空格。

3) hint是下面介绍的具体提示之一,如果包含多个提示,则每个提示之间需要用一个或多个空格隔开。

4) text 是其它说明hint的注释性文本

如果你没有正确的指定Hints,Oracle将忽略该Hints,并且不会给出任何错误。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

hints mysql oracle_五分钟精通Oracle Hints相关推荐

  1. 五分钟精通Oracle Hints

    在向大家详细介绍Oracle Hints之前,首先让大家了解下Oracle Hints是什么,然后全面介绍Oracle Hints,希望对大家有用.基于代价的优化器是很聪明的,在绝大多数情况下它会选择 ...

  2. 五分钟精通正则表达式,如果没精通,那就再加两分钟

    五分钟搞定正则表达式,如果没搞定,那就再加两分钟 一.正则表达式介绍 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机 ...

  3. 五分钟精通设计模式(一)--速记23种设计模式

    本文由程序员伟哥原创,若需要转载,请注明出处. 通过我杜撰的一个新白娘子传奇故事帮助大家记忆23种设计模式 三类设计模式: 三类设计模式可以这么记: 一.白素贞闯入人满为患的大街上(闯街--创建) 刚 ...

  4. 【五分钟精通R语言】R数据类型、判断、循环

    R的基本运算 a = c(1,2,3,4) b = c(3,4,5,6) print(a + b) print(a ^ b) # a ** b print(a %% b) # 整除取余 print(a ...

  5. Oracle Hints具体解释

    在向大家具体介绍Oracle Hints之前,首先让大家了解下Oracle Hints是什么,然后全面介绍Oracle Hints,希望对大家实用.基于代价的优化器是非常聪明的,在绝大多数情况下它会选 ...

  6. 整理oracle Hints 用法大全

    oracle Hints 1. /*+ALL_ROWS*/ 标明对语句块选择基于开销的优化方法,并取得佳最吞吐量,使资源消费最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO, ...

  7. oracle的hints类型,Oracle Hints详解

    在向大家详细介绍Oracle Hints之前,首先让大家了解下Oracle Hints是什么,然后全面介绍Oracle Hints,希望对大家有用.基于代价的优化器是很聪明的,在绝大多数情况下它会选择 ...

  8. Oracle Hints详解

    在向大家详细介绍Oracle Hints之前,首先让大家了解下Oracle Hints是什么,然后全面介绍Oracle Hints,希望对大家有用.基于代价的优化器是很聪明的,在绝大多数情况下它会选择 ...

  9. Oracle Hints,Oracle并行模式(Parallel) /*+parallel(t,4)*/ 在SQL调优中的重要作用

    /*+parallel(t,4)*/在SQL调优中的重要作用! 2013年11月17日 12:59:24 雾里看花5566 阅读数:5422更多 个人分类: 数据库-oracle 谈谈HINT /*+ ...

最新文章

  1. 今晚直播 | 基于知识图谱的人机对话系统方法与实践
  2. 【错误记录】集成 Tinker 热修复报错 ( No such property: variantConfiguration for class: .ApplicationVariantData )
  3. sql添加删除主键、外键
  4. 直接插入排序比较次数_程序员必须要会的直接插入排序算法
  5. python复制文件夹不阻塞_python学习笔记-(十四)I/O多路复用 阻塞、非阻塞、同步、异步...
  6. Spring集成单元测试
  7. 如何在SQL Server中实现错误处理
  8. 二、Python自动化运维入门(函数、模块)
  9. VS2010 C++工程运行提示找不到MSVCP100D.dll
  10. climbing-stairs-动态规划,爬楼梯的路径数
  11. 计算机放样在钢结构应用,计算机放样应用于钢结构工程
  12. python获取百度迁徙大数据
  13. 彻底删除linux mbr,如何删除mbr分区表(超详细介绍Linux管理分区技巧)
  14. android 打开方式,Android默认打开开发者模式方式
  15. 解决Ubuntu Pycharm图标问号的方法
  16. WPS文字设置奇偶页眉、下划线的方法步骤
  17. 图片怎样加贴纸?这些方法值得一试
  18. 查看git HEAD
  19. 简易英文问答系统(glove.6B词向量)
  20. 计算机状态oxc0000001,电脑蓝屏代码0x00000001解决方法

热门文章

  1. JavaScript作用域、上下文、执行期上下文、作用域链、闭包
  2. Activiti6.0实战-画流程图(1)
  3. 元宵节拍妹子必备 vivo NEX双屏版现价12期免息
  4. C语言求最大公约数代码
  5. 关于新浪微博里面长图加载功能的一点窥探
  6. ios 制作手机端拼图游戏及衍生的其他内容
  7. MAC地址,单播、组播、广播的区别
  8. 国内某大型电子商务公司-上海站-笔经-10月11日晚
  9. JavaSE基础笔记——Javaoo(面向对象进阶:static与继承)
  10. idea生成uml类图_IntelliJ IDEA之UML类图