Re: How long should statspack.snap take to run?



Mark D Powell wrote:
Statspack can be a very useful took IF you work with it enough to
understand what it shows you. While the default report has limited
usefulness for finding specific causes of performance problems the
report can identify if the database as a whole had a performance
problem. Higher level settings can be used to help locate resource
intensive SQL, which generally sits at the bottom of all performance
problems.

Once you know you have a problem then you can use other tools to help
you locate the true cause and solve the problem.

IMHO -- Mark D Powell --

Excellent points. It is important to use the tools correctly.

Example #1:
The DBA who left here four years ago used Statspack and Toad to monitor
performance. As the lead programmer at the time, I told him that the
database seemed to be performing slower than expected. He showed me
Statspack reports, fancy graphical displays in Toad, the buffer cache
hit ratio over 99% - everything looked normal. When he left, I assumed
DBA responsibilities, dumped Statspack and Toad, and started doing
things the hard way. The end result was significantly faster database
performance - a job scheduling process that was taking 2.5 hours to run
now completed in 25 minutes, and with a faster client it completed in
18 minutes. That's roughly a five fold application performance
increase without making any hardware changes, and without rebuilding
the database. It is easy to be lured into thinking that something is
normal.

Example #2:
I had the opportunity a couple months ago to replace our old dual
2.2GHz Oracle server with a dual 3.66GHz Oracle server. At best I
expected a 50% performance inprovement over the older server.
According to a stop watch, data retrieval in Excel and in programs that
I wrote complete 20 times faster than the same activity on the old
server. According to a stop watch, our ERP software completes data
retrieval 5% to 20% faster than when executed against the old database
server. Why the descrepancy? This is probably the point where the DBA
would say that everything in the database is working correctly, and the
finger would be pointed at the network administrator. The network
administrator would see that everything in the gigabit network is
working correctly and the network cards are running fine, and would
point the finger at the server administrator. The server administrator
would say that the server is only showing 3% CPU utilization, the hard
drives are not overworked, network utilization is at most 6% - must be
a client computer problem and the finger is pointed at the computer
technician. The client CPU is barely engaged, the hard drive isn't
doing much of anything, and the finger is pointed at the application
developer. Was anything accomplished in this exercise, other than the
conclusion that the system is running normally? This is the reason
that I developed my own Oracle performance monitoring tool.

Example case - a report in the ERP application required 60 seconds to
complete when run against the new database server and a couple seconds
longer when run against the old database server. This was unacceptable
performance, so I started digging. An Oracle extended SQL trace showed
this for total time, which the database server could be held
accountable during the 60 second run time of the report:
0.021 seconds - latch: library cache

Where was the rest of the 59.079 seconds spent?
0.070 seconds - SQL*Net message to client
0.002 seconds - SQL*Net more data to client
----------------------------------------------------------------
0.072 seconds sending responses to the client - not too bad for 61,153
round trips to the client.

Where was the rest of the 59 seconds spent?
An Ethereal packet capture shows 8,000 times in 60 seconds that the
client asked the Linux file server that hosts the ERP .exe files, do
you have a SQL.INI file that I can access? The Linux server responds -
no such file exists, and at least 0.004 seconds is wasted each time
sending the request, and being rejected.
32.000 seconds of the 59 remaining seconds are now accounted for by
this unnecessary traffic.

Where was the rest of the 27 seconds spent?
Likely searching the path specified on the computer for the SQL.INI
file and the various other configuration files. My guess is that the
report was looking for the same substitution entries in the SQL.INI
file (DB platform independent ERP package), each of the 8,000 times it
tried accessing that file.

Ever wonder how long this report would take over a WAN connection with
300ms ping times?
(61,153 * 0.300) + (8,000 + 0.300) = 20745.9 seconds = 5.76 hours.

The point is to use the tools correctly, as indicated by Mark. Do not
rely only on one tool that has a fancy report, or fancy colored dials
that states everything is normal. Maybe your perspective of what is
normal needs to be reconsidered. Statspack can be a starting point,
but should not be both a starting point and an ending point.

Charles Hooper
PC Support Specialist
K&M Machine-Fabricating, Inc.

.



Relevant Pages

  • Re: Help with first VB application - Data Entry form
    ... I assumed a desktop / winform client application ... time' stamp from the database machine - control machine ... ... problem solved - web server is control system. ...
    (microsoft.public.dotnet.languages.vb)
  • Re: Help with first VB application - Data Entry form
    ... I assumed a desktop / winform client application ... time' stamp from the database machine - control machine ... ... problem solved - web server is control system. ...
    (microsoft.public.dotnet.languages.vb)
  • Re: Remobjects v KBM
    ... >> client query components) follow from that. ... Then, connections can be created to say SQL Server, Oracle, Interbase and ... can then be created from the abstract dataset definition in 'customers' to ... implicitly - this makes your code not be database connection specific). ...
    (borland.public.delphi.thirdpartytools.general)
  • Re: Help with first VB application - Data Entry form
    ... stamp from the database machine - control machine ... ... unnecessary data to the client ... ... and when building a database independent UI / Client - Server application, ... JavaScript, for example) and thus, will get the time from the web server, ...
    (microsoft.public.dotnet.languages.vb)
  • Re: Opinions needed about the best "Middleware suite" kbmMW vs. RODA
    ... kbmMW supports cross db in such way that all you need to do in your application is to set one property to switch to ... What one have to concentrate about is minimizing the amount of data moved from the app server to the client. ... C/S setup's usually have a quite active chatter going on between the client and the database, ...
    (borland.public.delphi.thirdpartytools.general)