Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/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
Oracle:导入表的统计信息后,优化器将使用动态采样_Oracle_Optimization_Rdbms - Fatal编程技术网

Oracle:导入表的统计信息后,优化器将使用动态采样

Oracle:导入表的统计信息后,优化器将使用动态采样,oracle,optimization,rdbms,Oracle,Optimization,Rdbms,下面是我为scott.emp表所做的步骤 从emp中选择*,其中empno>7503 select*from表(dbms\u xplan.display\u光标) exec DBMS_STATS.GATHER_TABLE_STATS('scott','EMP') 从emp中选择*,其中empno>7503。 select*from表(dbms\u xplan.display\u光标) 导出表统计信息 清理实例并启动新实例 导入表统计信息 选择NUM_行、上次分析、全局统计、用户统计,从用户统计

下面是我为
scott.emp
表所做的步骤

  • 从emp中选择*,其中empno>7503

  • select*from表(dbms\u xplan.display\u光标)

  • exec DBMS_STATS.GATHER_TABLE_STATS('scott','EMP')

  • 从emp中选择*,其中empno>7503。

  • select*from表(dbms\u xplan.display\u光标)

  • 导出表统计信息

  • 清理实例并启动新实例
  • 导入表统计信息
  • 选择NUM_行、上次分析、全局统计、用户统计,从用户统计选项卡中选择用户统计,其中表_name='EMP'

     14 28-SEP-16 YES NO
    
  • 从emp中选择*,其中empno>7503。

  • select*from表(dbms\u xplan.display\u光标)
  • 为什么即使表中有统计信息,也要使用动态采样?我们需要在导入统计数据后触发什么吗?
    为什么优化器在第一次收集统计数据后不使用动态采样(步骤5)?

    找到了原因。在步骤8中,我只导入表统计信息。若我们导入数据库统计、系统统计、字典统计,那个么优化器就不会进行动态采样

    优化器规则:如果优化器没有/没有足够的统计数据,那么它将尝试进行采样


    因此,要模拟执行计划,需要导入所有统计数据。

    了解原因。在步骤8中,我只导入表统计信息。若我们导入数据库统计、系统统计、字典统计,那个么优化器就不会进行动态采样

    优化器规则:如果优化器没有/没有足够的统计数据,那么它将尝试进行采样


    因此,要模拟执行计划,需要导入所有统计数据。

    数据库的哪个版本?第7步到底意味着什么?您在第8步中导入了哪些统计数据?表emp是否已分区,是否有值7503的分区统计信息?你能发布完整的执行计划吗?在7中,卸载并重新安装了数据库。在第8章中,我只导入了表统计数据。没有一个表是不分区的。谢谢@stefan我知道为什么DS被优化器选中并在答案部分发布了相同的内容。是12c数据库吗?这是由12c特性“自适应执行计划”触发的新特性。是的,它是12c数据库。但要求不同,我需要在导入统计数据后匹配执行计划。数据库的哪个版本?第7步到底意味着什么?您在第8步中导入了哪些统计数据?表emp是否已分区,是否有值7503的分区统计信息?你能发布完整的执行计划吗?在7中,卸载并重新安装了数据库。在第8章中,我只导入了表统计数据。没有一个表是不分区的。谢谢@stefan我知道为什么DS被优化器选中并在答案部分发布了相同的内容。是12c数据库吗?这是由12c特性“自适应执行计划”触发的新特性。是的,它是12c数据库。但要求不同,我需要在导入统计数据后匹配执行计划。
    -- No Dynamic sampling used --
    
     14 28-SEP-16 YES NO
    
     Note
     -----
       - dynamic statistics used: dynamic sampling (level=2)**