这几天,我碰到一个这样的问题,贴出来向高手请教: 我前两天去到客户现场的时候, 客户抱怨现在系统运行慢得受不了,我试着运行了一下客户端,确实是慢得受不了(因为系统运行初始化时,要取一些公共的信息读取到客户端本地来,这个过程居然要10来分钟), 因为系统已经运行一年多了, 我仔细检查了ORACLE数据库,有几个大点的表有1百多万了记录,其它的表一般也就几千了记录,不至于这么慢啊, 不管怎样,我开始考虑优化数据库, 把系统中一些主要的查询字段都建上索引,后来发现速度影响不大. 然后我开始清除DB中的垃圾数据,最后几乎清除系统中三分之一的数据量,后来系统运行速度好像变得非常快了,正当我以为问题已经解决了时,结果第二天早上,系统又一如既往的慢,慢得跟以前一模一样(10几分钟才能进去),郁闷了半个上午,到中午,系统居然又莫名其妙的非常快了(进系统不超过30秒钟),整个下午都非常快,然而第三天中午系统再次又很慢了. 而这三天,网速基本没什么变化(系统在内网中),客户端基本都只连了一个连接. 顺便说下系统结构,服务端是用DELPHI写的一个CGI的Web Services程序,放在IIS一个网站目录下,客户端是用DELPHI写的一个EXE,调用WEB SERVICES获取数据, 服务端的WEB SERVICES(CGI)会连接到另一台DB服务器抓取数据. 我不明白为什么速度为什么变化这么大, 速度慢的时候,在任务管理器中,会看到WEB SERVICES(CGI)会占用几十兆的内存.
ALTER TABLE yourtablename MOVE;
--2.从新统计表信息
analyze table yourtablename compute statistics;
--
2、对数据库做statspack,贴出结果。
2)问题出现的时间点不确定,有早上,有中午。需要了解DB SERVER IIS SERVER是否是专用的,或许另外在执行其他的程序
拉高了负载。