我运行“execute DBMS_STATS.GATHER_SCHEMA_STATS('my_schema_name',100);而我看到的输出是“PL/SQL过程成功完成”。在哪里可以看到此过程收集的实际统计数据?我希望看到这个存储过程收集的模式统计信息,但我只看到了确认它成功完成的文本。
mrzz3bfm1#
dbms_stats.gather_schema_stats收集整个模式中所有陈旧表和索引段的统计信息,因此如果要显示这些信息,就不可能消化这些信息。此外,收集统计信息的目的不是为了供人使用,而是为了用元数据武装优化器,优化器需要对来自对象访问和连接的基数(行数)进行合理的预测,以便制定良好的执行计划。它主要是供甲骨文使用的,不是我们的。话虽如此,手动检查统计信息对于调试优化器可能为您试图优化的某些性能较差的SQL做出的错误执行计划决策非常有用。在这种情况下,通过查询各种视图可以看到:dba_tab_statistics将显示表级、分区和子分区表统计信息。dba_tab_col_statistics将显示列级统计信息dba_tab_histograms将显示可能已为某些列收集的直方图桶。dba_ind_statistics将显示索引、分区和子分区索引统计信息。如果您喜欢这样看的话,这些数据中的一部分也会连接到各种段级对象视图中并在其中公开(dba_tables, dba_tab_partitions, dba_tab_subpartitions, dba_indexes, dba_ind_partitions, dba_ind_subpartitions, dba_columns/dba_tab_cols等)。
dbms_stats.gather_schema_stats
dba_tab_statistics
dba_tab_col_statistics
dba_tab_histograms
dba_ind_statistics
dba_tables, dba_tab_partitions, dba_tab_subpartitions, dba_indexes, dba_ind_partitions, dba_ind_subpartitions, dba_columns/dba_tab_cols
1条答案
按热度按时间mrzz3bfm1#
dbms_stats.gather_schema_stats
收集整个模式中所有陈旧表和索引段的统计信息,因此如果要显示这些信息,就不可能消化这些信息。此外,收集统计信息的目的不是为了供人使用,而是为了用元数据武装优化器,优化器需要对来自对象访问和连接的基数(行数)进行合理的预测,以便制定良好的执行计划。它主要是供甲骨文使用的,不是我们的。话虽如此,手动检查统计信息对于调试优化器可能为您试图优化的某些性能较差的SQL做出的错误执行计划决策非常有用。在这种情况下,通过查询各种视图可以看到:
dba_tab_statistics
将显示表级、分区和子分区表统计信息。dba_tab_col_statistics
将显示列级统计信息dba_tab_histograms
将显示可能已为某些列收集的直方图桶。dba_ind_statistics
将显示索引、分区和子分区索引统计信息。如果您喜欢这样看的话,这些数据中的一部分也会连接到各种段级对象视图中并在其中公开(
dba_tables, dba_tab_partitions, dba_tab_subpartitions, dba_indexes, dba_ind_partitions, dba_ind_subpartitions, dba_columns/dba_tab_cols
等)。