oracle hints简介

hints翻译成中文就是提示,暗示的意思,它在数据库中作用就是更改SQL语句的执行方式,你可以使用hints强制sql按照你所设置的方式执行sql,一般用来做性能诊断和调优,不建议在开发中使用。

1.写一条SQL,使它通过全表扫描方式的效率优于索引访问,分别给出各自的执行计划。

LEO1@LEO1> create table leo1 as select * from dba_objects;      创建leo1表

Table created.

LEO1@LEO1> create index idx_leo1 on leo1(object_id);            在这个object_id列上创建索引

Index created.

LEO1@LEO1> execute dbms_stats.gather_table_stats('LEO1','LEO1',cascade=>true);  分析表和索引

PL/SQL procedure successfully completed.

LEO1@LEO1> select count(*) from leo1;         表上有71958行记录

COUNT(*)

---------------

71958

LEO1@LEO1> select /*+ full(leo1) */ * from leo1 where object_id>100;

71859 rows selected.

Execution Plan

----------------------------------------------------------

Plan hash value: 2716644435

--------------------------------------------------------------------------

| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |

--------------------------------------------------------------------------

|   0 | SELECT STATEMENT  |      | 71862 |  6807K|   287   (1)| 00:00:04 |

|*  1 |  TABLE ACCESS FULL| LEO1  | 71862 |  6807K|  287   (1)| 00:00:04 |

--------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

1 - filter("OBJECT_ID">100)

Statistics

----------------------------------------------------------

1  recursive calls

0  db block gets

5762  consistent gets                 5762次一致性读

0  physical reads

0  redo size

3715777  bytes sent via SQL*Net to client

53214  bytes received via SQL*Net from client

4792  SQL*Net roundtrips to/from client

0  sorts (memory)

0  sorts (disk)

71859  rows processed

LEO1@LEO1> select /*+ index(leo1 idx_leo1) */ * from leo1 where object_id>100;

71859 rows selected.

Execution Plan

----------------------------------------------------------

Plan hash value: 1434365503

----------------------------------------------------------------------------------------

| Id  | Operation                   | Name     | Rows  | Bytes | Cost (%CPU)| Time     |

----------------------------------------------------------------------------------------

|   0 | SELECT STATEMENT            |          | 71862 |  6807K|  1232   (1)| 00:00:15 |

|   1 |  TABLE ACCESS BY INDEX ROWID| LEO1     | 71862 |  6807K|  1232   (1)| 00:00:15 |

|*  2 |   INDEX RANGE SCAN         | IDX_LEO1 | 71862 |       |  160   (0)| 00:00:02 |

----------------------------------------------------------------------------------------

时间: 2024-08-31 02:39:52

oracle hints简介的相关文章

Oracle Spatial 简介

oracle Oracle Spatial 简介:        首先,Oracle 支持自定义的数据类型,你可以用数组,结构体或者带有构造函数,功能函数的类来定义自己的对象类型.这样的对象类型可以用于属性列的数据类型,也可以用来创建对象表.而Oracle Spatial也正是基于此种特性所开发的一套空间数据处理系统.        Spatial 的自定义数据类型有很多,都在MDSYS方案下,经常使用的是SDO_GEOMETRY类型.SDO_GEOMETRY表示一个几何对象,可以是点.线.面.

Oracle autotrace简介

recursive calls 用户或系统产生的递归调用的数量; db block gets:当前数据块被请求的次数; consitent gets 从缓冲区高速缓存中获取重做数据块的数量; physical reads 从磁盘获取数据块的数量 redo size DML语句生成的重做数据的大小 bytes sent via SQL*Net to client 通过Oracle Net向客户端发送数据的字节数 bytes sent via SQL*Net from client 通过Oracle

Oracle并行简介

并行DML操作需注意2点: 1).显示在会话里执行:alter session enable parallel dml; 2).对于Delete.Update .Merge的操作,只有被操作的对象是分区表时,Oracle才会启用并行操作; 3).对于insert只有insert into ...select * from 此形式才有用; 各种并行操作举例如下: --并行delete delete /*+ parallel(t,2) */ * from t; --并行update update /

Oracle分析函数简介:排序

Oracle常用的用于排序的分析函数有3种,rank().dense_rank().row_number(); 测试表如下: 1.rank() 跳跃式排名 with temp as ( select t_id,t_age, rank() over(order by t_age desc) sec  from aaa ) select * from temp --where sec=1--,加上此过滤条件,即可找出排名为1的记录 如果指定分组的话,如下: with temp as ( select

ORACLE审计简介

1.什么是审计 审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin/ $ORACLE_SID/adump/)或数据库(存储在system表空间中的SYS.AUD$表中,可通过视图dba_audit_trail查看)中.默认情况下审计是没有 开启的. 不管你是否打开数据库的审计功能,以下这些操作系统会强制记录:用管理员权限连接Instance:启动数据库:关闭数据库. 2.和审计相关的两个主要参数 Aud

Oracle内存结构详解(一) Oracle SGA简介

Oracle的内存配置与oracle性能息息相关.关于内存的配置,是最影响Oracle性能的配置.内存还直接影响到其他两个重要资源的消耗:CPU和IO. 先看Oracle内存存储的主要内容是什么: 程序代码(PLSQL.Java): 关于已经连接的会话的信息,包括当前所有活动和非活动会话: 程序运行时必须的相关信息,例如查询计划: Oracle进程之间共享的信息和相互交流的信息,例如锁: 那些被永久存储在外围存储介质上,被cache在内存中的数据(如redo log条目,数据块). 每个Orac

oracle ebs 简介

哎....现在这年头,只搞db人越来越少,dba的地位越来越低....没办法..为了生存,哥哥决定再跨一个新的领域,去oracle的应用领域去学oracle ebs去... 开工: ebs的内部技术架构:简单概括为如下几个部分:多组织.多语言.多币种.模块化,集成性.并发处理.多技术混用. 我们看一下ebs R12的服务器架构组成: 2.名词解释 ERP系统中有很多职能集成所必需,但手工管理方式下所没有的重要名词.以下一一解释这些名词的意义及功能. 1.现存量(On Hand Quantity)

ORACLE数据库简介

一.概论   ORACLE 是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地  讲它是用方便逻辑管理的语言操纵大量有规律数据的集合.是目前最流行的客  户/服务器(CLIENT/SERVER)体系结构的数据库之一.  二.特点     1.ORACLE7.X以来引入了共享SQL和多线索服务器体系结构.这减少了ORACLE 的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源  就可以支持更多的用户,而在高档平台上可以支持成百上千个用户.    2.提供了基于角

Oracle约束简介

整理自<OCP认证指南> 001 概述     表约束是数据库能够实施业务规则以及保证数据遵循实体--关系模型的一种手段,其中,实体--关系模型由定义应用程序数据结构的系统分析所确定.     在针对定义了约束的表执行任何DML时,如果DML违反了约束,则将自动回滚整个语句.注意,如果一个DML语句影响到多个行,那么,在特定行遇到约束问题前,此语句可能已经局部成功.如果此语句是多语句事务的一部分,那么,事务中已经成功语句将保持完好,但不提交.     考点:如果违反约束,将自动回滚出现问题的整