oracle常用hint是怎样的

技术oracle常用hint是怎样的oracle常用hint是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

什么是常用的甲骨文提示?很多新手对此不是很清楚。为了帮助大家解决这个问题,下面小编就详细讲解一下。需要的人可以从中学习,希望你能有所收获。

1./* ALL_ROWS */希望优化器给出一个尽快获取所有记录的执行计划,目标是增加系统的吞吐量。2./* FIRST_ROWS(n) */希望优化器能给出一个可以快速获取第一行的执行计划,目标是减少系统的响应时间。3./*完整(表格)*/

指示表的全局扫描方法。4./*索引(TABLE INDEX_NAME) */

指示为表选择索引的扫描方法。5./* index _ ASC (tableindex _ name) */

指示为表选择升序索引的扫描方法。6./* index _ desc(表索引_名称)*/

指示为表选择降序索引的扫描方法。

7./* INDEX _ COMPONENT */

从索引中获取ROWID信息,通过BITMAP CONVERSION从ROWIDS转换为位图,然后通过BITMAP AND转换多个位图信息。

组合匹配,将得到的位图信息通过位图转换为ROWIDS转换为ROWID,然后访问表或直接返回数据。

8./* INDEX _ JOIN(TABLE INDEX _ NAME 1 INDEX _ NAME 2)*/

index_join的工作原理:

index_join的前提是所有查询到的数据都可以从索引中获取,Oracle通过哈希索引连接对索引进行索引。

数据被直接处理和返回,从而避免了对表的访问。index_join使用的索引可以是唯一索引或多列索引。

index_join的约束:

1.查询的数据可以从索引中获得。

2.谓词条件中不能存在非索引列的谓词。

9./*索引_FFS(表索引_名称)*/

索引快速全扫描使用多块读取来读取索引块,并生成db文件分散读取事件,这是一种高效但无序的读取。

全扫描通过使用单块读取方法以有序的方式读取索引块,该方法生成db文件顺序读取事件。当用这种方法读取大量索引全扫描时,效率降低了10。/* INDEX _ SS(T _ T _ IND)*/

自9i以来,oracle引入了这种索引访问方法。在联合索引中,当某些谓词条件不在联合索引的第一列中时,可以通过索引跳过扫描来访问索引以获取数据。当联合索引的第一列中唯一值的数量较少时,这种方法比全表扫描更有效。11./*前导(table_1,table_2) */

在多表关联查询中,指定哪个表是驱动表,即告诉优化器先访问哪个表的数据。

12./*订购*/

让甲骨文根据表从后的顺序选择驱动表。甲骨文建议使用leading,这样更灵活。

13./*使用_nl(table_1,table_2) */在多表关联查询中,为多表关联指定嵌套循环。

14./*使用_hash(table_1,table_2) */

在多表关联查询中,指定多表关联的散列连接方法。

15./*使用_merge(table_1,table_2) */

在多表关联查询中,指定多表关联的合并连接方法。

16./*并行(table_name n) */

在sql中指定执行并行度,该值将覆盖它自己的并行度17。/* no_parallel(表名)*/

span data-mce-="">在sql中指定执行的不使用并行

18./*+ append */
以直接加载的方式将数据加载入库 

19./*+ dynamic_sampling(table_name n) */ 
设置sql执行时动态采用的级别,这个级别为0~10

20./*+ cache(table_name) */ 
进行全表扫描时将table置于LRU列表的最活跃端,类似于table的cache属性

21. /*+ HASH_SJ */   /*+ HASH_AJ */ 
通常使用在Exists,in 子查询中

22. /*+ use_concat */  /*+no_expand*/ 
or的扩展和不扩展

23./*+NOWRITE*/  
禁止对查询块的查询重写操作.  
/*+REWRITE*/  
按物化视图对语句进行重写

24. /*+MERGE(TABLE)*/   /*+NO_MERGE(TABLE)*/  
能够对视图的各个查询进行相应的合并.  

25. UNNEST 和 NO_UNNEST 
强制Oracle将子查询和主查询合并

26.NO_QUERY_TRANSFORMATION
跳过所有查询转换,包括OR操作转换、视图合并、子查询和主查询合并、星型转换、物化视图语句重写等。

27./*+push_subq(@tmp)*/ /*+QB_Name(tmp)*/
那么push_subq就是为了让子查询最先进行join。
select /*+push_subq(@tmp)*/ hao1.object_name from 
hao1,hao2,hao4
where hao1.object_name like '%a%'
and hao1.object_id+hao2.object_id>50
and hao4.object_type=hao1.object_type
and 11 in
(SELECT /*+QB_Name(tmp)*/ hao3.object_id FROM hao3 WHERE hao1.object_id = hao3.object_id);

28./*+push_pred(haoview)*/
接着,我们来使用这里的hint push_pred强制优化器将谓词merge进view中,可见到“VIEW PUSHED PREDICATE”:
select /*+push_pred(haoview)*/ hao3.object_name 
from hao3,haoview
where hao3.object_name=haoview.object_name(+)
and hao3.object_id=999;

29. /*+ pq_distribute */
提示通常被用于提升数据仓库中分区表间的连接操作性能。

30. CURSOR_SHARING_EXACT 
阻止Oracle将SQL语句中的常量替换为绑定变量.

31.DRIVING_SITE 
强制Oracle在SQL语句发起的另外一个节点上执行

32.DYNAMIC_SAMPLING 
强制Oracle进行动态统计数据采样,采样率参数为0到10,值越大,动态采样数据越多。

33.RESULT_CACHE NO_RESULT_CACHE 
强制Oracle将当前查询结果集缓存在RESULT CACHE中 

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/86573.html

(0)

相关推荐

  • 二项式展开式各项系数和,二项式系数的基偶二项式系数之和

    技术二项式展开式各项系数和,二项式系数的基偶二项式系数之和二项式系数的和的公式二项式展开式各项系数和:^二项式公式:(a+b)^n = nC0 a^n + nC1 a^5261(n-1)*b + nC(n-1) a*b

    生活 2021年10月24日
  • 通州运河公园,通州有特色的文化旅游地有什么

    技术通州运河公园,通州有特色的文化旅游地有什么通州的特色文化旅游这几个景点可以参考:1.历史名桥:八里桥又名永通桥通州运河公园。建于明正统十一年(一四四六年),南北走向,长三十米,宽十六米,桥两侧有三十三块护栏雕饰、三十

    生活 2021年10月30日
  • 免费刷粉网站推广,抖音怎么增加粉丝量?

    技术免费刷粉网站推广,抖音怎么增加粉丝量?免费刷粉网站推广,抖音怎么增加粉丝量?抖音视频一直都是很受大家欢迎的一个社交软件,不仅仅是刷抖音看作品,也有很多人在抖音上拍摄作品分享。分享抖音作品就得有点赞双击量,这样才能有人

    测评 2021年11月11日
  • 罗马数字0,在罗马数字中,零该怎么写

    技术罗马数字0,在罗马数字中,零该怎么写罗马数字起源于古罗马.一共有7个数字符:I,V,X,L,C,D,M
    相应的阿拉伯数字表示为:
    1,5,10,50,100,500,1000
    用罗马数字表示数时,如果几个相同的数字并

    生活 2021年10月26日
  • web前端与后端分离的架构实例分析

    技术web前端与后端分离的架构实例分析本篇内容主要讲解“web前端与后端分离的架构实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“web前端与后端分离的架构实例分析”吧

    攻略 2021年11月17日
  • K8S上备份和恢复应用的方法是什么

    技术K8S上备份和恢复应用的方法是什么本篇内容主要讲解“K8S上备份和恢复应用的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“K8S上备份和恢复应用的方法是什么”吧

    攻略 2021年11月15日