- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle HINT 说明.pdf
Optimization Goals and Approaches
ALL_ROWS Hint
ALL_ROWS 指示优化器以全局最佳吞吐量为目的对语句进行优化,即达成最低的资源消
耗总量。例如,优化器使用查询优化方法把以下语句优化为最佳吞吐量。
SELECT /*+ ALL_ROWS */ employee_id, last_name, salary, job_id
FROM employees
WHERE employee_id = 107;
如果你在SQL 语句中指定了ALL_ROWS 或者FIRST_ROWS 标签,而且数据字典中没有语
句访问表的统计信息,优化器会使用默认的统计值,比如根据已经分配给表的储存,估计缺
少的统计信息,之后再选择一个执行计划。这些估计值一般不如使用DBMS_STATS 包收集的
信息准确,所以建议使用DBMS_STATS 包来收集统计信息。
如果你使用ALL_ROWS 或者FIRST_ROWS 标签指定了访问路径或者联接操作,优化器会
优先使用被标签指定的访问路径或者联接操作。
FIRST_ROWS Hint
FIRST_ROW 标签指示 Oracle 为快速响应而优化语句,选择可以最快返回前 n 行的执行
计划。Integer 指定返回的行数。
例如,优化器使用查询优化方法来优化以下语句来使其达到最佳响应时间:
SELECT /*+ FIRST_ROWS(10) */ employee_id, last_name, salary, job_id
FROM employees
WHERE department_id = 20;
在这个例子中,每个部门都包含了多个员工,用户希望可以尽快显示部门 20 的前 10
个员工。
优化器会在 DELETE 语句与 UPDATE 语句中忽略这个提示,也会在包含一种阻塞操作的
SELECT 语句中忽略这个提示。阻塞操作即排序以及分组等。这些操作不能被优化为最佳响
应时间,因为 Oracle 数据库必须在返回结果集的第一行之前访问所有被该语句访问的行。
如果你在任何这类语句中指定了这个提示,数据库会把该语句优化为最佳吞吐量。
另请参见:ALL_ROWS Hint 来获得更多的信息。
Access Path Hints
CLUSTER Hint
CLUSTER 提示指示优化器使用集群扫描来访问指定的表,这个提示只适用于属于索引聚
簇中的表。
FULL Hint
FULL 提示指示优化器对一个指定的表进行全表扫描。例如:
SELECT /*+ FULL(e) */ employee_id, last_name
FROM hr.employees e
WHERE last_name LIKE :b1;
即使WHERE 子句指定的LAST_NAME 列上有可用的索引,Oracle 数据库仍然会通过在表
employees 上执行一个全表扫描来执行该语句。
Employees 在FROM 子句中指定了别名e,所以提示必须参照表的别名而不是本身的名
字。即使模式名在FROM 子句中已经被指定了,也不要在提示中指定模式名。
HASH Hint
HASH 提示指示优化器使用哈希扫描来访问指定的表,这个提示仅适用于处于哈希聚簇
中的表。
INDEX Hint
INDEX 提示指示优化器使用索引扫描来访问指定的表。你可以为基于函数的索引,域索
引,B 树索引,位图索引以及位图联接索引来使用INDEX 提示。
提示的具体行为取决于INDEXSPEC 的具体指定:
· 如果INDEX 提示指定了一个单一并且可用的索引,数据库会执行在该索引上的一个
扫描,优化器不会考虑全表扫描或者扫描表上的另一个索引。
· 对于一个包含多个索引的组合的 INDEX 提示,Oracle 建议使用 INDEX_COMBINE 而
不是INDEX 提示,那是一个更加灵活的提示。如果INDEX 提示指定了一个可用索引
的列表,优化器会考虑在列表中的每一个索引扫描所需要的成本,然后执行成本最
低的索引扫描。如果扫描列表中的多个索引然后合并结果有最小的成本,数据库也
会使用这样的访问路径。数据库不会考虑全表扫描或者对不在I
您可能关注的文档
最近下载
- 卵巢癌的护理查房.pptx VIP
- 初中物理新沪科版八年级全册绪论 打开物理世界的大门新课教案2025秋.doc VIP
- 机载火控雷达典型工作模式分析.docx
- 突发公共卫生事件应急处理措施有哪些.docx VIP
- 最新人教版小学数学六年级上册《1.2一个数乘分数的意义》优质教学课件.pptx VIP
- 《税费核算与智能申报》课件 中职 学习情境5--7 个人所得税核算与智能申报、 财产和行为税核算与智能申报 社保金及住房公积金核算与智能申报 .pptx
- 蚀刻速率的影响因素及操作.pptx VIP
- 古埃及文明探秘.docx VIP
- 《基于区块链的生活垃圾焚烧飞灰处理系统技术规范》.pdf VIP
- GB2811-2019头部防护 安全帽.docx VIP
文档评论(0)