Oracle 19中收集完模式统计信息后如何查看统计结果?
查看Oracle模式统计数据的方法
执行DBMS_STATS.GATHER_SCHEMA_STATS后,统计信息会存储在Oracle的数据字典视图中,可通过以下核心视图查询:
表级统计信息
- 使用
DBA_TABLES(或ALL_TABLES/USER_TABLES,根据权限选择)获取表的基础统计:SELECT table_name, num_rows, blocks, avg_row_len, last_analyzed FROM DBA_TABLES WHERE owner = 'MY_SCHEMA_NAME'; DBA_TAB_STATISTICS提供更详细的表统计维度,包括统计类型、锁定状态:SELECT table_name, num_rows, blocks, stattype_locked, last_analyzed FROM DBA_TAB_STATISTICS WHERE owner = 'MY_SCHEMA_NAME';
列级统计信息
通过DBA_TAB_COL_STATISTICS查看列的基数、直方图、空值数量等细节:
SELECT table_name, column_name, num_distinct, num_nulls, histogram, last_analyzed FROM DBA_TAB_COL_STATISTICS WHERE owner = 'MY_SCHEMA_NAME';
索引级统计信息
DBA_INDEXES可获取索引的行数、叶子块数等基础信息:SELECT index_name, table_name, num_rows, leaf_blocks, last_analyzed FROM DBA_INDEXES WHERE owner = 'MY_SCHEMA_NAME';DBA_IND_STATISTICS包含更全面的索引统计数据:SELECT index_name, table_name, num_rows, leaf_blocks, stattype_locked, last_analyzed FROM DBA_IND_STATISTICS WHERE owner = 'MY_SCHEMA_NAME';
权限提示
- 若你是目标模式的所有者,使用
USER_*前缀的视图(如USER_TABLES)无需额外权限; - 若需查询其他模式的统计数据,需要拥有
SELECT_CATALOG_ROLE角色或对应数据字典视图的查询权限。
内容的提问来源于stack exchange,提问作者Jeff LaTourette
相关产品推荐
相关产品推荐

