oracle性能视图

30秒前 504阅读

1. DBA_HIST_SQLSTAT

包含了数据库运行过程中收集的所有SQL语句的执行统计信息。每个SQL语句在AWR快照期间的执行次数、CPU时间、执行时间、缓冲区获取数量、磁盘读写量等关键性能指标都会被记录在这里。通过分析DBA_HIST_SQLSTAT,数据库管理员可以识别出执行效率低下的SQL语句,进而进行SQL优化或调整数据库参数设置,以提高整体系统性能。它通常与DBA_ADVISOR_SQLACCESS_ADVICE等视图结合使用,以便获得更具体的改进建议

2. DBA_HIST_SNAPSHOT

此视图存储了AWR快照的信息。AWR快照是Oracle数据库在特定时间点对系统性能状态的全面记录,包括系统全局区(SGA)的状态、活动会话、等待事件等。通过定期采集这些快照(默认每小时一次,但可配置),DBA_HIST_SNAPSHOT提供了时间序列上的数据库性能基线。管理员可以比较不同时间点的快照数据,来分析性能变化趋势,诊断性能问题发生的具体时间点,或者评估性能调整措施的效果。此视图中的数据对于理解数据库随时间的行为模式至关重要

3.V$ACTIVE_SESSION_HISTORY(ash)

V$ACTIVE_SESSION_HISTORY视图在Oracle数据库中起到了至关重要的性能监控和诊断作用。这个视图记录了数据库中所有活动会话的最近活动历史。具体来说,它的主要作用包括:
性能诊断:通过分析V$ACTIVE_SESSION_HISTORY视图中的数据,数据库管理员可以识别出哪些SQL语句、会话或进程导致了性能瓶颈。这有助于快速定位并解决数据库性能问题,比如长时间运行的查询、等待事件等。
趋势分析:由于V$ACTIVE_SESSION_HISTORY保存了一段时间内的会话活动信息,因此可以通过分析这些历史数据来发现系统使用趋势、峰值负载时段等,为系统调优和容量规划提供依据。
AWR报告基础:Automatic Workload Repository (AWR) 报告是Oracle提供的一个强大的性能分析工具,而V$ACTIVE_SESSION_HISTORY是生成AWR报告的重要数据来源之一。AWR报告基于ASH数据,能够详细展示数据库在特定时间间隔内的性能统计信息和等待事件,帮助进行深入的性能分析。
即时问题分析:在遇到数据库响应慢或挂起的情况时,查看V$ACTIVE_SESSION_HISTORY可以立即了解到当前哪些会话正在执行,它们的状态、正在执行的SQL以及等待的资源,这对于迅速诊断并解决即时性能问题非常有帮助。
SQL调优:通过分析ASH数据,可以识别出执行效率低下的SQL语句,进而对这些SQL进行优化,提高整体数据库性能。

4.V$SQL

此视图展示了SQL语句的执行统计信息,如执行次数、解析次数、缓冲区得到次数、错误次数等,帮助DBA了解SQL的执行情况和效率
select sq.SQL_ID,
       sq.EXECUTIONS,
       sq.ELAPSED_TIME,
       sq.CPU_TIME / 1000 / 1000 s
  from v$sql sq
 order by sq.CPU_TIME desc;

5.v$sqlstats

V$SQLSTATS包含了每一个被执行的SQL语句的统计信息,包括执行次数、CPU时间、执行计划的改变次数、缓冲区得到次数、磁盘读取次数、直接读取次数、行锁定次数、内存使用量等。
监控性能:通过查询V$SQLSTATS,可以监控SQL的执行效率,找出执行时间长、占用资源多的SQL,进一步进行性能调优。
识别热点SQL:结合执行次数和执行时间,可以快速识别出系统中的“热点”SQL,这些SQL可能是性能瓶颈的来源。
优化依据:它是进行SQL优化的重要依据。通过对执行计划、执行时长等数据的分析,可以决定是否需要重新编写SQL语句或调整索引策略。
SELECT 
    sql_id, 
    executions, 
    elapsed_time / 1000000 "Elapsed Time (s)", 
    cpu_time / 1000000 "CPU Time (s)",
    buffer_gets, 
    disk_reads,
    rows_processed
FROM 
    v$sqlstats
WHERE 
    executions > 0
ORDER BY 
    elapsed_time DESC;
这个查询会返回按照总耗时降序排列的所有执行过的SQL语句的统计信息,包括执行次数、总耗时(秒)、CPU时间(秒)、缓冲区获取次数、磁盘读取次数以及处理的行数,帮助快速识别出消耗资源最多的SQL语句。

6.其他

dba_hist_active_sess_history/v$active_session_history查看SQL执行历史情况
v$session_wait/v$session_event查看数据库会话的等待事件
v$sga_target_advice数据库sga优化顾问视图
v$pga_target_advice数据库pga优化顾问视图
v$memory_target_advice内存优化顾问视图
dba_data_files查询表空间和对应数据文件
v$session_longops可以查询一个SQL语句执行了多长时间以及还要执行多长时间
v$fast_start_transactions/v$fast_start_servers可以查看所有回滚的事务
v$log视图可以查找到联机重做日志的日志序列号v$archived_log视图或
v$log_history视图中可以查找给定的归档重做日志的日志序列号
user_tab_columns视图将显示当前用户模式下的每张表的每一列的详细数据情况
gv$memory_dynamic_components记录内存变更的视图
gv$sql_monitor SQL监视视图
dba_tab_statistics表的信息统计
1. 查看快照生成时间
   SELECT snap_id,
       TO_CHAR(begin_interval_time, 'YYYY-MM-DD HH24:MI:SS') AS start_time,
       TO_CHAR(end_interval_time, 'YYYY-MM-DD HH24:MI:SS') AS end_time
  FROM dba_hist_snapshot
 ORDER BY begin_interval_time DESC;
SELECT snap_id,
       TO_CHAR(begin_interval_time, 'YYYY-MM-DD HH24:MI:SS') AS start_time,
       TO_CHAR(end_interval_time, 'YYYY-MM-DD HH24:MI:SS') AS end_time
  FROM dba_hist_snapshot
 WHERE begin_interval_time >=
       TO_DATE('2023-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
   AND end_interval_time 

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]