`
zl198751
  • 浏览: 278785 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle SQL 提示

阅读更多
1、FIRST_ROWS
   指示优化器尽可能快地返回前n行记录,提高响应速度。如果没有指定参数,则返回第一行。该提示对Update和Insert无效,对包含块操作的 select语句无效,如排序和group。 这样的语句不能优化最佳响应时间,因为Oracle在返回第一行之前,必须获得所有的记录。如果在这种情况下使用了该提示,优化器会优化最佳吞吐量(相当 于ALL_ROWS提示)。
 
2、FULL
   指示优化器执行全表扫描,即使有索引,也不会走索引。
  
    SELECT   /**/ /* + FULL(e)  */  employee_id, last_name
      
FROM  hr.employees e  WHERE  last_name  LIKE  :b1;
  
   注意:如果表有别名,则必须使用别名。并且即使表加上了schema名称,在提示中也不能指定schema名称。
 
3、HASH
   指示优化器使用Hash扫描表,只适用于表簇中的表。
 
4、INDEX
   指示优化器适用Index扫描表,适用于函数、域、B树、位图和位图联合索引。
   Index提示遵循以下规范:
   a、如果Index提示指定单个的索引,那么数据库执行该索引上的扫描,优化器不会执行全表扫描或者表上的其他索引。
   b、对于指定了多个索引的组合的Index提示,Oracle推荐使用INDEX_COMBINE而不是INDEX提示,因为它更加通用,如果Index 提示指定了index列表,那么优化器会考虑走每个索引的代码,并从中选择代价最小的一条索引,如果扫描多个index的代价最小,那么优化器会扫描该个 索引列表。优化器不会走全表扫描或者没有在index列表上的索引。
   c、如果Index提示没有指定Index,优化器会评估扫描每个Index的代价,并选择代价最小的Index,如果组合Index代价最小,那么优化器会选择扫描多个索引,并合并结果集。优化器不会走全表扫描。
 
    SELECT   /**/ /* + INDEX (employees emp_department_ix) */   employee_id, department_id
    
FROM  employees  WHERE  department_id  >   50 ;
 
5、INDEX_ASC
   按索引值的升序方向扫描索引,其他参数与INDEX 提示完全一样。
 
6、INDEX_COMBINE
   联合索引提示。索引规则与INDEX提示一样。
  
    SELECT   /**/ /* + INDEX_COMBINE(e emp_manager_ix emp_department_ix)  */   *
FROM  employees e
WHERE  manager_id  =   108
OR  department_id  =   110 ;
 
7、INDEX_DESC
  降序INDEX提示。
 
SELECT   /**/ /* + INDEX_DESC(e emp_name_ix)  */   *
FROM  employees e;
 
8、INDEX_FFS
  指示优化器执行快速全索引扫描,而不是全表扫描。
 
SELECT   /**/ /* + INDEX_FFS(e emp_name_ix)  */  first_name
FROM  employees e;
 
9、INDEX_JOIN
  以INDEX JOIN的方式扫描,必须存在足够少的INDEX,这些索引包含着查询中所有的列。
 
SELECT   /**/ /* + INDEX_JOIN(e emp_manager_ix emp_department_ix)  */  department_id
FROM  employees e  WHERE  manager_id  <   110   AND  department_id  <   50 ;
 
10、INDEX_SS
  索引跳跃扫描提示。
 
11、LEADING
  指定特定的表放在执行计划的前面,它比ORDERED提示更加通用。
  如果因为Join路线的依赖关系而不能首先被Join,提示就会被忽略;如果指定了两个或者多个冲突的LEADING提示,则他们都会被忽略;如果指定了ORDERED提示,那么LEADING就会被忽略。
 
12、MERGE
  将视图合并到查询。
  如果视图查询语句包含GROUP BY子句或者SELECT语句中用到了 DISTINCT,那么优化器能够将视图合并到查询语句中,合成的合并也能够合并IN子查询,如果IN子查询没有关联。
 
   SELECT   /**/ /* + MERGE(v)  */  e1.last_name, e1.salary, v.avg_salary
FROM  employees e1,
(
SELECT  department_id,  avg (salary) avg_salary
FROM  employees e2
GROUP   BY  department_id) v
WHERE  e1.department_id  =  v.department_id  AND  e1.salary  >  v.avg_salary;
 
13、NOAPPEND
   在并行模式中使用常规插入方法。
 
14、NOCACHE
 
15、NO_EXPAND
 
16、NO_FACT
 
17、NO_INDEX
 
18、NO_INDEX_SS
 
19、NO_MERGE
 
20、NO_PARALLEL
   覆盖了使用DDL语言创建或者更改table的PARALLEL参数的设置。
 
21、NO_PARALLEL_INDEX
   覆盖了使用DDL语言创建或者更改index的PARALLEL参数的设置。
 
22、NO_PUSH_PRED
  
23、NO_PUSH_SUBQ
 
24、NO_PX_JOIN_FILTER
    阻止优化器使用并行联合位图过滤器
 
25、NO_REWRITE
    使查询重写失效
 
26、NO_QUERY_TRANSFORMATION
    跳过所有查询转换,包括但不限于:OR-expansion、视图合并、无嵌套子查询、星型转换和物化视图重写。
 
27、NO_STAR_TRANSFORMATION
 
28、NO_UNNEST
 
29、NO_USE_HASH
 
30、ORDERED
  Ordered这个提示会要求列在SQL表达式FROM字句里的表格按照指定的顺序进行合并,FROM字句里的第一个表格会指定驱动表格(driving table)
       指示优化器按照FROM子句出现的表顺序join表。Oracle推荐使用LEADING提示。
 
31、PARALLEL
   指示优化器使用指定数目的服务器去执行并行操作,包括SELECT、INSERT、MERGE、UPDATE和DELETE部分的语句和表扫描部分都可使用。
   注意:如果发生sort或者group,那么服务器的数量应该是提示指定的两倍。
   如果任何并行都被禁止,那么提示就会被忽略。
   如果指定了DEFAULT或者没有指定任何值,那么查询器就会去检查初始参数的设置来决定并行度。
   临时表上的该提示将会被忽略。
 
32、PARALLEL_INDEX
   为分区索引指定并行索引扫描的数量。示例:
    SELECT /*+ PARALLEL_INDEX(table1, index1, 3) */
 
33、PQ_DISTRIBUTE
 
34、PUSH_PRED
 
35、PUSH_SUBQ
 
36、REWRITE
    对物化视图使用查询重写。
分享到:
评论

相关推荐

    SQL智能提示工具(支持SqlServer,Oracle,access)

    SQL智能提示工具(支持SqlServer,Oracle,access) 内含注册码哦!

    Oracle SQL 优化与调优技术详解-附录:SQL提示.pdf

    ### Oracle SQL 优化与调优技术详解:深入理解SQL提示 #### 一、SQL提示的定义及作用 在Oracle数据库的SQL语句中,SQL提示(Hints)是一种用于指导优化器选择特定执行计划的特殊注释语法。这些提示能够帮助数据库...

    Oracle SQL语句方法

    为了优化查询性能,Oracle提供了多种SQL提示(Hints),这些提示允许开发人员直接控制查询优化器(Query Optimizer)的执行计划,从而提升查询效率。下面将详细介绍几种常用的Oracle SQL提示。 #### 1. / * + ALL_...

    Oracle SQL 优化与调优技术详解-附录:SQL提示

    在开始讨论具体的SQL提示之前,我们先来理解什么是“提示”以及它的作用。在Oracle SQL中,提示是一种用于指导优化器选择特定执行路径的指令。开发者或DBA在SQL语句中直接嵌入提示,以此来影响优化器如何处理特定的...

    Oracle的SQL监视工具SQLTracker

    Oracle的SQL监视工具SQLTracker是一款强大的性能分析工具,专为数据库管理员和开发人员设计,用于诊断和优化SQL查询性能。这款工具在Oracle数据库环境中扮演着重要角色,它可以帮助用户实时监控SQL语句的执行情况,...

    oracle sql developer数据库连接成功后打不開表

    - **重新安装**:如果上述方法均无效,可以考虑卸载并重新安装Oracle SQL Developer,同时确保在安装过程中遵循所有必要的步骤和提示。 - **寻求社区帮助**:加入Oracle社区论坛或其他技术交流平台,描述遇到的具体...

    Oracle sqldeveloper X64替换32

    ### Oracle SQL Developer X64 替换 32 位版本详解 #### 一、概述 在当前的技术环境中,64位系统已经成为主流,而Oracle SQL Developer作为一款强大的数据库开发工具,其64位版本相较于32位版本具有更多的优势。...

    oracle sql developer 使用教程

    ### Oracle SQL Developer 使用教程 #### 一、创建数据库连接 Oracle SQL Developer 是一款强大的图形界面工具,用于管理和操作 Oracle 数据库。使用此工具的第一步是建立与目标数据库的连接。 **步骤1:启动 ...

    Oracle SQL语法速查

    3. **PL/SQL Developer**:专门针对PL/SQL编程的工具,支持调试、代码提示和项目管理。 4. **Oracle Enterprise Manager Cloud Control**:全面的数据库监控和管理平台,适合大型企业环境。 了解并熟练掌握这些...

    oracle sql developer 附带说明

    而`oracle sql developer x64` 应该是SQL Developer的64位安装程序,双击运行并按照提示进行安装即可。 总的来说,Oracle SQL Developer是一款强大且全面的数据库管理工具,它简化了数据库管理工作,提高了开发效率...

    oracle sql developer x64

    4. **PL/SQL开发**:对于PL/SQL编程,SQL Developer提供了代码编辑器,具备语法高亮、代码提示和自动完成功能,还有调试器来跟踪和测试存储过程。 5. **报表与图表**:通过SQL Developer,用户可以生成各种类型的...

    大型数据库技术-实验二 Oracle SQL PLUS环境与查询.doc

    实验过程中,学生还学习了如何设置SQL提示、导入数据库、调整查询结果的显示长度,以及在遇到问题时如何回顾理论知识和解决问题。实验结果的展示和分析加深了对Oracle SQL查询的理解。 通过这次实验,学生不仅掌握...

    ORACLE并行SQL指南

    ### Oracle并行SQL指南 #### 一、理解并行SQL的概念 在Oracle数据库中,并行SQL(Parallel SQL)是一种能够显著提升SQL语句执行效率的技术。传统的串行SQL执行方式中,一个会话只能利用一个CPU核心或者一个磁盘...

    Oracle SQL Developer Command-Line

    此外,sqlcl具备智能提示功能,通过`set sqlformat`命令,用户可以选择不同的输出格式,如csv、json等,以便于数据分析和处理。它还提供了历史记录功能,可以查看和重复之前的命令,提高工作效率。 在安全性方面,...

    Oracle SQL Handler(Oracle 开发工具) v5.1.zip

    (3) 超智能的SQL编辑器,具有代码跟踪提示功能,极大地提高SQL编辑效率; (4) SELECT语句的查询结果显示在工作表,工作表象Excel表格一样操作,能方便地增加/删除/更新数据并保存。另外,工作表还有单条记录...

    Oracle+SQL优化之使用索引提示一例

    ### Oracle SQL优化与索引提示应用案例解析 在Oracle数据库管理与优化的实践中,SQL语句的执行效率直接影响着系统的响应速度与资源消耗。当面对复杂的查询或批量更新操作时,合理利用索引提示(Index Hint)成为...

    Oracle_11g+Oracle_Sqldeveloper_安装完全手册

    ### Oracle 11g + Oracle SQL Developer 安装与配置完全手册 #### 一、概述 随着信息技术的发展,Oracle 数据库作为业界领先的数据库管理系统之一,其应用范围非常广泛。为了更好地管理和开发 Oracle 数据库,...

    Oracle SQL Tuning.pdf

    5. **使用提示控制访问路径和联接顺序**:通过在SQL语句中添加提示,可以直接指导优化器选择特定的执行计划。 六、重构索引 索引的结构和选择性对查询性能有着直接的影响。优化索引结构的方法包括: 1. **移除非...

    一个oracle客户端(oracle sql handler)

    多线程、多连接、智能/彩色SQL编辑器、中英文双语界面并能切换、支持 PL/SQL、批量SQL运行、高效的块操作、方便的表格操作,不需要安装 Oracle 客户端,能运行于所有的主流平台包括 Windows、Linux 、Unix 及 Mac ...

Global site tag (gtag.js) - Google Analytics