应用访问故障排除
近期,我维护的一个系统突发访问速度缓慢,时常报错,初步查看故障,表现为页面打开缓慢。
系统采用一个Oracle数据库,6个应用服务器搭建,通过重启数据库和应用服务器,发现系统运行正常。第二天,发现系统运行又开始缓慢,通过查看数据库监听,发现有非法连接此数据库的访问,关闭这些链接,问题仍然未解决。
查看数据库执行语句,发现有一个语句占用大量资源,原来是索引没有建立,且语句未优化,导致系统运行慢。
1.查看消耗资源最多的SQL:
SELECT hash_value, executions, buffer_gets, disk_reads, parse_calls
FROM V$SQLAREA
WHERE buffer_gets > 10000000 OR disk_reads > 1000000
ORDER BY buffer_gets + 100 * disk_reads DESC;
2.查找性能差的sql语句
select PARSING_USER_ID,EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,sql_text FROM v$sqlarea
order BY disk_reads DESC ;