Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
同时使用OracleCBO和OracleHint会产生什么影响?;_Oracle - Fatal编程技术网

同时使用OracleCBO和OracleHint会产生什么影响?;

同时使用OracleCBO和OracleHint会产生什么影响?;,oracle,Oracle,Oracle数据库版本11g 我用第一行设置了Oracle CBO参数优化器模式。 如果我在SQL中使用Hint ALL_行,会对第一行或所有行产生什么影响。 并且所有sql是否会对第一行或取决于Oracle DB将自动选择使用第一行或所有行的情况。语句提示覆盖会话设置,会话设置覆盖实例参数。理解这个优先级很重要,因为您希望尽可能具体地解决问题。如果您仅在一个会话或一条语句中遇到问题,请不要更改整个数据库的OPTIMIZER\u模式。否则,您可能会造成比您解决的问题更多的问题 您可以通过运行以下

Oracle数据库版本11g

我用第一行设置了Oracle CBO参数优化器模式。 如果我在SQL中使用Hint ALL_行,会对第一行或所有行产生什么影响。
并且所有sql是否会对第一行或取决于Oracle DB将自动选择使用第一行或所有行的情况。

语句提示覆盖会话设置,会话设置覆盖实例参数。理解这个优先级很重要,因为您希望尽可能具体地解决问题。如果您仅在一个会话或一条语句中遇到问题,请不要更改整个数据库的
OPTIMIZER\u模式。否则,您可能会造成比您解决的问题更多的问题

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

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;
然后比较这些语句的执行计划,并特别注意“大纲数据”部分中列出的提示:

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'));