| 
   这两天找了几个人作面试,基本都问到了两个问题:   1。 如果用户告诉你,程序突然慢了,该如何着手……   2。 如果用户告诉你,程序突然无法连到database,该如何着手……   大家讨论一下?   Q: 如果用户告诉你,程序突然慢了,该如何着手……   A: 1 > 向问题提出者提出以下问题:   1 是否经做过数据库对象的分析 -->dba_tables(last_analyze)   2 是否经历过批量dml操作 -->(影响执行计划)   3 是否经历过数据库版本升级 -->(新的bug?)   4 用操作系统命令查看磁盘I/O是否异常,当然还有网络是否被其他资源占用 (硬件故障)   5 是不是有新的应用上线   6 有没有抱错信息 (如果有抱错信息可以缩小故障范围)   2> 下面开始问题诊断 诊断的接口就是v$session_wait   第一个问题:   1、查看客户端进程,确认是否客户端本身有病毒或程序有问题   2、查看服务器进程/线程运行情况   3、如果服务器不正常,找到相应进程/线程,kill   Q 2。 如果用户告诉你,程序突然无法连到database,该如何着手……   A:   1 有报错信息最好 没有查看alert_xxx.log 和相关.trc   2 数据库有关连接的配置 show parameter process ,show parameter session   操作系统层看看: ps -ef|grep LOCAL |wc -l   ps -ef|grep ora |wc -l   3 v$session_wait   4 开始怀疑应用中没有做conn.close() 可以根据v$open_cusro(sid)做group by 找到有问题的session   5 有可能是应用没有commit 或者bitmap索引造成enqueue阻塞数据库对象访问 又没有ora--00060报错等等   6 是不是app server的Connect pool调整了min Capability参数 使得Oracle不支持这么多长连接 
              |