首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同时使用Oracle CBO和Oracle提示会有什么影响?

同时使用Oracle CBO和Oracle提示会有什么影响?
EN

Stack Overflow用户
提问于 2021-05-14 14:58:05
回答 1查看 40关注 0票数 2

Oracle数据库版本11g。

我用FIRST_ROWS_10设置了Oracle CBO参数OPTIMIZER_MODE,如果我在SQL中使用Hint ALL_ROWS,会对FIRST_ROWS_10或ALL_ROWS产生什么影响。是否所有的sql效果与FIRST_ROWS_10或取决于情况甲骨文数据库将自动选择使用FIRST_ROWS_10或ALL_ROWS。

EN

回答 1

Stack Overflow用户

发布于 2021-05-15 11:33:58

语句提示覆盖会话设置,会话设置覆盖实例参数。理解这个优先级是很重要的,因为您希望尽可能具体地解决问题。如果只有一个会话或一条语句有问题,请不要更改整个数据库的OPTIMIZER_MODE。否则,你可能会制造比你解决的更多的问题。

您可以通过运行以下命令的不同组合来测试优先级:

代码语言:javascript
复制
alter system set optimizer_mode=first_rows_10;
alter session set optimizer_mode=first_rows_10;
select /*+ first_rows_10 */ * from dual;

alter system set optimizer_mode=all_rows;
alter session set optimizer_mode=all_rows;
select /*+ all_rows */ * from dual;

然后比较这些语句的执行计划,并特别注意“大纲数据”部分中列出的提示:

代码语言:javascript
复制
explain plan for select * from dual;
select * from table(dbms_xplan.display(format => '+outline'));

explain plan for select /*+ all_rows */ * from dual;
select * from table(dbms_xplan.display(format => '+outline'));

explain plan for select /*+ first_rows(10) */ * from dual;
select * from table(dbms_xplan.display(format => '+outline'));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67530224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档