一、确定问题
二、量化问题并注意所有异常因素
1. 程序是否曾经正常工作过?是始终运行得不好,还是刚开始这样?是什么时侯开始发现问题的?
2. 程序返回预期的结果,还是异常终止?
3. 哪些用户抱怨?
4. 所使用的是什么用户登录?
5 应用程序在延迟期间试图执行什么?
6. 连接到了什么服务器或数据库
7. 所使用数据库版本是什么?
8. 连接是远程的还是本地的?
9. 是否涉及到多个数据库?
A. 是否只有一组用户遇到问题?
B. 程序有没有任何改动?
二、量化问题并注意所有异常因素
1. 检查基本信息
. 检查所查询数据库的警告日志。注意观察所有异常的错误消息,比如空间或回滚问题2. 有无错误消息
. 检查关于空间错误的其他线索
. 确定没有达到文件的AUTOEXETEND限制
. 确定文件的日志文件系统没有达到最大值
. 确定没有达到最大用户数
. 确定包含listener.log的文件系统没有达到最大值
. 确定生成了统计数据
3. 在控制环境下重新运行应用程序(使用会话跟踪)
4. 检查应用程序运行日志
5. 查询v$sql视图以找到对应的SQL语句
6. 监视活动和非活动会话
7. 需要注意的问题:
>> 查询延迟了多长时间?
>> 消耗了多少CPU时间?
>> 进行了多少次磁盘读取?
>> 进行了多少次逻辑读取?
>> SQL语句被执行了多少次?
>> 存在大量的网络传输吗?
>> 应用程序有没有使用其他的数据库链接?如果有,用到其他哪些数据库连接?
>> 存在其他服务器活动吗?如果存在,是什么活动、何时发生?
>> 是否有其他进程阻塞了工作?
方法:激活TRACE生成跟踪文件