oracle收集分区表统计信息,分区表应该怎么收集统计信息

本文探讨了在Oracle数据库中遇到的分区表统计信息收集问题,主要关注于`DISTINCT_KEYS`字段的正确计算。通过查询`DBA_INDEXES`和`DBA_IND_PARTITIONS`表发现,当分区数据量较大时,`sample_size`并未随着数据增加而增长,导致`DISTINCT_KEYS`统计不准确。实际解决方法是通过直接计算分区内的唯一值来获取正确的`DISTINCT_KEYS`数量。
摘要由CSDN通过智能技术生成

SELECT INDEX_NAME "NAME", NUM_ROWS, DISTINCT_KEYS "DISTINCT",

LEAF_BLOCKS, CLUSTERING_FACTOR "CF", BLEVEL "LEVEL",sample_size,LAST_ANALYZED,

AVG_LEAF_BLOCKS_PER_KEY "ALFBPKEY"

FROM DBA_INDEXES

WHERE OWNER = 'USER1' AND TABLE_NAME IN ('TB_1')

ORDER BY TABLE_NAME,INDEX_NAME;

SELECT INDEX_NAME "NAME", NUM_ROWS, DISTINCT_KEYS "DISTINCT",

LEAF_BLOCKS, CLUSTERING_FACTOR "CF", BLEVEL "LEVEL",sample_size,LAST_ANALYZED,

AVG_LEAF_BLOCKS_PER_KEY "ALFBPKEY"

FROM dba_ind_partitions

WHERE INDEX_OWNER = 'USER_1'

ORDER BY INDEX_NAME;

我之前查的sample_size是从这两个表出来的,都不正确。

distinct_keys的正确数值我是这样查的:

select count(*) from (select distinct index_col1 from tb_1 where index_col1 is not null)

表结构简单的如下:

QL>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值