[thelist] [ASP] slow server. What possible causes?

Karen J. Bowen karen at miinx.com.au
Tue Apr 30 09:13:02 CDT 2002

Nicole P wrote:
> And yes, Karen, I free everything that I set now, at least I think so. Some
> may still be lurking though.
> Would that create a performance degradation over a few hours?
> The system reacts very well after a reboot, and starts slowing down after an
> hour or so, and eventually reaches a point that it is unusable.

Nicole, if you've got/can get John Kauffman's "Beginning ASP Databases"
(Wrox), check out Chapter 17 - "Performance Testing & Performance
Improvements", which goes over 'performance issues related to ADO,
particularly in regards to Internet ASP applications'.

I hadn't (yet) read this chapter, so just have been going through it in
relation to your question, and it's very informative.  The objects you
are using (Connection, Recordset, etc) are of course all part of ADO.

Some interesting and possibly relevant tidbits:

** "Processor Bottlenecks" are defined as when the CPU usage of your
system is very high but the network card usage is well below capacity.
ADO is a processor-intensive technology & in general dual processors are
recommended for servers running ADO web applications.

** "Processor Throttling" (IIS 5 only) can be used when running multiple
web sites on one computer to prevent a site from "hogging" the processor
& hence slowing/preventing access to other sites.  (But it doesn't go
any further into this here.  I'd expect you could enable it via the IIS
console, although I haven't tried it.)

** "Connection Pooling" (turned on in IIS4 & IIS5 by default) enables an
app to share db connections.  The author follows this with:
"Explicitly destroying the connection in your code is also excellent
practice.  This saves resources by destroying the connection
immediately, rather than waiting for the connection to time out. [...]
While explicitly closing and destroying the connection consumes
resources as well, I believe this process improves performance overall
on the server, by freeing up resources quickly."

** NT Servers have the "Performance Monitor" (find it under Admin.
Tools) which allows you to monitor activity & performance of any number
of objects on the system, plus generate logs and alerts.

** "Indexing" is one _sure_ way to speed up performance.  Index all
fields in the database that will be used in WHERE clauses of SQL statements.

** Do NOT store ADO objects in Sessions.

A few other possibly relevant articles:

Hope this helps.  At the very least, *I've* learned an awful lot! :)

Good luck,
Miinx Design & Development
e :: karen at miinx.com.au
p :: 03 9534 2659
w :: www.miinx.com.au

More information about the thelist mailing list