Solved

How do I run statistics on MS Sql Server database?

Posted on 2009-05-04
7
974 Views
Last Modified: 2012-05-06
I have a few statistics that I need to figure out and I have never used the MS SQL 'Profiler'.  Can someone help me understand how to gather the following stats.  I am also under the assumption that I need to use the Profiler to gather this information - please correct me if I'm wrong! :)  

avg/max queries per second
avg/max number of rows returned
ave/max number of connections (active)

Also, the purpose of this execise is to help me understand what sort of hardware I should purchase for the amount of bandwidth required on my database server.  Are these the stats I really need to know?  Please help - newbie here.
0
Comment
Question by:burtonrhodes
7 Comments
 
LVL 60

Accepted Solution

by:
chapmandew earned 200 total points
Comment Utility
You can get most of this data using profiler, but you can use performance monitor for these stats as well.  

perf mon
http://www.sql-server-performance.com/tips/sql_server_performance_monitor_coutners_p1.aspx

profiler
http://www.sql-server-performance.com/tips/sql_server_profiler_tips_p1.aspx
0
 
LVL 31

Assisted Solution

by:RiteshShah
RiteshShah earned 125 total points
Comment Utility
well as long as hardware concern, it should be depends on your database size, maximum users at any given time, expected DB growth in near future and your own needs and budgets. However, you can use profiler to see your current performance.  Have a look at following URLs for profiler

http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1171978,00.html

http://www.mssqltips.com/tip.asp?tip=1264

http://www.youtube.com/watch?v=QFyJ2NtebzM
 
0
 
LVL 51

Assisted Solution

by:Mark Wills
Mark Wills earned 175 total points
Comment Utility
Getting a good idea of the type of activity on the database is a good idea to help benchmark the nature of your database. You will also want to look at growth, and probably reads and writes (to help determine typical nature of disk activity - adding data or retrieving data). But getting throughput type results (such as queries per second) is heavily dependant on the current performance of your machine. If using just as a benchmark, then fine, but if using to indicate the volume of activity, then it could be tainted by other factors.

There is a lot of information you can get out of SQL Server itself, but running perfmon over a defined period of activity will probably help formulate a slightly more "qualified" set of measures (and something to fall back on). So, make sure you run the monitor over a fair representation of the nature and type of work you are doing.

One of the difficulties you have is differentiating the type of activity and stats you can gather with the health and performance of your queries. So, you will probably also need to gather some memory, and processor stats as well.

Things like %Processor time, PageLifeExpectancy, BufferCacheHitRatio, ProcessorQueueLength, DiskQueueLength, Disk reads and writes, and can be worthwhile looking for dropped packets on the network, because may as well check network bandwidth at the same time.

A lot of the scripts needed can be found at : http://www.microsoft.com/technet/scriptcenter/scripts/sql/sql2005/default.mspx?mfr=true

There is also some good doco (word documents) to download from MS : http://download.microsoft.com/download/4/7/a/47a548b9-249e-484c-abd7-29f31282b04d/Performance_Tuning_Waits_Queues.doc   and   http://download.microsoft.com/download/1/3/4/134644fd-05ad-4ee8-8b5a-0aed1c18a31e/TShootPerfProbs.doc    these are worthwhile reading because of the nature and types of metrics they discuss along with some queries used to extract data.


0
Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

 
LVL 51

Expert Comment

by:Mark Wills
Comment Utility
Oh, and here is a handy script showing that a lot of info is in SQL Server.
SELECT master_files.database_id

,databases.name database_name

,master_files.name name

,databases.recovery_model recovery_model

,databases.user_access_desc user_access_desc

,databases.state_desc state_desc
 

,master_files.type_desc type_desc

,master_files.physical_name physical_name

,master_files.state_desc state_desc

,master_files.size size_8KBPages

,master_files.max_size max_size_8KBPages

,master_files.growth growth

,master_files.is_percent_growth is_percent_growth
 

,dm_io_virtual_file_stats.sample_ms MillisecondsSinceComputerWasStarted

,dm_io_virtual_file_stats.num_of_reads num_of_reads

,dm_io_virtual_file_stats.num_of_bytes_read num_of_bytes_read

,dm_io_virtual_file_stats.io_stall_read_ms io_stall_read_ms

,dm_io_virtual_file_stats.num_of_writes num_of_writes

,dm_io_virtual_file_stats.num_of_bytes_written num_of_bytes_written

,dm_io_virtual_file_stats.io_stall_write_ms io_stall_write_ms

,dm_io_virtual_file_stats.io_stall io_stall

,dm_io_virtual_file_stats.size_on_disk_bytes size_on_disk_bytes
 

FROM sys.dm_io_virtual_file_stats(NULL, NULL) dm_io_virtual_file_stats

LEFT JOIN sys.master_files master_files ON dm_io_virtual_file_stats.database_id = master_files.database_id AND dm_io_virtual_file_stats.file_id = master_files.file_id

LEFT JOIN sys.databases databases ON master_files.database_id = databases.database_id
 

ORDER BY databases.name,master_files.type DESC;

Open in new window

0
 
LVL 3

Author Comment

by:burtonrhodes
Comment Utility
Thanks to all for your suggestions.  Let me go through the advice offered over the next several hours and assign point accordingly.
0
 
LVL 51

Expert Comment

by:Mark Wills
Comment Utility
One more for you then, and that is a list of statistics available : http://technet.microsoft.com/en-us/library/ms190382(SQL.90).aspx
0
 
LVL 3

Author Closing Comment

by:burtonrhodes
Comment Utility
Many thanks for all your responses.
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Entering a date in Microsoft Access can be tricky. A typo can cause month and day to be shuffled, entering the day only causes an error, as does entering, say, day 31 in June. This article shows how an inputmask supported by code can help the user a…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Viewers will learn how to use the INSERT statement to insert data into their tables. It will also introduce the NULL statement, to show them what happens when no value is giving for any given column.
Viewers will learn how to use the SELECT statement in SQL to return specific rows and columns, with various degrees of sorting and limits in place.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now