查询统计信息sql(表、索引、列-histogram)

本文深入探讨了SQL查询中如何获取和分析统计信息,包括表的统计信息、索引详细数据以及列的分布情况,特别是列的Histogram,这对于优化查询性能和理解数据分布至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--1、表的统计信息:1,表行数,使用的块数,空的块数,块的使用率,行迁移和链接的数量,pctfree,pctused的数据,行的平均大小

SELECT T.TABLE_NAME,
       BLOCKS, --表中数据所占的数据块数
       EMPTY_BLOCKS, --表中的空块数
       AVG_SPACE, --数据块中平均的使用空间
       CHAIN_CNT, --表中行连接和行迁移的数量
       AVG_ROW_LEN, --每条记录的平均长度
       T.NUM_ROWS --行数
  FROM USER_TABLES T;

--2、索引的统计信息 1,索引的深度(B-Tree的级别),索引叶级的块数量,集群因子(clustering_factor), 唯一值的个数

SELECT T1.INDEX_NAME,
       T1.INDEX_TYPE,
       T1.TABLE_OWNER,
       T1.TABLE_NAME,
       BLEVEL, --索引的层数
       LEAF_BLOCKS, --叶子结点的个数
       DISTINCT_KEYS, --唯一值的个数
       AVG_LEAF_BLOCKS_PER_KEY, --每个KEY的平均叶块个数 
       AVG_DATA_BLOCKS_PER_KEY, --每个KEY的平均数据块个数
       CLUSTERING_FACTOR --群集因子
  FROM USER_INDEXES T1;

--3、列的统计信息 1,唯一的值个数,列最大小值,密度(选择率),数据分布(直方图信息),NUll值个数
SELECT TT.TABLE_NAME,
       TT.COLUMN_NAME,
       NUM_DISTINCT, --唯一值的个数(histogram)
       NUM_BUCKETS, --直方图的BUCKET个数(histogram)
       HISTOGRAM, --直方图的类型
       LOW_VALUE, --列上的最小值
       HIGH_VALUE, --列上的最大值
       DENSITY, --选择率因子(密度)
       NUM_NULLS --空值的个数
  FROM USER_TAB_COLUMNS TT;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值