关于特定表的实时统计信息oracle 19c

问题描述 投票:0回答:1

Reg实时统计信息,它扩展了在线统计信息的收集(12c),还包括常规的DML语句。实时统计信息可帮助优化器生成更优化的计划。而大容量装载操作会收集所有必要的统计信息,而实时统计信息则会增加而不是取代传统统计信息。

Oracle引入了新参数

_optimizer_gather_stats_on_conventional_dml_optimizer_use_stats_on_conventional_dml,默认情况下为true,_optimizer_stats_on_conventional_dml_sample_rateat 100%

实时统计如何工作?

默认情况下,_optimizer_gather_stats_on_conventional_dml为true,因此它会自动启动

[当DML操作当前正在修改表(常规)时,如果启用了以上参数,则Oracle数据库将动态计算最基本统计信息的值。

考虑一个示例,该示例具有大量插入,并且行正在增加。当插入行时,实时统计信息会跟踪不断增加的行数。如果优化器对新查询执行硬解析,则优化器可以使用实时统计信息来获得更准确的成本估算。

[USER_TAB_COL_STATISTICSUSER_TAB_STATISITICS]的列注说明已使用实时统计信息。 “ STATS_ON_CONVENTIONAL_DML”。

执行计划显示

|Id| Operation                        | Name|Rows|Bytes|Cost (%CPU)|Time| Pstart|Pstop|
---------------------------------------------------------------------------------------
| 0| INSERT STATEMENT                 |     |    |     |910 (100)|        |     |     |
| 1|  LOAD TABLE CONVENTIONAL         |SALES|    |     |         |        |     |     |
| 2|   OPTIMIZER STATISTICS GATHERING |     |918K|  25M|910   (2)|00:00:01|     |     |
| 3|    PARTITION RANGE ALL           |     |918K|  25M|910   (2)|00:00:01|   1 |  28 |
| 4|     TABLE ACCESS FULL            |SALES|918K|  25M|910   (2)|00:00:01|   1 |  28 |

Also the explain plan in the query used will tell in note section
    Note

    -----
    - dynamic statistics used: stats for conventional DML

[LOAD TABLE CONVENTIONALOPTIMIZER STATISTICS GATHERING是已添加到此新功能说明计划的新参数。

我的问题是,我们可以仅对特定的一组表应用实时统计信息吗?如果可以,我们如何实现它们? ,因为我们知道要获取发生的任何dml操作的实时统计数据的行数超过数十万,这是非常昂贵的操作

我试图找出方法,但是没有成功

oracle performance-testing query-performance database-administration oracle19c
1个回答
0
投票

动态统计信息和实时统计信息不同。

根据licensing guide,仅在Exadata上提供实时统计信息:您不能在常规Entreprise Edition数据库上获得实时统计信息。

您是否有可用的Exadata系统?如果否,则无法测试此功能。

© www.soinside.com 2019 - 2024. All rights reserved.