Home > Articles > Data > SQL Server

SQL Server Reference Guide

Hosted by

Toggle Open Guide Table of ContentsGuide Contents

Close Table of ContentsGuide Contents

Close Table of Contents

Monitoring: SQL Server Activity Monitor

Last updated Mar 28, 2003.

If you’re looking for more up-to-date information on this topic, please visit our SQL Server article, podcast, and store pages.

In the Windows operating system, you always have the ability to see the processes that are happening on your system. All you have to do is press CTRL-ALT-DELETE or right-click in the lower task bar to see a menu where you can select the “Task Manager” for Windows. Once you’re inside, you can see the current programs that are running, the memory they are taking, the thread counts and more. You can also see a set of graphs that show you the current overall system load.

It’s important to know that this feature is in Windows, especially for the DBA. Although you’ll most often be working on a workstation, you might be able to use the Remote Desk Protocol (RDP) to get to the server to see this view. Since SQL Server runs on Windows, you should be familiar with the tools it has to see the activity on the server.

But you also have a similar tool in SQL Server itself. I’ve explained many of the system views in other tutorials that show transactions, locking and blocking information, and even information about memory. But it’s useful to be able to see all of the information on one screen, in a constantly-updated fashion. That’s where the Activity Monitor comes in.

The Activity Monitor is a tool you can use to see “immediate” or current information about your server. It does not collect historical data like the SQL Server 2008 Data Collector, but it does give you a by-the-second update on what your server is doing. Whenever I experience a performance problem in SQL Server it’s usually the second place I go — the first is the Windows Task Manager to ensure the system is not the cause of the problem.

Each of the SQL Server versions I typically cover on this site, 2000, 2005 and 2008, has this feature. And in each one it looks significantly different. I suppose the reason for that is that as time goes on, Microsoft learns more about what the audience needs to see in the current activity, and new features require a different view of the information. But in each case you’re able to get information on transactions, CPU and memory use, much (if not all) of the SQL Statements used in the query, and a lot of information on locking and blocking.

So let’s dive into each tool. I’ll show you where the Activity Monitor is (it’s moved around in the various versions), what information they show, and how to use it.

SQL Server 2000 Activity Monitor

In SQL Server 2000, you’ll find the Activity Monitor in the Enterprise Manager tool. Open, that, drill down to the name of the Instance of SQL Server you want to monitor, and then drill down into the “Management” node. You’ll see an item called “Current Activity.” Click on that and you’ll see a screen similar to this one:

In this screen I’ve selected the first of the three kinds of information this tool shows: the “Process Info.” This screen has several columns that show the transaction information from the user.

Let me interject a quick tip here — if you’re ever interested in finding out how Microsoft gets information for a screen, you can. Just open the SQL Server Profiler tool and begin a default trace before you start looking at a screen. Then open the screen you’re interested in, and jump back to the Profiler tool. Stop the trace process, and read the Transact-SQL that the screen is sending. You’ll have the entire script right there in front of you.

OK, back to the task at hand. What you’re looking at here is a set of columns that begin with a graphical column — one I wish we still had in the newer tools. The graphics show differing shades of a globe. The completely colored globe shows a process that is running or waiting on a lock. As the globe has less color, it indicates less recent activity on that SQL Process ID, or SPID.

There are lots of columns here with a lot of information about your processes. You can click the column headers once to sort the data in ascending mode, and again to sort them descending. You can also left-click each column and drag it into place to order them any way you want, and you can right-click the panel to export what you’re seeing to a text file.

I won’t cover each column and its meaning here. You can press F1 to see the column definitions, but the real reason is that most of the information isn’t interesting on its own. You need context to tell what the numbers mean, and in the tutorials on Performance and Troubleshooting on this site I’ll talk more about those meanings and contexts. For now, it’s important to understand where the information is and how you get to it more than what it means.

Let’s look at the next section of the SQL Server 2000 Activity Monitor. If you click in the “Locks / Process ID” you’ll see a screen similar to this one:

This shows the lock information by locks, based on the Process ID that has the lock. Once again, you’re shown a graphic, but this time, it shows the lock type. The two main icons are a yellow “can,” which means a database lock, and a “spreadsheet,” which indicates a table lock.

The third view, “Locks / Object,” is similar. It shows the database objects, such as tables and databases, and what locks they currently have. This is useful when you’re troubleshooting poor performance on a query.

In all of these views, you have the ability to right-click an object to get more information or perform tasks, depending on the object you’re on.

The information here is static, so if you want to refresh the screen, just click one node above and then back into the Activity Monitor view you were in.

SQL Server 2005 Activity Monitor

In SQL Server 2005, Microsoft “rolled forward” the same information you got in SQL Server 2000, but the Activity Monitor is in a different place. This time it’s in the SQL Server Management Studio (SSMS) tool. Open that tool, connect to an instance, and then drill down to the “Management” node. From there, you need to double-click the “Activity Monitor” object. That will bring up a screen similar to this one:

Once again, you have information displayed in columns, but this time they include the grid separators. You’re in an entirely new window instead of the same panel that you had in SQL Server 2000. This means that you can perform some other action in SQL Server Management Studio and watch the impact in the Activity Monitor.

You’re still able to sort, order and export the data just as before.

You’ll notice the icons are different for this view. Once again, you can press F1 for more help on what they mean. Gone are the globes, and in their place are a set of standard Windows icons.

There is one primary difference in this tool than in SQL Server 2000. In SQL Server 2000, when you’re looking at the columns the data isn’t changing with the activity on the server. That makes it less than useful to “watch” the system. In SQL Server 2005, there’s a small blue link off to the left called “View Refresh Settings” that will allow you to set a polling interval for the screen to refresh. That’s far more useful, although it does take a hit on the server when you do it. That’s why it’s best to turn this on when you need it, and off again when you’re done monitoring. You can also just click the “Refresh” button at the top if you like, which is what I do most of the time.

Another handy improvement is that you can filter the information you’re looking at. There’s a link to the side to do that, as well as a “filter” icon in the icon bar at the top of this view.

Yet another improvement is that the locking information is presented in the same panel. It’s the same kind of locking information you get in SQL Server 2000, although once again the icons have changed.

SQL Server 2008 Activity Monitor

In SQL Server 2008, the Activity Monitor went through a complete re-write. It is still accessed through SQL Server Management Studio, but it isn’t under the Management node any more. Now you activate it by clicking on the “stock chart” icon in the icon bar. You can also set an option in the “Options” area to have this view start up when you open SSMS:

At the top of the view is a set of four graphs, which show the CPU information from the server, waiting tasks that indicate query performance, I/O information and Batch Requests, which show the load on the server. By the way, if your CPU graph is not showing, it’s because you’re not an administrator on the Windows server and can’t view that information.

This time the columns of information are hidden within the bands you see here. If you click on a band, it will expand to show a lot of columns, with more targeted, useful information. If you click on the band again, the information will collapse. The interesting thing is that if the band is not expanded, the data is not being collected and taking a load on your server.

You have far more right-click options in this version of the Activity Monitor. You can not only see part of the query text of an operation, but the entire query placed in a query window. You can also start the SQL Server Profiler with an automatic filter on the SPID you’re right-clicking, and more.

We’ll come back and visit all these tools in future tutorials.

InformIT Articles and Sample Chapters

Once you find the query taking up the most time on your system, it’s time to tune it. You can find out how to do that here as well in this free chapter from Sams Teach Yourself SQL in 24 Hours by Ron Plew and Ryan Stephens.

Books and eBooks

When you’re ready to learn some in-depth performance tuning, check out SQL Performance Tuning. (Read in Safari Books Online)

Online Resources

The starting point for a full tutorial on SSMS is here.