当前位置: 首页 > news >正文

Oracle 19C 数据字典 DBA_HIST_SEG_STAT 详细说明

1. 视图概述

DBA_HIST_SEG_STAT 是 Oracle 19C 中 AWR(Automatic Workload Repository,自动工作负载库)系列数据字典视图的重要组成部分,主要用于存储数据库段(Segment)级别的历史性能统计数据。这些数据来源于 AWR 快照,通过对该视图的分析,数据库管理员(DBA)可以追溯段的资源使用情况、性能变化趋势,定位因段设计不合理或使用不当导致的性能瓶颈,为段优化(如分区调整、索引重建、空间回收等)提供数据支撑。

与实时统计视图 V$SEGSTAT 相比,DBA_HIST_SEG_STAT 聚焦于历史数据,能够反映段在不同时间周期内的性能表现,适用于长期性能分析和问题回溯;而 V$SEGSTAT 则提供当前数据库实例中段的实时统计信息,更适合即时性能监控。

2. 基本信息

2.1 数据来源

该视图的数据来源于 AWR 快照。Oracle 数据库会按照预设的周期(默认每小时)生成 AWR 快照,将 V$SEGSTAT 等动态性能视图中的统计数据采样并存储到 AWR 基表中,DBA_HIST_SEG_STAT 视图则是对这些基表数据的封装和展示,其数据保留周期与 AWR 快照的保留期一致(默认 8 天,可通过 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS 过程调整)。

2.2 适用场景

  • 段级性能问题诊断:定位长期存在高 I/O、高竞争的段(如表、索引、LOB 段等)。

  • 容量规划与空间优化:分析段的空间增长趋势、读写频率,为存储分配和空间回收提供依据。

  • 优化效果验证:对比优化操作(如索引创建、段收缩)前后段的性能统计数据,评估优化效果。

  • 历史问题回溯:当数据库出现间歇性性能问题时,通过该视图查询对应时间窗口的段统计数据,定位根因。

2.3 权限要求

查询 DBA_HIST_SEG_STAT 视图需要具备以下权限之一:

  • SELECT ANY DICTIONARY 系统权限;

  • DBA 角色;

  • 被授予该视图的 SELECT 权限。

3. 核心字段说明

DBA_HIST_SEG_STAT 视图包含大量字段,涵盖段标识、快照信息、I/O 统计、空间统计、事务统计等维度,以下按功能分类介绍核心字段:

3.1 段标识字段(用于定位唯一段)

字段名

数据类型

说明

TS#

NUMBER

表空间编号,与 DBA_TABLESPACES 视图的 TS# 字段关联,用于定位段所在的表空间。

OBJ#

NUMBER

数据对象编号,与 DBA_OBJECTS 视图的 OBJECT_ID 字段关联,用于唯一标识数据库中的对象(如表、索引)。

DATAOBJ#

NUMBER

数据对象版本编号,当对象发生 truncate、闪回等操作时,DATAOBJ# 会变化,用于区分对象的不同版本。

OWNER

VARCHAR2(128)

段的所有者(用户),与 DBA_USERS 视图的 USERNAME 关联。

OBJECT_NAME

VARCHAR2(128)

段对应的对象名(如表名、索引名)。

OBJECT_TYPE

VARCHAR2(23)

对象类型,常见值包括 TABLE、INDEX、LOBSEGMENT、LOBINDEX 等。

TABLESPACE_NAME

VARCHAR2(30)

段所在的表空间名,与 DBA_TABLESPACES 视图的 TABLESPACE_NAME 关联,比 TS# 更直观。

3.2 快照关联字段(用于定位时间范围)

字段名

数据类型

说明

SNAP_ID

NUMBER

AWR 快照编号,唯一标识一次快照,与 DBA_HIST_SNAPSHOT 视图的 SNAP_ID 关联,用于确定统计数据的采集时间点。

DBID

NUMBER

数据库标识符,用于在 RAC 环境或多数据库环境中区分不同数据库,与 DBA_HIST_SNAPSHOT 的 DBID 一致。

INSTANCE_NUMBER

NUMBER

实例编号,在 RAC 环境中用于标识数据来自哪个数据库实例,与 DBA_HIST_SNAPSHOT 的 INSTANCE_NUMBER 关联。

BEGIN_INTERVAL_TIME

TIMESTAMP(3) WITH TIME ZONE

快照周期的开始时间,用于明确统计数据对应的时间范围起点。

END_INTERVAL_TIME

TIMESTAMP(3) WITH TIME ZONE

快照周期的结束时间,用于明确统计数据对应的时间范围终点,字段值与 DBA_HIST_SNAPSHOT 的 END_INTERVAL_TIME 一致。

3.3 I/O 相关统计字段(核心性能指标)

字段名

数据类型

说明

PHYSICAL_READS_TOTAL

NUMBER

快照周期内该段的物理读总数(单位:数据块),包括单块读和多块读,反映段的磁盘 I/O 负载,值过高可能意味着缓存命中率低或段访问频繁。

PHYSICAL_READS_DIRECT_TOTAL

NUMBER

快照周期内该段的直接物理读总数(单位:数据块),直接读通常用于大表扫描、并行操作等场景,过多直接读可能影响系统 I/O 性能。

PHYSICAL_WRITES_TOTAL

NUMBER

快照周期内该段的物理写总数(单位:数据块),反映段的数据修改频率,值过高可能与频繁的 INSERT/UPDATE/DELETE 操作相关。

PHYSICAL_WRITES_DIRECT_TOTAL

NUMBER

快照周期内该段的直接物理写总数(单位:数据块),常见于直接路径插入(如 INSERT /*+ APPEND */)等操作。

LOGICAL_READS_TOTAL

NUMBER

快照周期内该段的逻辑读总数(单位:数据块),包括从缓冲区缓存中读取的数据块,反映段的访问热度,逻辑读过高通常意味着段被频繁访问。

LOGICAL_WRITES_TOTAL

NUMBER

快照周期内该段的逻辑写总数(单位:数据块),即对缓冲区缓存中数据块的修改次数,与事务操作密切相关。

3.4 空间相关统计字段

字段名

数据类型

说明

SPACE_USED_TOTAL

NUMBER

快照周期内段使用的总空间(单位:字节),反映段的实际空间占用情况,需结合段的类型(如普通表、LOB 段)分析。

SPACE_ALLOCATED_TOTAL

NUMBER

快照周期内为段分配的总空间(单位:字节),包括已使用和未使用的空间,与表空间的存储参数(如 INITIAL、NEXT)相关。

EXTENTS_TOTAL

NUMBER

快照周期内段的总扩展段数,过多的扩展段可能导致段碎片,影响 I/O 性能,尤其是对于大表和索引。

3.5 事务与竞争相关字段

字段名

数据类型

说明

ROWS_INSERTED_TOTAL

NUMBER

快照周期内该段的插入行数,反映段的数据新增频率。

ROWS_UPDATED_TOTAL

NUMBER

快照周期内该段的更新行数,值过高可能意味着段存在频繁的修改操作,需关注索引有效性。

ROWS_DELETED_TOTAL

NUMBER

快照周期内该段的删除行数,大量删除可能导致段产生碎片,需考虑段收缩或重组。

BUFFER_BUSY_WAITS_TOTAL

NUMBER

快照周期内该段的缓冲区忙等待总数,是常见的性能竞争指标,通常由多个会话同时访问同一数据块导致。

ITL_WAITS_TOTAL

NUMBER

快照周期内该段的 ITL( Interested Transaction List,事务兴趣列表)等待总数,通常因数据块的 ITL 槽不足导致,需调整表的 INITRANS 或 MAXTRANS 参数。

4. 典型查询场景

4.1 场景 1:查询指定时间范围内表A的所有统计信息

以下通过实际 SQL 示例,展示 DBA_HIST_SEG_STAT 视图的常见使用场景,所有示例均结合 DBA_HIST_SNAPSHOT 视图获取时间信息,确保结果的时间维度准确性。

SELECT a.dbid,                                           -- 数据库标识符a.obj#,                                           -- 数据字典对象编号a.object_name,                                    -- 对象名称a.owner,                                          -- 对象所有者-- 逻辑I/O相关统计SUM(b.LOGICAL_READS_DELTA) AS LOGICAL_READS_DELTA,    -- 快照期间逻辑读次数(块数),高值可能表示全表扫描或低效索引SUM(b.BUFFER_BUSY_WAITS_DELTA) AS BUFFER_BUSY_WAITS_DELTA, -- 快照期间缓冲区忙等待次数,高值表示热点块竞争SUM(b.DB_BLOCK_CHANGES_DELTA) AS DB_BLOCK_CHANGES_DELTA,   -- 快照期间块修改次数(DML操作),反映DML活动强度-- 物理I/O相关统计SUM(b.PHYSICAL_READS_DELTA) AS PHYSICAL_READS_DELTA,       -- 快照期间物理读次数(块数),I/O负载主要指标SUM(b.PHYSICAL_WRITES_DELTA) AS PHYSICAL_WRITES_DELTA,     -- 快照期间物理写次数(块数),写操作强度SUM(b.PHYSICAL_READS_DIRECT_DELTA) AS PHYSICAL_READS_DIRECT_DELTA, -- 快照期间直接路径读次数(块数),并行查询/全表扫描绕过Buffer CacheSUM(b.PHYSICAL_WRITES_DIRECT_DELTA) AS PHYSICAL_WRITES_DIRECT_DELTA, -- 快照期间直接路径写次数(块数),直接负载插入操作-- 空间使用相关统计SUM(b.SPACE_USED_DELTA) AS SPACE_USED_DELTA,               -- 快照期间使用空间块数变化量,正数=增长,负数=收缩SUM(b.SPACE_ALLOCATED_DELTA) AS SPACE_ALLOCATED_DELTA,     -- 快照期间分配空间块数变化量,空间分配变化SUM(b.TABLE_SCANS_DELTA) AS TABLE_SCANS_DELTA,             -- 快照期间全表扫描次数,表访问模式分析-- 并发访问相关统计SUM(b.ROW_LOCK_WAITS_DELTA) AS ROW_LOCK_WAITS_DELTA,       -- 快照期间行锁等待次数,高值表示热点行更新竞争SUM(b.ITL_WAITS_DELTA) AS ITL_WAITS_DELTA,                 -- 快照期间ITL(事务槽)等待次数,INITRANS可能不足的指示-- RAC全局缓存相关统计SUM(b.GC_CR_BLOCKS_SERVED_DELTA) AS GC_CR_BLOCKS_SERVED_DELTA,   -- 快照期间服务给其他实例的一致性读块数,本实例作为提供者SUM(b.GC_CU_BLOCKS_SERVED_DELTA) AS GC_CU_BLOCKS_SERVED_DELTA,   -- 快照期间服务给其他实例的当前块数,当前块提供服务SUM(b.GC_CR_BLOCKS_RECEIVED_DELTA) AS GC_CR_BLOCKS_RECEIVED_DELTA, -- 快照期间从其他实例接收的一致性读块数,本实例作为消费者SUM(b.GC_CU_BLOCKS_RECEIVED_DELTA) AS GC_CU_BLOCKS_RECEIVED_DELTA, -- 快照期间从其他实例接收的当前块数,当前块消费SUM(b.gc_buffer_busy_delta) AS gc_buffer_busy_delta      -- 快照期间全局缓存忙块等待次数,全局缓存竞争指标FROM dba_hist_seg_stat_obj a
JOIN dba_hist_seg_stat b ON a.dbid = b.dbid AND a.obj# = b.obj# AND a.dataobj# = b.dataobj#
JOIN dba_hist_snapshot c ON b.snap_id = c.snap_id AND b.dbid = c.dbid AND b.instance_number = c.instance_number
WHERE a.object_name = 'A'AND c.begin_interval_time >= TO_DATE('20251103000000','yyyy-mm-dd hh24:mi:ss') AND c.end_interval_time <= TO_DATE('20251104000000','yyyy-mm-dd hh24:mi:ss')
GROUP BY a.dbid, a.obj#, a.owner, a.object_name
ORDER BY LOGICAL_READS_DELTA DESC;

5. 注意事项

  • 数据时效性限制:该视图的数据来源于 AWR 快照,若快照未开启(默认开启)或快照保留期过短,会导致历史数据缺失。需确保 AWR 快照配置合理(通过 DBA_HIST_WR_CONTROL 视图查看配置)。

  • 统计数据累积性:视图中的 _TOTAL 后缀字段为快照周期内的累积值,而非瞬时值。在进行跨快照对比时,需计算不同快照间的差值(如通过 LAG 函数),避免直接使用累积值导致分析误差。

  • RAC 环境适配:在 RAC 环境中,需通过 INSTANCE_NUMBER 字段区分不同实例的统计数据,若需获取整个集群的汇总数据,需按段标识字段聚合所有实例的数据。

  • 字段单位差异:部分字段单位为数据块(如 PHYSICAL_READS_TOTAL),部分为字节(如 SPACE_USED_TOTAL),分析时需统一单位(如通过 DB_BLOCK_SIZE 转换数据块为字节),避免单位混淆。

  • 对象名变更影响:若段的名称发生修改(如 ALTER TABLE RENAME),DBA_HIST_SEG_STAT 视图中存储的是快照采集时的对象名,查询历史数据时需结合 DBA_OBJECTS 的历史信息(如通过闪回查询)确认对象关联关系。

6. 关联视图扩展

为更全面地分析段的性能,DBA_HIST_SEG_STAT 通常需与以下视图配合使用:

  • DBA_HIST_SNAPSHOT:获取快照的时间信息,用于定位统计数据的时间范围。

  • DBA_OBJECTS:通过 OBJ# 关联,获取段的详细对象信息(如创建时间、状态)。

  • DBA_TABLESPACES:通过 TS# 或 TABLESPACE_NAME 关联,获取表空间的存储属性(如块大小、管理方式)。

  • DBA_HIST_SEG_STAT_OBJ:存储 DBA_HIST_SEG_STAT 视图中对象的补充信息,如分区表的分区编号等,适用于分区对象分析。

  • V$SEGSTAT:对比实时统计数据,验证历史数据的准确性或分析当前性能状态。

http://www.dtcms.com/a/601340.html

相关文章:

  • tsfile.raw提示
  • JAVA中六种策略模式的实现
  • 【ZeroRange WebRTC】TLS 底层原理与工作机制(深入解析)
  • 【论文阅读16】-LLM-TSFD:一种基于大型语言模型的工业时间序列人机回路故障诊断方法
  • 联想键盘失灵处理方法
  • 网站建设scyiyouhtml5模板之家
  • 做网站网络公司泉州住房建设局网站
  • 电子绕核运动为何不辐射能量、不坠入原子核?
  • RK3588核心板/开发板RT-Linux系统实时性及硬件中断延迟测试
  • 11. 函数极限
  • 死锁的本质:形成条件、检测机制与排查策略
  • Winform控件:RichTextBox
  • 大疆影石掰手腕,智能影像“跨界”内卷
  • 建设一个网站平台一款app的开发成本
  • 吴江城乡和住房建设局网站商务网站建设 模板
  • sparksql远程服务thriftserver.sh启停脚本
  • 非模板匹配目标识别算法
  • NLP基础(一)_简介
  • Spring AI Alibaba 学习之最简单的快速入门
  • 网站的总体结构网站代理软件
  • 设计循环队列 | C语言实现
  • 可以做淘宝推广的网站有哪些内容微信公众平台可以导入wordpress
  • 5.1 路由选择算法
  • 十八、文本预处理与基础技术
  • 巨 椰 云手机突破物理限制
  • java基础-继承练习
  • 寻花问柳一家专门做男人的网站1534939978姐的微信德惠市
  • 做网站的毕业设计博客网站制作
  • Java应用中,CPU 使用率过高​问题排查(手动用top+jstack或阿里Arthas)
  • k8s的包管理工具(5)--读取文件内容