yangtingkun
===========================================================
优化器提示——性能调整手册和参考
===========================================================

Hint是Oracle数据库灵活性的体现。由于Hint具有最高的优先级,因此可以通过Hint使优化器根据用户的需要来生成指定的执行计划。

Oracle的hint种类繁多,大致可以分为下面几类:

优化方式和目标:如RULE、CHOOSE、FIRST_ROWS、ALL_ROWS等。

访问路径:如INDEX、FULL、CLUSTER、INDEX_FFS等。

查询转换:如MERGE、USE_CONCAT、NO_EXPAND等。

连接顺序:如ORDERED和STAR。

连接操作:如USE_NL、USE_HASH、USE_MERGE等。

并行执行:如PARALLE、NOPARALLEL、PARALLEL_INDEX等。 

其他类型;如APPEND、UNNEST、CACHE等。

 


使用HINT的两种方式:/*+ HINT */和--+ HINT。

绝大部分HINT会在生效后自动将优化器模式转变为基于代价的方式。这可以用来检查HINT是否最终生效。

另外,根据我的测试,下列这些HINT在9204中不起作用,不清楚是Oracle本身的问题还是我的测试方式有问题:

EXPAND_GSET_TO_UNION;

UNNEST;

PUSH_PRED;

NO_PUSH_PRED;

NO_PUSH_SUBQ。

下面这些文章是对个别HINT的专门的描述:

RULE模式下NL_AJ和NL_SJ提示无效:http://blog.itpub.net/post/468/24686

通过USE_CONCAT提示想到的:http://blog.itpub.net/post/468/23527

奇怪的Cluster提示:http://blog.itpub.net/post/468/22342

 

 

yangtingkun 发表于:2005.04.16 23:23 ::分类: ( 读书笔记 ) ::阅读:(2361次) :: 评论 (0)

发表评论
标题

在此添加评论
表情符号: smile laughing tongue angry crying sad wassat wink

称呼

邮箱地址(可选)

个人主页(可选)

 authimage


切换风格
新闻聚合
博客日历
文章归档...
最新发表...
最新评论...
最多阅读文章...
最多评论文章...
博客统计...
Blog信息
网站链接...