CPU %, Avg. Disk Queue Length and Pages/Sec too high

I have a Windows Server 2003 service pack 1 with SQL 2000 server service pack 3 installed.  I have all the latest Microsoft Updates for the OS, but I don't know if I do for SQL.  It was working OK and then started to slow down.  Now it is CRAWLING.  Sql and an Access program take up all the space.  Over the night, I have been watching and they have been both at around 30-40% usage (with nobody in the office).  I loaded Server Performance Advisor but it would not run and it immediately sent the CPU % to 100.  When I closed that program, the other two were still up at 30-40%.  Sql was usually a lot higher (like 80-100%).  I am running a full virus scan right now and it has the CPU, Avg. Disk Queue Length and Pages/Sec counters going crazy.  The CPU is basically 100.  The disk is defragged.  It has a 150 GB disk and P4 1.80 GHz with 1 GB of RAM.  The virus scanner just stopped and there aren't any virus's.  ALso, the CPU % is now averaging 77 but the pages per sec is at 0.  When I check the task manager though, it says that sqlserver is using 34% CPU and 650 MB RAM.  The next two processes listed are VPC32 and Rtvscan using 31 and 26 MB RAM.  Pbeagent is using 13 MB.  Maybe this is a SQL question...is it using too much memory?  If so, what would cause that?  How can I fix it?  Thank you so much for any answers!
Who is Participating?
Rtvscan is part of Norton AntiVirus I think so you have online antiivirus control. Check settings for Antivirus control and try to diable it temporary for performance check. What is with HDisk activity? LOW /HIGH
smalleysmalley ,

Could you please post the values of averege disk queue lenght.

Best Regards,

Paulo Conde;a.
you server system hardware is ok if it is only used for the sql server.
my guess is same as alexnek . it should be the antivirus.
You can also check if there are any jobs in the sql agent (like backup jobs, checks and so on.). that could be a reason also.
hope that we gave you a hit of what is happening
Cloud Class® Course: Python 3 Fundamentals

This course will teach participants about installing and configuring Python, syntax, importing, statements, types, strings, booleans, files, lists, tuples, comprehensions, functions, and classes.

Rtvscan is Symantec/Norton's Real Time virus scan.  It runs on the local machine for all files coming in and out and on... You can control the "frequency" if you wish.... But I would be more apt to look at what MrNetic suggested.... also what is the % processor time and pages/sec counters from Perfmon.?
How many and how big are the the databases you have on this box?

What is the transaction rate?

What type of queries are you running?

Is this a new box/application?

Has it always run like this?

If a "old" box and application, did it just start doing this over night, or has it been slowly using more CPU and memory gradually.

SQL, along with all DBMS, likes to use as much RAM as possible.  It caches the index and data in memory to reduce the amount of real I/O it does as real I/O is much slower that cached I/O in RAM.
rtvscan runs if you have scheduled norton antivirus scan. if you don't want the daily scans to run, change the schedule otherwise remove the automatic/ administrative scan
You should check the sql to see whether there are maintenance jobs setup.  It is very difficult based on the information you provided to suggest a course of action.  
Adding additional memory into the system will help since the sql server is now using 650MB out of 1GB.  Get the system to 3 or GB and you should see an improvement.  The slowness is because of the swapping.  How is the server configured for background or for applications (properties of my computer,advanced tab, performance button, advanced tab?  configuring it as an application server might also help if the server is currently configured for background.
If your sure it is SQL you can also Limit the amount of Memory that SQL has available to it.  Using the Enterprise Manager is the easiest. Right click on the name of your SQL Server - > Properties.  Memory Tab and assign a fixed amount instead of Dynamic.  This would be an easy test before going out an buying more memory.  Just limit SQL to approx half of the installed memory.  Just a thought.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.