### Oracle 10g动态性能视图详解####概述Oracle 10g动态性能视图是一系列系统管理视图,它们提供了数据库实例在运行时的各种实时状态信息。这些视图存储在系统全局区(SGA)内,并且是只读的。动态性能视图以`V$`开头,而为了支持多实例环境,还有一组名为`GV$`的视图,其功能与`V$`视图相同,但额外添加了`inst_id`列,用于标识不同的实例。 ####新增和更改的视图在Oracle 10g版本中,新增了一些动态性能视图,并对已有视图进行了修改。新添加的视图会在名称后标注"(10g)",而进行了变更的视图则会用"(*)"进行标记,这里的变更可能包括增加、重命名或删除列等操作。 #### V$视图接下来详细介绍部分重要的`V$`视图及其字段含义: 1. **V$DATABASE** - **FILENAME**:数据库文件名。 - **FILE#:**文件编号。 - **BLOCK#:**块编号。 - **CLASS#:**分类编号。 - **STATUS**:文件状态。 - **XNC**:未知。 - **FORCED_READS**:强制读取次数。 - **FORCED_WRITES**:强制写入次数。 - **LOCK_ELEMENT_ADDR**:锁元素地址。 - **LOCK_ELEMENT_NAME**:锁元素名称。 - **LOCK_ELEMENT_CLASS**:锁元素类别。 - **DIRTY**:脏页数量。 - **TEMP**:临时表空间使用情况。 - **PING**: PING计数器。 - **STALE**:陈旧数据块数量。 - **DIRECT**:直接路径读写次数。 - **NEW**:未知。 - **OBJD**:对象ID。 - **TS#**:表空间编号。 2. **V$SESSION** - **CR_REQUESTS**:请求的数量。 - **CURRENT_REQUESTS**:当前请求的数量。 - **DATA_REQUESTS**:数据请求的数量。 - **UNDO_REQUESTS**:回滚请求的数量。 - **TX_REQUESTS**:事务请求的数量。 - **CURRENT_RESULTS**:当前结果的数量。 - **PRIVATE_RESULTS**:私有结果的数量。 - **ZERO_RESULTS**:零结果的数量。 - **DISK_READ_RESULTS**:磁盘读取的结果数量。 - **FAIL_RESULTS**:失败的结果数量。 - **FAIRNESS_DOWN_CONVERTS**:公平性向下转换的数量。 - **FAIRNESS_CLEARS**:公平性清除的数量。 - **FREE_LOCK_ELEMENTS**:可用锁元素的数量。 - **FLUSHES**:冲刷次数。 - **FLUSHES_QUEUED**:排队等待冲刷的次数。 - **FLUSH_QUEUE_FULL**:冲刷队列满的次数。 - **FLUSH_MAX_TIME**:最大冲刷时间。 - **LIGHT_WORKS**:轻量级工作的数量。 - **ERRORS**:错误的数量。 3. **V$DB_CACHE_ADVICE** - **ID**:缓存建议的唯一标识符。 - **NAME**:缓存建议的名称。 - **BLOCK_SIZE**:块大小。 - **RESIZE_STATE**:缩放状态。 - **CURRENT_SIZE**:当前大小。 - **BUFFERS**:缓冲区数量。 - **TARGET_SIZE**:目标大小。 - **TARGET_BUFFERS**:目标缓冲区数量。 - **PREV_SIZE**:上一次大小。 - **PREV_BUFFERS**:上一次缓冲区数量。 - **LO_BNUM**:开始块编号。 - **HI_BNUM**:结束块编号。 - **LO_SETID**:开始集ID。 - **HI_SETID**:结束集ID。 - **SET_COUNT**:集计数。 4. **V$BUFFER_POOL_STATISTICS** - **ID**:缓冲池统计信息的唯一标识符。 - **NAME**:缓冲池的名称。 - **BLOCK_SIZE**:块大小。 - **SET_MSIZE**:设定的大小。 - **CNUM_REPL**:替换计数。 - **CNUM_WRITE**:写入计数。 - **CNUM_SET**:设置计数。 - **BUF_GOT**:获取缓冲区的计数。 - **SUM_WRITE**:写入总和。 - **SUM_SCAN**:扫描总和。 - **FREE_BUFFER_WAIT**:等待空闲缓冲区的时间。 - **WRITE_COMPLETE_WAIT**:等待写入完成的时间。 - **BUFFER_BUSY_WAIT**:缓冲区繁忙等待时间。 - **FREE_BUFFER_INSPECTED**:检查的空闲缓冲区数量。 - **DIRTY_BUFFERS_INSPECTED**:检查的脏缓冲区数量。 - **DB_BLOCK_CHANGE**:数据块更改计数。 - **DB_BLOCK_GETS**:数据块获取计数。 - **CONSISTENT_GETS**:一致性读取计数。 - **PHYSICAL_READS**:物理读取计数。 - **PHYSICAL_WRITES**:物理写入计数。 5. **V$QUEUE** - **QUEUE_ID**:队列ID。 - **QUEUE_SCHEMA**:队列模式。 - **QUEUE_NAME**:队列名称。 - **SENDER_NAME**:发送者名称。 - **SENDER_ADDRESS**:发送者地址。 - **SENDER_PROTOCOL**:发送者协议。 - **NUM_MSGS**:消息数量。 - **CNUM_MSGS**:消息计数。 - **LAST_ENQUEUED_MSG**:最后入队的消息。 6. **V$DEADLOCKS** - **QUEUE_ID**:队列ID。 - **QUEUE_SCHEMA**:队列模式。 - **QUEUE_NAME**:队列名称。 - **STARTUP_TIME**:启动时间。 - **NUM_MSGS**:消息数量。 - **SPILL_MSGS**:泄漏消息数量。 - **CNUM_MSGS**:消息计数。 - **CSPILL_MSGS**:泄漏消息计数。 7. **V$QUEUE_SUBSCRIBER** - **QUEUE_ID**:队列ID。 - **QUEUE_SCHEMA**:队列模式。 - **QUEUE_NAME**:队列名称。 - **SUBSCRIBER_ID**:订阅者ID。 - **SUBSCRIBER_NAME**:订阅者名称。 - **SUBSCRIBER_ADDRESS**:订阅者地址。 - **PROTOCOL**:协议。 - **SUBSCRIBER_TYPE**:订阅者类型。 - **STARTUP_TIME**:启动时间。 - **LAST_BROWSED_SEQ**:上次浏览的序列号。 - **LAST_BROWSED_NUM**:上次浏览的消息数量。 - **LAST_DEQUEUE**:最后出队的时间。 ####总结通过以上视图及其字段的介绍,可以看出Oracle 10g动态性能视图为DBA提供了一种强大的工具来监控数据库实例的状态。这些视图包含了关于数据库操作的重要信息,如文件状态、会话活动、缓存统计、缓冲池状态、队列状态以及死锁情况等。通过对这些视图的分析,DBA可以更好地理解数据库的行为,诊断性能问题并进行调优。此外,Oracle 10g中的新特性也通过这些视图得到了体现,从而帮助DBA更加高效地管理数据库。