`
buzhucele
  • 浏览: 333269 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ORACLE进阶 HINT

阅读更多
下面就介绍下这5种hint适用的主要场合:
1)use_nl主要用于在多表join的时候,nl的意思是nest loop,就是嵌套查询;
         规则为,根据参数中指定表名的顺序,根据where子句中的查询条件把所有记录都查出来,然后再循环这些记录与另外的表join;
         适应场合为:某表的查询结果集很小,而其他表的查询结果集很大;
         比如:select a.* from table1 a,table2 b where a.xx='1' and b.yy = '2' and a.x=b.x
         若根据a.xx='1'从table1中查询出来的结果集比根据b.yy = '2'从table2中查询出来的结果集小得多,则可以加上use_nl(a b);
         使用的时候将小结果集放前面,大结果集放后面;
2)use_hash可以看作是use_nl的兄弟,也是用于在多表join的时候,但是他不使用嵌套,而是用hash join;
         其规则和use_nl完全一样;
         适应场合为:各表的查询结果集都比较大,而且大小差不多;
         比如:select a.* from table1 a,table2 b where a.xx='1' and b.yy = '2' and a.x=b.x
         若根据a.xx='1'从table1中查询出来的结果集和根据b.yy = '2'从table2中查询出来的结果集都比较大,而且大小差不多,则可以加上use_hash(a b);
3)ordered用于强制指定DB按照FROM子句中各表的先后顺序进行数据查询;
         比如说SELECT A.* FROM TABLE1 A, TABLE2 B WHERE A.X=B.X ……中添加了/*+ORDERED */,则标识oracle会强制先查询table1中的记录,然后再与table2 join;
         一般来说这个hint都是与use_nl和use_hash联合使用的;
         比如1)中的语句可以为select /*+ORDERED use_nl(a b) */ a.* from table1 a,table2 b where a.xx='1' and b.yy = '2' and a.x=b.x
4)index主要用于强制指定使用某个索引,一般选择效率更高的索引;
         适应场合为:where子句中有几个索引可供选择、或者是用到了联合索引中的第一个字段;
         比如select a.* from table1 where column1 = 'xx' and column2 = 'yy'
         若table1中column1和column2两个字段都有索引,则可以强制指定使用哪个索引,比如index(table1 table1_ind_column1)
5)full用于指定全表扫描,这个实际中应用的较少;
         按照DBA的说法,如果使用index查出来的结果集>=全表记录的25%,那么使用index的效率并不高,还不如用全表扫描;
分享到:
评论

相关推荐

    Oracle中hint的理解篇

    ### Oracle中Hint的理解与应用 #### 一、Hint概述 在Oracle数据库中,Hint是一种用于指导优化器如何生成执行计划的特殊语法。当基于代价的优化器(Cost-Based Optimizer, CBO)未能选择出最优的执行计划时,可以...

    oracle的hint函数

    介绍了oracle中的hint,常用的 ordered、use_nl、use_hash、index、full 五种, 给出使用实例和适用场景

    oracle_hint教程汇总

    Oracle Hint是Oracle数据库系统中的一种特性,它允许数据库管理员或开发人员通过在SQL语句中添加特定的提示来指导查询优化器如何执行查询。Hint机制为优化查询性能提供了额外的控制,尤其是在面对复杂查询和性能瓶颈...

    oracle中hint

    提供的是哦oracle中hint的用法。可以加快查詢速度,按照預設的執行計劃執行

    Oracle 中HINT的使用

    Oracle中的HINT是一种非常强大的工具,它允许数据库管理员和开发人员通过在SQL语句中添加特定的指令来指导Oracle查询优化器如何执行查询。这些HINTs提供了对默认查询优化过程的控制,可以帮助解决复杂的查询性能问题...

    SQL优化过程中常见Oracle中"HINT"的30个用法

    在进行SQL优化的过程中,Oracle中的`HINT`是一种非常实用且强大的工具,它允许数据库管理员或开发者通过在SQL语句中添加注释的方式直接指导Oracle的优化器如何执行查询计划。这种方式可以有效地调整数据访问路径、...

    Oracle hint的用法

    ### Oracle Hint 的深入解析与应用 #### 一、概述 Oracle Hint 是一种特殊的注释语法,用于指导Oracle数据库优化器如何执行SQL语句。通过合理使用Hint,可以显著提高SQL语句的执行效率,减少不必要的资源消耗。...

    oracle hint 语句优化

    ### Oracle Hint 语句优化详解 #### 一、概述 在数据库管理与开发工作中,SQL语句优化是一项至关重要的任务。对于大型应用系统而言,合理的SQL优化能够显著提高查询性能,减少系统响应时间,从而提升用户体验。...

    oracle hint 用法汇总

    里面是ORACLE SQL 优化时会用到的hint示例汇总。总共有30个hint。 全部都是hint说明及示例。下面展示一个示例。 /*+noappend*/ 通过在插入语句生存期内停止并行模式来启动常规插入. insert /*+noappend*/ into test...

    oracle_hint

    Oracle Hint 是一种在 SQL 查询中指导数据库优化器如何执行查询的机制。在Oracle数据库系统中,优化器有基于规则(Rule-Based Optimization, RBO)和基于代价(Cost-Based Optimization, CBO)两种优化策略。RBO是...

    快速掌握Oracle中“HINT”的30个用法

    在SQL语句优化过程中,经常会用到hint,下面我们来介绍一下在SQL优化过程中常见Oracle中"HINT"的30个用法

    oracle CBO HINT

    总之,理解并正确使用Oracle的CBO HINT可以帮助我们更好地控制查询执行,提高SQL查询性能。然而,由于CBO的复杂性,深入理解和实践是至关重要的。务必在生产环境中谨慎应用,以防止可能的反效果。

    Oracle hint

    Oracle Hint 是一种在SQL语句中插入的特殊指令,它用来指导Oracle数据库的查询优化器如何执行查询。在SQL优化过程中,Hint可以帮助我们控制查询执行计划,以达到提高查询性能的目的。以下是一些常见的Oracle Hint...

    小菜鸟系列-Oracle的优化器与hint

    在“小菜鸟系列-Oracle的优化器与hint”这个主题中,我们将深入探讨Oracle数据库的查询优化器以及如何通过使用hint来引导优化器进行更高效的执行计划选择。 Oracle的优化器是数据库引擎的核心组件,它负责分析SQL...

    实战Oracle SQL调优 hint特性

    ### 实战Oracle SQL调优 hint特性详解 #### 一、Oracle SQL Hint概述 **Hint**是Oracle数据库提供的一种特殊语法,允许用户通过在SQL语句中插入特定的指令来直接影响SQL执行的方式。Hint的设计初衷更多是为了帮助...

    Oracle数据库优化器Hint的全面实战解析

    内容概要:本文详细介绍了Oracle优化器中的Hint技术及其实际应用。通过案例和详细的解释,帮助读者理解为什么Oracle引入Hint,以及如何在查询优化中使用不同的Hint类型,如与优化器相关、访问路径、查询转换、表连接...

    oracle 基本hint

    ### Oracle基本Hint详解 在Oracle数据库管理中,为了更精细地控制查询执行计划,提高查询效率,使用hint是一种常见的优化手段。本文将详细介绍几种常用的Oracle hint及其原理。 #### 1. /*+ ALL_ROWS */ **含义:...

    Oracle Hint的用法

    ### Oracle Hint 的深入解析与应用 #### 一、概述 Oracle Hint是一种用于指导Oracle数据库优化器如何执行查询的特殊语法。通过使用特定的Hint,开发人员可以显式地告诉优化器采用哪种策略来处理SQL语句,从而实现...

    Oracle相关SQL葵花宝典

    《Oracle相关SQL葵花宝典》是一本专为学习Oracle数据库管理系统中SQL语言及PL/SQL编程设计的综合指南。本书全面涵盖了从基础到高级的Oracle SQL知识,旨在帮助读者熟练掌握在Oracle环境中进行数据查询、操作、分析...

    ORACLE中的的HINT详解

    在Oracle数据库中,HINT是一种强大的工具,允许数据库管理员和开发人员对SQL查询的执行计划进行微调,以提高性能或满足特定的需求。本文将深入探讨Oracle HINT的使用和功能。 1. **HINT的基本概念** HINT是Oracle...

Global site tag (gtag.js) - Google Analytics