对于Oracle性能调优来说,在初始设计的时候,按照Oracle 推荐的OMF进行安装配置之后是最优化的物理结构。

然而实际情况是这样的:大部分的性能很差的数据库,究其根本原因是为程序中的SQL代码很糟糕,很多程序员可能不清楚Oracle的体系结构,不知道Oracle对于一条sql是如何处理的,就会想当然的去写,造成语句未使用绑定变量,执行计划没有使用索引,大部分都是全表扫描。有时候部门就需要有一位对Oracle内部体系结构很清楚地DBA对开发人员进行培训,

有点儿悲剧的感觉。

好了,既然实际上是这样的,我在此就介绍一些优化的技巧:

Oracle 大概知道会有这样的情况,就给我们提供了一种优化的方案--提示

提示的基本语法是:

/*+    提示名称  */

像一种注释,提示名称就是具体的一些提示语法关键字 如:FULL

写出来就像这个样子:  select  /*+  FULL (table)  */ column1,.....  from   table

如果提示语法不正确,那也不用担心,除了没有达到预期的结果,也不会有什么影响,Oracle会忽略它。

一.使用FULL提示

语法:  select  /*+  FULL (table)  */ column1,.....  from   table

其中的 table 是执行全表扫描的表名,如果使用了表的别名,那就必须使用别名,否则提示将不能工作。

示例:

select    /*+   FULL(emp)  */  *

from     emp

where   deptno= 1 ;

1.使用scott 用户连接示例数据库:

打开sql 跟踪, set  autotrace  on

2.不添加提示执行上述语句并且在 列deptno 有索引emp_deptno,输出的执行计划如下:执行的是索引范围扫描。

3.执行上述示例添加 FULL 提示执行结果如下: 执行计划执行的是全表扫描

提示:当一个表数据行不是很多的情况下,执行索引范围扫描比全表扫描要慢一些。

但是以上的图示去相反,全表扫描比索引范围扫描要慢,这是因为没有对表进行收集统计信息

4.执行表分析 analyze  table  emp  compute  statistics

在此执行上述SQL结果:

无FULL提示

有FULL提示:

对比以上结果可以看出,FULL提示对于优化某些小表是很有帮助的。

关于Oracle的提示详解(1)相关推荐

  1. oracle -- Oracle初始化参数详解

    oracle -- Oracle初始化参数详解 Oracle数据库系统根据初始化参数文件init.ora中设置的参数来配置自身的启动,每个实例在启动之前,首先读取这些参数文件中设置的不同参数. Ora ...

  2. Oracle表空间_PK是什么意思,Oracle表空间详解

    关键字:Oracle表空间详解 一.============  查询 =================== 1.查询oracle用户的默认表空间和临时表空间 select default_table ...

  3. oracle控制文件都一样么,Oracle控制文件详解

    一.Oracle控制文件 为二进制文件,初始化大小由CREATEDATABASE指定,可以使用RMAN备份 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等等 ...

  4. Oracle cursor_sharing 参数 详解

    一. 官网的说明 http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/initparams042.htm#REFRN10025 ...

  5. oracle参数文件initorcl位置,oracle 参数文件详解

    参数文件 两类参数文件: pfile:文本文件的参数文件,可以使用vi,vim等编辑器修改,文件名通常为init.ora spfile:二进制的参数文件,不能直接修改,只能存放在Oracle服务器端, ...

  6. Oracle建立全文索引详解

    Oracle建立全文索引详解 1.全文检索和普通检索的区别 不使用Oracle text功能,当然也有很多方法可以在Oracle数据库中搜索文本,比如INSTR函数和LIKE操作: SELECT *F ...

  7. oracle做子查询注意事项,Oracle子查询详解

    Oracle子查询详解,根据查询的结果(内部嵌套查询的结果)把子查询的类型分为单行子查询与多行子查询, 子查询概念 :当一个查询的结果是另一个查询的条件时,,称之为子查询. 使用子查询注意事项: 子查 ...

  8. Oracle中CONCAT详解

    Oracle中CONCAT详解 1.什么是CONCAT 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写 ...

  9. oracle语句中dual什么意思,oracle中dual详解

    oracle中dual详解 基本上oracle引入dual为的就是符合语法 1. 我们先从名称来说,dual不是缩写词,本身就是完整的单词.dual名词意思是对数,做形容词时是指二重的,二元的. 2. ...

最新文章

  1. imp 只导表前10条数据_做电商设计,你必须懂的10条数据指标
  2. CSS 工程化 小结
  3. 一些设计上的基本常识(转载)
  4. 设备树(device tree)学习笔记
  5. 微软发布ReactXP:方便开发者构建跨平台应用
  6. 四:理解Page类的运行机制(例:基于PageStatePersister的页面状态存取)
  7. java htmlparser 使用教程_HTMLParser使用详解(1)
  8. 卷积神经网络CNN介绍:结构框架,源码理解【转】
  9. HTML 5 会让iOS和Android开发者转行吗?
  10. eclipse查看git地址_40个适用于Linux管理员和开发人员的git命令(上)
  11. java 安卓 教学视频教程下载,老罗Android开发视频教程[共9大知识点] 下载
  12. 2017年日本光伏市场展望
  13. Swing Copters摇摆直升机高分攻略,游戏攻略
  14. 阿里云短信服务(无需营业执照)快速上手
  15. bzoj4137[FJOI2015]火星商店问题
  16. Error in v-on handler: “TypeError: this.$refs.popup.isShow is not a function“
  17. idea下载数据库驱动太慢?
  18. win10玩cf不能全屏_神奇的工作室ghost 不能启动
  19. React学习(六)-React中组件的数据-state
  20. ACM-ICPC 常用算法刷题网站整理

热门文章

  1. CISA 已遭利用漏洞列表新增17项
  2. Sophos 紧急修复已遭利用的防火墙 0day
  3. 苹果全面开放漏洞奖励计划:最高100万美元等你拿
  4. Mac OS 添加 MySQL 环境变量
  5. 《数学计算出题系统》功能规格说明书
  6. poj 1860 Currency Exchange (SPFA、正权回路 bellman-ford)
  7. PHP 常见header 状态
  8. PHP框架剥离的判断是否为手机移动终端的函数
  9. C#关键字operator
  10. 【iOS】Tab Bar 的 Item 按钮的像素大小要求