关于数据库、网络、三层的怪问题 ( 积分: 100 )

  • 主题发起人 主题发起人 娃娃
  • 开始时间 开始时间

娃娃

Unregistered / Unconfirmed
GUEST, unregistred user!
首先感谢您能进来看这个贴子,这问题确实怪的有点匪夷所思。

现在在维护一个三层的系统:
1、Oracle数据库
2、三层结构
3、Socket通讯

网络情况:
分为厂区和公司两个部分,用光纤相连。其它就是100M交换到桌面

一个月前还非常正常,但是最近开始发现系统性能有所下降,应该和数据库关系不大,是突然变慢许多(但也是间歇性的,一段一段时间)

然后就开始出现了一些很奇怪的问题
比如:
发现有一个报表在厂区根本无法生成,而在公司这边就可以生成,而且速度较快。
然后就带着笔记本到厂区那边调试程序,结果发现是一条SQL语句执行不过去,拿出来这条SQL语句,放到SQL Plus中执行,一样执行不了。

这个SQL语句唯一特殊的就是用了Oracle的一个函数rpad生成了200个空格做预留字段,于是我把这里改成硬性的200个空格,结果就可以了,而且速度也算正常,后来我回来到公司这边再试RPAD这个函数,效率也很快。实在是不明白。

网络情况:
在网络中用飞鸽传书或者共享文件之类的方式,传输文件,大概能到5--13M左右,算是正常。用PING也没有什么丢包断线的情况。
用Sniffer听包,也没有发现有什么异常,几个中间层的服务器的通讯量与正常使用时期还稍微偏低一些。主服务器的数据量也算正常。广播包也未见异常。可以说整个网络应该算是健康的(不排除有其它隐蔽的故障)

数据库情况:
用Oracle自带的性能检测工具“Performance Manager”查看运行时的一些参数,主服务器的负载并非高的异常,但是在分厂反应说系统慢的时候,CPU的占用率较高,大概在5-87之间上下波动,而且曲线大概是这样的。

90---- | |
| | | | | |
| | | | | |
| | | | | |
5----- | | | ||| || |

上下波动的间隔很短,而且是5到90之间快速的波动

系统中有也效能日志,经查看,基本上都是一些很正常的语句,比如:
select count(*) from XXX where XXX(条件也是定位到唯一的一个索引)
但是执行耗时长的竟然能到100多秒!
 
应该还是数据库问题,索引坏或者有锁表情况。
 
http://www.51zhan.com 最好的网址站
http://www.51zhan.com 最好的网址站
http://www.51zhan.com 最好的网址站
 
wang_junfan說得有道理。你自己要對表和索引檢查下。
看是不是個別的模塊才這樣,還是所有都是這樣。如果是部分很可能是索引方面的問題。
 
首先谢谢两位的回答。

我按你们的说法,对索引进行了分析,用如下语句:
ANALYZE INDEX XXXXX COMPUTE STATISTICS;

不过没有什么报错或者不正常的现象。

不知道这样检查对不对?或者有其它什么更准确的方法,还望赐教,谢谢。
 
目前问题还是存在。还有一些新现象。

现在出现一些客户端,运行某些模块的时候,会等待相当长时间无反应,然后突然那个模块的标题行会跑到任务栏上,成一个新的窗口标题一样

任务栏正常时:
-------------------------------------------------------------------
|开始| |XXXXX系统|我的电脑|
-------------------------------------------------------------------

故障任务栏时
-------------------------------------------------------------------
|开始| |XXXXX系统|XXX系统日报表|我的电脑|
-------------------------------------------------------------------

这个“XXX系统日报表”的标题正常是不会出来的,只有一个“XXXX系统”的总标题。
 
后退
顶部