Alert Log 文件中记录的与性能有关的信息 ORA不能扩展临时段 ORA不能扩展表段 ORA不能扩展回滚段 ORA到达了表的最大的Extents 检查点未完成(Checkpoint not complete) 线程推进日志序列(Thread n Advanced to Log Sequence n) ORA快照过旧 后台跟蹤文件 自动生成 相关参数BACKUPGROUND_DUMP_DEST 事件跟蹤文件 设置后生成 相关参数EVENT BACKUPGROUND_DUMP_DEST USER_DUMP_DEST 用户跟蹤文件 相关参数SQL_TRACEUSER_DUMP_DEST MAX_DUMP_FILE_SIZE 激活用户跟蹤的三种方法 实例层次的跟蹤配置参数SQL_TRACE = TRUE | FALSE然后重启实例 用户层次的自行实置Alter session set sql_trace = true | false 用户层次的DBA设置Exec dbms_systemset_sql_trace_in_session(SID SERIAL# TRUE | FALSE) V$视图和DBA_视图 区别 V$视图通常是单数DBA视图通常是复数例如V$DATAFILE与DBA_DATA_FILES 当数据库处于Nomout或者Mount时许多V$视图已经是可用的而DBA视图必须在数据库处于Open时才可用 V$视图查询出来的数据多小写DBA视图查询出的数据通常大写所以在写WHERE条件时需特别小心 V$视图中包含的是自实例启动以来的动态数据在数据库关闭后会消失查询V$视图时必须关注时效性DBA视图中包含的是静态数据 V$视图的基表是X$表X$表是存在于内存中的虚表DBA视图的基表是数据字典表如SYSOBJ$ SYSFILE$等这两种基表都很少有文档 最常用的V$视图 表名 描述 V$SGASTAT 显示SGA组件大小的信息 V$EVENT_NAME 显示当前版本的所有等待事件 V$SYSTEM_EVENT 自实例启动已来的等待事件 V$SESSION_EVENT 目前连接会话的等待事件 V$SESSION_WAIT 目前连接会话正在发生的等待事件 V$STATNAME 显示当前版本的所有统计名称 V$SYSSTAT 自实例启动以来的统计 V$SESSTAT 目前连接会话的统计 V$SESSION 目前连接会话的信息 V$WAITSTAT 块竞争的统计 最常用的DBA视图(有些栏位的值需要分析表或索引后才会有值) 表名 描述 DBA_TABLES 表的存储统计等 DBA_INDEXES 索引的存储统计等 INDEX_STATS 索引的深度和键值的离散度等 DBA_DATA_FILES 数据文件的命名位置大小 DBA_SEGMENTS 段的相关信息 DBA_HISTOGRAMS 表索引的柱状图定义信息 Oracle 提供的脚本和包 下面提到的脚本都位于%ORACLE_HOME%\RDBMS\ADMIN目录下有些只需运行一次有些需要每次都运行 UTLBSTATSQL 和 UTLESTATSQL 这些脚本的功能绝大部分已被STATSPACK所取代 STATSPACK 配置STATSPACK在SQL*Plus下运行spcreatesql这个脚本运行时调用另外三个脚本(spcusrsqlspctabsqlspcpkgsql)运行过程中会询问perfstat方案的密码默认表空间和临时表空间可以通过这三个脚本的运行日志(spcusrlisspctablisspcpkglis)查看配置是否成功 perfstat方案的默认表空间需要有足够的空间来容纳目前的对象和将来的快照数据 查看日志如果发现有错误运行spdropsql来清除已创建的对象然后重新运行spcreatesql 配置成功后生成快照有两种方法手工运行exec statspacksnap; 运行spautosql脚本创建job来定时生成快照 生成性能报表运行spreportsql脚本脚本运行过程中要求输入三个参数开始快照号结束快照号报表名两次选择的快照号需要是在实例的一次运行期间的不同点的快照否则就没有参考意义 statspack报表含有各个方面的性能数据如何理解这些数据贯穿整本书 |