
🗃️ Oracle 19C V$STATS_ADVISOR_FINDINGS 动态性能视图详解
1. 概述与核心作用
V$STATS_ADVISOR_FINDINGS 是 Oracle 19C 数据库中统计顾问(Stats Advisor)框架的核心诊断视图。该视图提供了统计顾问分析过程中发现的具体问题、异常和优化机会的详细信息,帮助DBA识别统计信息管理中的问题和改进点。
核心作用:
- 问题诊断:揭示统计信息相关的性能问题和异常情况
- 根本原因分析:提供统计信息问题的详细分析和根本原因
- 优化机会识别:发现统计信息收集和管理的优化机会
- 预防性检测:提前检测潜在的统计信息问题
2. 使用场景
- 统计信息问题诊断:当查询性能下降或执行计划不稳定时,使用此视图诊断统计信息相关问题
- 自动统计收集优化:优化DBMS_STATS自动统计收集任务的配置和策略
- 性能根本原因分析:分析性能问题的统计信息层面根本原因
- 数据库健康检查:定期检查统计信息健康状况
- 容量规划:评估统计信息管理所需的资源和优化需求
3. 字段含义详解
以下是 V$STATS_ADVISOR_FINDINGS 视图的主要字段及其含义:
| 字段名称 | 数据类型 | 含义说明 |
|---|---|---|
TASK_ID | NUMBER | 统计顾问任务的唯一标识符 |
TASK_NAME | VARCHAR2(128) | 统计顾问任务的名称 |
EXECUTION_NAME | VARCHAR2(128) | 任务执行的名称 |
EXECUTION_END | TIMESTAMP | 任务执行结束时间 |
FINDING_ID | NUMBER | 发现项目的唯一标识符 |
FINDING_NAME | VARCHAR2(64) | 发现项目的名称 |
FINDING_TYPE | VARCHAR2(16) | 发现类型:PROBLEM(问题),INFORMATION(信息),OPPORTUNITY(机会) |
IMPACT_TYPE | VARCHAR2(16) | 影响类型:PERFORMANCE(性能),ACCURACY(准确性),EFFICIENCY(效率) |
IMPACT_LEVEL | NUMBER | 影响级别(1-5),1为最严重 |
IMPACT_DESCRIPTION | VARCHAR2(4000) | 影响的详细描述 |
MESSAGE | VARCHAR2(4000) | 发现项目的详细消息 |
MORE_INFO | CLOB | 附加信息,通常包含详细的诊断数据 |
OBJECT_OWNER | VARCHAR2(128) | 相关对象的所有者 |
OBJECT_NAME | VARCHAR2(128) | 相关对象的名称 |
OBJECT_TYPE | VARCHAR2(32) | 对象类型:TABLE,INDEX,COLUMN,SCHEMA等 |
REASON | VARCHAR2(4000) | 问题产生的原因分析 |
STATUS | VARCHAR2(16) | 发现状态:NEW,REVIEWED,RESOLVED,IGNORED |
CREATED | TIMESTAMP | 发现创建时间 |
LAST_UPDATED | TIMESTAMP | 最后更新时间 |
CON_ID | NUMBER | 容器ID(多租户环境) |
4. 相关视图与基表
相关视图:
V$STATS_ADVISOR_ACTIONS:统计顾问建议的操作V$STATS_ADVISOR_RECOMMENDATIONS:统计顾问的推荐建议V$STATS_ADVISOR_TASKS:统计顾问任务信息DBA_ADVISOR_FINDINGS:更广泛的顾问发现信息DBA_OPTSTAT_OPERATIONS:统计操作历史DBA_TAB_STATISTICS:表统计信息
基表:
V$STATS_ADVISOR_FINDINGS 是基于内部数据字典表的视图,主要基表包括:
WRI$_ADV_FINDINGS:存储顾问发现信息WRI$_ADV_OBJECTS:存储顾问分析对象WRI$_ADV_RATIONALE:存储发现项目的原理和分析
5. 底层原理与工作机制
统计顾问分析框架
Oracle 统计顾问使用复杂的分析引擎来检测统计信息问题:
-
数据收集阶段:
- 收集统计信息使用情况数据
- 收集执行计划性能数据
- 收集统计信息质量指标
-
分析检测阶段:
- 使用规则引擎检测已知问题模式
- 应用机器学习算法识别异常模式
- 进行统计信息质量评估
-
问题分类阶段:
- 根据问题类型和影响程度进行分类
- 计算问题的影响评分
- 确定问题的根本原因
-
结果存储阶段:
- 将发现结果存储在内部表中
- 生成具体的建议和推荐
- 通过视图暴露分析结果
发现类型详解
-
PROBLEM(问题):
- 统计信息错误或缺失导致的性能问题
- 统计信息不准确导致的执行计划偏差
- 自动统计收集失败或异常
-
INFORMATION(信息):
- 统计信息使用情况的洞察
- 统计信息质量评估结果
- 统计信息管理的最佳实践提示
-
OPPORTUNITY(机会):
- 统计信息优化的改进机会
- 性能提升的潜在空间
- 资源利用的优化建议
6. 常用查询 SQL
1. 查看所有统计顾问发现
SELECT finding_name, finding_type, impact_level, message, created
FROM v$stats_advisor_findings
WHERE status = 'NEW'
ORDER BY impact_level DESC, created DESC;
2. 查看高影响级别的问题
SELECT finding_id, finding_name, object_owner, object_name, message, reason
FROM v$stats_advisor_findings
WHERE finding_type = 'PROBLEM'
AND impact_level <= 2
AND status = 'NEW'
ORDER BY impact_level, created;
3. 查看特定对象的发现
SELECT finding_name, finding_type, impact_level, message, reason
FROM v$stats_advisor_findings
WHERE object_owner = '&owner'
AND object_name = '&table_name'
AND status = 'NEW'
ORDER BY impact_level DESC;
4. 分析发现项目的统计信息
SELECT finding_type,
impact_level,
COUNT(*) finding_count,
AVG(impact_level) avg_impact,
MIN(created) first_found,
MAX(created) last_found
FROM v$stats_advisor_findings
WHERE status = 'NEW'
GROUP BY finding_type, impact_level
ORDER BY finding_type, impact_level;
5. 查看详细的发现信息
SELECT f.finding_name,
f.finding_type,
f.impact_level,
f.object_owner,
f.object_name,
f.message,
f.reason,
f.more_info
FROM v$stats_advisor_findings f
WHERE f.finding_type = 'PROBLEM'
AND f.impact_level <= 3
ORDER BY f.impact_level, f.created DESC;
6. 关联发现和建议
SELECT f.finding_name,
f.finding_type,
f.impact_level,
f.message,
a.action_type,
a.description as action_description,
a.command
FROM v$stats_advisor_findings f
JOIN v$stats_advisor_actions a ON f.task_id = a.task_id AND f.finding_id = a.attr1
WHERE f.status = 'NEW'
AND a.status = 'NEW'
ORDER BY f.impact_level DESC;
7. 关键知识点与注意事项
常见发现类型
-
缺失统计信息:
- 表或索引缺少统计信息
- 扩展统计信息缺失
- 系统统计信息不完整
-
过时统计信息:
- 统计信息严重过时
- DML操作导致统计信息失效
- 数据分布发生变化
-
统计信息不准确:
- 采样率不足导致的统计偏差
- 直方图信息不准确
- 基数估计错误
-
配置问题:
- 自动统计收集配置不当
- 统计偏好设置不合理
- 统计信息锁定问题
影响级别解读
- 1级(严重):导致严重性能问题或系统异常
- 2级(高):显著影响查询性能
- 3级(中):中等性能影响
- 4级(低):轻微性能影响
- 5级(信息):提供信息和建议
处理策略
- 立即处理:影响级别1-2的问题需要立即处理
- 计划处理:影响级别3的问题需要在维护窗口处理
- 监控观察:影响级别4-5的问题需要监控和观察
- 忽略处理:确认无关紧要的问题可以标记为忽略
最佳实践
- 定期查看统计顾问发现,建议每周至少一次
- 优先处理高影响级别的问题
- 在处理前备份相关统计信息
- 记录处理过程和结果,用于后续分析
- 结合AWR报告和SQL监控验证处理效果
通过深入理解和使用 V$STATS_ADVISOR_FINDINGS 视图,DBA可以 proactively 管理统计信息,预防性能问题,提高数据库的整体性能和稳定性。这个视图是Oracle自动统计管理框架的重要组成部分,为数据库性能优化提供了宝贵的洞察和建议。
欢迎关注我的公众号《IT小Chen》
1121

被折叠的 条评论
为什么被折叠?



