打印本文 打印本文  关闭窗口 关闭窗口  
数据库常问的两个问题看看专家们怎么答
作者:佚名  文章来源:不详  点击数  更新时间:2007/12/30 10:35:21  文章录入:杜斌  责任编辑:杜斌

  这两天找了几个人作面试,基本都问到了两个问题:

  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不支持这么多长连接

打印本文 打印本文  关闭窗口 关闭窗口