ITPub博客

首页 > Linux操作系统 > Linux操作系统 > HINT用法

HINT用法

原创 Linux操作系统 作者:wei-xh 时间:2010-06-20 22:55:19 0 删除 编辑

最近时间基本都花在给公司员工培训上,都是一些初级的培训,看着PUB吧上的那些牛人们,真想他们给我来次培训。有时候真想立刻换个工作,身边都是一些ORALCE高手们该多好,这样进步也快,可惜啊,目前还没那魄力,再等等吧。
昨天培训的是tkprof工具的用法,讲义概要也已经发到PUB上了,初级菜鸟的朋友可以看看。
http://www.itpub.net/thread-1316020-1-1.html

今天给他们培训的内容是提示的用法,及提示的作用范围。内容大体如下:
1)提示的用法
提示(HINT)虽然也采用了/*。。。*/的形式,可是提示不同于注释,注释可以放在代码的任意位置,可是提示必须紧跟在select,delete,update这些关键字之后,且/*必须带+号。如:
select /*+ full(t) */* from t; 最好养成好的习惯,full(t)前后都带着一个空格,因为有些应用程序可能会把HINT当成注释。需要注意的是如果你的提示存在语法问题,SQL解析器并不会抛出错误,而会把它当成真正的注释。
2)提示的分类(这里不会列举所有的提示)
一、初始化参数提示:如非常熟悉的first_rows_n,all_rows,gather_plan_statistics。以gather_plan_statistics为例来说明,如果statistics_level参数设置的不是all,那么语句在执行的过程中并不会统计语句执行过程中实际的执行时间,读取的buffer数,以及Cardinality.有时候为了测试需要我们可以通过添加HINT,来达到目的。

SQL> select /*+ gather_plan_statistics */* from t where id=1;

SQL> select * from table(dbms_xplan.display_cursor(null,null,'iostats last'));

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------
--------
SQL_ID  cqu5tgppp9ucu, child number 0
-------------------------------------
select /*+ gather_plan_statistics */* from t where id=1

Plan hash value: 1316489643

-------------------------------------------------------------------------------------------------------------------
| Id  | Operation                          | Name      | Starts | E-Rows | A-Rows |   A-Time   | Buffers | Reads  |
-------------------------------------------------------------------------------------------------------------------
|   1 |  PARTITION RANGE ALL               |           |      1 |      1 |      2 |00:00:00.10 |      51 |     50 |
|   2 |   TABLE ACCESS BY LOCAL INDEX ROWID| T         |     48 |      1 |      2 |00:00:00.21 |      51 |     50 |
|*  3 |    INDEX RANGE SCAN                | IND_LOCAL |     48 |      1 |      2 |00:00:00.19 |      49 |     48 |
-------------------------------------------------------------------------------------------------------------------

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22034023/viewspace-665743/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE组成员,DBGeeK用户组发起人。曾在DTCC、ORACLE技术嘉年华、Gdevops等公开场合做过数据库技术专题分享,2017年应Oracle邀请在世界最大的数据库会议OOW上做技术分享。组织翻译了《拨云见日,解密Oracle ASM内核》一书。

注册时间:2009-07-04

  • 博文量
    422
  • 访问量
    2425318