oracle的hints,Oracle使用hints的调整机制实操
你是否对获得Oracle使用的hints调整机制的实际操作感到十分头疼?如果是这样子的话,以下的文章将会给你相应的解决方案,以下的文章主要是介绍获得Oracle使用的hints调整机制的方案,以下就是相关内容的具体描述。
10g数据库介绍:可以使用更多新的optimizer hints来控制优化行为。现在让我们快速解析一下这些强大的新hints:
spread_min_analysis
使用这一hint,你可以忽略一些关于如详细的关系依赖图分析等电子表格的编译时间优化规则。其他的一些优化,如创建过滤以有选择性的定位电子表格访问结构并限制修订规则等,得到了继续使用。
由于在规则数非常大的情况下,电子表格分析会很长。这一提示可以帮助我们减少由此产生的数以百小时计的编译时间。
例:
SELECT /*+ SPREAD_MIN_ANALYSIS */ ...
spread_no_analysis
通过这一hint,可以使无电子表格分析成为可能。同样,使用这一hint可以忽略修订规则和过滤产生。如果存在一电子表格分析,编译时间可以被减少到***程度。
例:
SELECT /*+ SPREAD_NO_ANALYSIS */ ...
use_nl_with_index
这项hint使CBO通过嵌套循环把特定的表格加入到另一原始行。只有在以下情况中,它才使用特定表格作为内部表格:如果没有指定标签,CBO必须可以使用一些标签,且这些标签至少有一个作为索引键值加入判断; 反之,CBO必须能够使用至少有一个作为索引键值加入判断的标签。
例:
SELECT /*+ USE_NL_WITH_INDEX (polrecpolrind) */ ...
CARDINALITY
此hint定义了对由查询或查询部分返回的基数的评价。注意如果没有定义表格,基数是由整个查询所返回的总行数。
例:
SELECT /*+ CARDINALITY ( [tablespec] card ) */
SELECTIVITY
此hint定义了对查询或查询部分选择性的评价。如果只定义了一个表格,选择性是在所定义表格里满足所有单一表格判断的行部分。如果定义了一系列表格,选择性是指在合并以任何顺序满足所有可用判断的全部表格后,所得结果中的行部分。
例:
SELECT /*+ SELECTIVITY ( [tablespec] sel ) */
然而,注意如果Oracle使用的hints CARDINALITY 和 SELECTIVITY都定义在同样的一批表格,二者都会被忽略。
no_use_nl
Hint no_use_nl使CBO执行循环嵌套,通过把指定表格作为内部表格,把每个指定表格连接到另一原始行。通过这一hint,只有hash join和sort-merge joins会为指定表格所考虑。
例:
SELECT /*+ NO_USE_NL ( employees ) */ ...
no_use_merge
此hint使CBO通过把指定表格作为内部表格的方式,拒绝sort-merge把每个指定表格加入到另一原始行。
例:
SELECT /*+ NO_USE_MERGE ( employees dept ) */ ...
no_use_hash
此hint使CBO通过把指定表格作为内部表格的方式,拒绝hash joins把每个指定表格加入到另一原始行。
例:
SELECT /*+ NO_USE_HASH ( employees dept ) */ ...
no_index_ffs
此hint使CBO拒绝对指定表格的指定标签进行fast full-index scan。
Syntax: /*+ NO_INDEX_FFS ( tablespecindexspec ) */
随着Oracle优化器日趋成熟,Oracle必定会不断增加自己对调整SQL语句的工具储备。当然,讨论所有复杂的Oracle10g SQL新Oracle使用的hints远远超出了本文的范围,读者可以从Mike Ault的新书Oracle Database 10g New Features中获得关于Oracle10g的更多信息。
【编辑推荐】
【责任编辑:孙巧华 TEL:(010)68476606】
点赞 0
oracle的hints,Oracle使用hints的调整机制实操相关推荐
- oracle 读懂10046视频,10046、10053、实操记录
10046是一个Oracle的内部事件(event),通过设置这个事件可以得到Oracle内部执行系统解析.调用.等待.绑定变量等详细的trace信息,即帮助我们解析一条/多条SQL.PL/SQL语句 ...
- Hints(Oracle)
Hints(Oracle) Hins约束优化器行为的一种方式(可以干预优化器,让优化器用我们指定的方式执行) 一般 DBA 做性能分析使用,开发避免使用 可以影响 优化器模式,数据访问,表关联,表连接 ...
- EDB PPAS(Oracle 兼容版) Oracle与PostgreSQL 兼容模式的参数配置切换
标签 PostgreSQL , EDB , PPAS , 参数 , Oracle模式 , PostgreSQL模式 背景 EDB PPAS是EDB推出的一款同时兼容Oracle和PostgreSQL协 ...
- oracle工具过期,Oracle调优工具变迁及7种诊断武器
1. Oracle v5 Debug code 2. Oracle v6 Counters/Ratios BSTAT/ESTAT SQL*Trace 3. Oracle v7 Wait Even ...
- lua 访问oracle,lua链接oracle解决方法与步骤
测试环境centos7 1) 使用luajit ,这个比较简单,下载luajit源码,编译即可 省略 以下是具体操作步骤: 参考文章:http://www.programgo.com/article/ ...
- 配置oracle 11g环境,oracle 11g 的安装环境的配置
http://docs.oracle.com/cd/E11882_01/install.112/e24324/toc.htm 1.检查硬件的要求 内存要求: 内存要求:至少1G,但是安装11g必须在2 ...
- oracle union 类型转换,Oracle 中 union 和union all 的简单使用说明
1.刚刚工作不久,经常接触oracle,但是对oracle很多东西都不是很熟.今天我们来了解一下union和union all的简单使用说明.Union(union all): 指令的目的是将两个 S ...
- Oracle HA 之 oracle 11.2 rac库配置active dataguard
目录 configing active dataguard for 11.2 rac. 1 一.建组.建用户.配置环境变量.内核参数等... 1 二.配置共享磁盘... 3 1)创建4块共享磁盘并fd ...
- oracle 扩展分区,Oracle 在线扩展分区
在对Oracle分区表操作是,当一个分区已经有了最大的分区,如何再次扩展分区呢?简单的方式是先删除最大分区,然后添加需要的分区 在对Oracle分区表操作是,当一个分区已经有了最大的分区,如何再次扩展 ...
最新文章
- 2018 AI产业投融资分析:热钱涌向何处,谁的“寒冬”将至?
- Apache 与tomcat实现分布式应用部署
- echarts折线图背景线_echarts设置折线线条颜色和折线点颜色的实例
- linux 5识别网卡,CentOS 5.5系统识别不了Atheros AR8151网卡怎么办?
- JEasyPoi 2.1.4 (Jeecg订制) 版本发布,Excel 和 Word 简易工具类
- Qemu-KVM基本工作原理分析
- console vue 打包之后怎么去掉_Vue Cli 3 打包配置--自动忽略 console.log 语句
- 操作mysql_操作mysql
- css 样式(checkbox开关、css按钮)
- 转帖:Three Ways to Inject Your Code into Another Process
- 共享打印机无法连接的解决办法
- STM32接收红外遥控数据
- 月薪过7万可落户北京,程序员是逃离还是死磕到底?
- 给js对象定义属性的方法
- 【多目标追踪算法】多目标跟踪评价指标
- 合天网络靶场-大规模网络环境仿真服务平台
- delphi的函数round、trunc、ceil、floor 和RoundTo
- Python 简单银行系统
- linux 目录 问号 原因,linux – 在目录的ls中显示的问号. IO错误也是如此
- 营销系列(1)数字营销通识——广告人应掌握的营销、广告概念