<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Demand Technology FAQ &#187; SQL Server</title>
	<atom:link href="http://faq.demandtech.com/tag/sql-server/feed/" rel="self" type="application/rss+xml" />
	<link>http://faq.demandtech.com</link>
	<description>Help and Support for the Performance Sentry Product Line</description>
	<lastBuildDate>Wed, 30 Jun 2010 19:33:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>What do these SQL Server counters mean?</title>
		<link>http://faq.demandtech.com/2009/10/26/what-do-these-sql-server-counters-mean/</link>
		<comments>http://faq.demandtech.com/2009/10/26/what-do-these-sql-server-counters-mean/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 15:37:05 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Server Performance Monitoring]]></category>

		<guid isPermaLink="false">http://faq.demandtech.com/?p=151</guid>
		<description><![CDATA[MS SQL Server tuning is very similar to any other powerful Database Management System (DBMS), with similar performance and tuning considerations. For example:
1. How effective are the memory-resident database buffers at reducing disk I/O?
2. Where have you placed the database transaction recovery log files?
3. Does the database design minimize contention for SQL Server locks and [...]]]></description>
			<content:encoded><![CDATA[<p>MS SQL Server tuning is very similar to any other powerful Database Management System (DBMS), with similar performance and tuning considerations. For example:</p>
<p>1. How effective are the memory-resident database buffers at reducing disk I/O?</p>
<p>2. Where have you placed the database transaction recovery log files?</p>
<p>3. Does the database design minimize contention for SQL Server locks and latches?</p>
<p>4. Are high volume SQL Server queries fine-tuned to use appropriate index fields?</p>
<p><span style="font-family: book antiqua,times new roman,times;"></p>
<p style="margin-bottom: 6pt;">The SQL Server 2000 counters provide a wealth of performance statistics that can be used to these and other questions.</p>
<p style="margin-bottom: 6pt;">We recommend reading <a href="http://www.amazon.com/exec/obidos/ASIN/0735609985/qid=1113239318/sr=2-1/ref=pd_bbs_b_2_1/002-7300639-0506404">&#8220;Inside Microsoft SQL Server 2000&#8243;</a> by Kalen Delany of the SQL Server development team and &#8220;<a href="http://www.amazon.com/exec/obidos/tg/detail/-/0735612706/qid=1067628024/sr=1-7/ref=sr_1_7/102-7157136-6048938?v=glance&amp;s=books">Microsoft SQL Server 2000 Performance Tuning Technical Reference</a>&#8221; by Ed Whalen (and others) if you are interested in finding out more about SQL Server performance and tuning.</p>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://faq.demandtech.com/2009/10/26/what-do-these-sql-server-counters-mean/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where are my SQL Server 2000 counters?</title>
		<link>http://faq.demandtech.com/2009/10/26/where-are-my-sql-server-2000-counters/</link>
		<comments>http://faq.demandtech.com/2009/10/26/where-are-my-sql-server-2000-counters/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 15:33:43 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Performance Monitoring]]></category>

		<guid isPermaLink="false">http://faq.demandtech.com/?p=149</guid>
		<description><![CDATA[Beginning with SQL Server 2000, performance objects are named differently depending on whether you are running a single, unnamed instance of SQL Server or either a named instance or multiple instances of SQL Server. If you are installing SQL Server on a machine that is also running a previous version of SQL Server, then you must install [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 6pt;">Beginning with SQL Server 2000, performance objects are named differently depending on whether you are running a single, unnamed instance of SQL Server or either a named instance or multiple instances of SQL Server. If you are installing SQL Server on a machine that is also running a previous version of SQL Server, then you must install a named instance of SQL Server. For more information, see the section entitled <a href="http://msdn.microsoft.com/en-us/library/aa176582.aspx">&#8220;Working with Named and Multiple Instances of SQL Server 2000&#8243;</a> in the SQL Server 2000 online documentation.</p>
<p>If a single, unnamed instance of SQL Server is installed, the SQL Server 2000 performance objects are named &#8220;SQLServer:&#8221; just like SQL Server 7, although subsequent versions of SQL Server contain additional new objects and counters. For example, the SQLServer:Databases object is an instanced object containing performance counters for each SQL Server database that is defined. If you have a SQL Server 2000 database called &#8220;Customers,&#8221; you will see an object named SQLServer:Databases with an instance name of Customers. Using the syntax that the MS Performance Monitor recognizes, you would see a counter named SQLServer:Databases(Customers)\Transactions/sec.</p>
<p>If named instances of SQL Server 2000 are installed, the performance objects use a prefix of &#8220;MSSQL&#8221; instead. The SQL Server perflib actually creates objects named &#8220;MSSQL$VSDOTNET:Databases&#8221; where the SQL Server instance <strong>sysname</strong>, (in this example, &#8220;VSDOTNET&#8221;) is embedded in the object name. Performance Sentry removes the sysname from the object name and makes it the object instance name. In the case of an object like SQLServer:Databases, the sysname is reported as the parent instance name. Using the syntax that the MS Performance Monitor recognizes, you would see a counter named MSSQLServer:Databases(Customers,VSDOTNET)\Transactions/sec.</p>
<p>To make sure that you can gather SQL Server performance data without regard to whether unnamed or named instances of SQL Server are installed, we recommend you place both sets of SQL Server performance objects in your DCS, similar to the SQL Server Starter Set DCSs that ships with the product. </p>
<p>When you specify that both sets of SQL Server objects should be collected, you can expect to see a Warning message at the start of each collection cycle like the following:</p>
<p><span style="font-size: x-small; font-family: Courier;">The following objects were specified in the DCS but failed to return data. </span></p>
<p><span style="font-size: x-small; font-family: Courier;">These objects will be skipped this cycle. </span></p>
<p><span style="font-size: x-small; font-family: Courier;">SQLServer:Buffer Manager (L0, G17100) </span></p>
<p><span style="font-size: x-small; font-family: Courier;">SQLServer:Buffer Partition (L0, G17250) </span></p>
<p><span style="font-size: x-small; font-family: Courier;">SQLServer:General Statistics (L0, G17300) </span></p>
<p><span style="font-size: x-small; font-family: Courier;">SQLServer:Locks (L0, G17500) </span></p>
<p><span style="font-size: x-small; font-family: Courier;">SQLServer:Databases (L0, G17700) </span></p>
<p><span style="font-size: x-small; font-family: Courier;">SQLServer:Latches (L0, G17900) </span></p>
<p><span style="font-size: x-small; font-family: Courier;">SQLServer:Access Methods (L0, G18100) </span></p>
<p><span style="font-size: x-small; font-family: Courier;">SQLServer:SQL Statistics (L0, G18300) </span></p>
<p><span style="font-size: x-small; font-family: Courier;">SQLServer:Cache Manager (L0, G18500) </span></p>
<p><span style="font-size: x-small; font-family: Courier;">SQLServer:Memory Manager (L0, G18700) </span></p>
<p><span style="font-size: x-small; font-family: Courier;">SQLServer:User Settable (L0, G18900) </span></p>
<p><span style="font-size: x-small; font-family: Courier;">SQLServer:Replication Agents (L0, G19100) </span></p>
<p><span style="font-size: x-small; font-family: Courier;">SQLServer:Replication Merge (L0, G19300) </span></p>
<p><span style="font-size: x-small; font-family: Courier;">SQLServer:Replication Logreader (L0, G19500) </span></p>
<p><span style="font-size: x-small; font-family: Courier;">SQLServer:Replication Dist. (L0, G19700) </span></p>
<p><span style="font-size: x-small; font-family: Courier;">SQLServer:Replication Snapshot (L0, G19900)</span></p>
<p> This is because only one set of the SQL Server objects that were specified in the DCS can be collected. In this example, there is no &#8216;default&#8217; instance of SQL Server only named instances of SQL Server, so the objects prefixed &#8220;SQL Server:&#8221; that are associated with a single, unnamed instance are not found.</p>
]]></content:encoded>
			<wfw:commentRss>http://faq.demandtech.com/2009/10/26/where-are-my-sql-server-2000-counters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>If I am running multiple instances of SQL Server, how do I figure out which instance of the sqlservr.exe process data maps to which SQL Server instance?</title>
		<link>http://faq.demandtech.com/2009/09/29/if-i-am-running-multiple-instances-of-sql-server-how-do-i-figure-out-which-instance-of-the-sqlservr-exe-process-data-maps-to-which-sql-server-instance/</link>
		<comments>http://faq.demandtech.com/2009/09/29/if-i-am-running-multiple-instances-of-sql-server-how-do-i-figure-out-which-instance-of-the-sqlservr-exe-process-data-maps-to-which-sql-server-instance/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 17:49:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Performance Metrics]]></category>
		<category><![CDATA[Performance Sentry]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://faq.demandtech.com/?p=60</guid>
		<description><![CDATA[On machines where multiple instances of SQL Server are installed, you will see multiple instances of the sqlservr.exe process running. You will need a procedure for associating the performance data at the SQL Server process level &#8212; which provides processor utilization statistics and overall memory consumption &#8212; with the SQL Server performance counters for that [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 6pt;">On machines where multiple instances of SQL Server are installed, you will see multiple instances of the sqlservr.exe process running. You will need a procedure for associating the performance data at the SQL Server process level &#8212; which provides processor utilization statistics and overall memory consumption &#8212; with the SQL Server performance counters for that instance of the database.</p>
<p style="margin-bottom: 6pt;">One way to accomplish that is to use one of the User Settable counters that are available in SQL Server to return the process ID of that instance of SQL Server, which can be accessed by executing the <a href="http://msdn.microsoft.com/en-us/library/ms174396.aspx">SERVERPROPERTY</a> statement in a stored procedure. The process ID provided in the User Settable counters can then be matched against the ID Process field of the corresponding instance of the sqlservr Process record.</p>
<p style="margin-bottom: 6pt;">Follow these steps to output the process ID in one of the User Settable counters:</p>
<p><!--mstheme--><!--msthemelist--></p>
<table border="0" cellspacing="0" cellpadding="0" width="100%"><!--msthemelist--></p>
<tbody>
<tr>
<td width="42" valign="baseline"><img src="http://www.demandtech.com/_themes/expeditn/expbul1a.gif" border="0" alt="bullet" hspace="13" width="15" height="15" /></td>
<td width="100%" valign="top"><!--mstheme--><span style="font-family: book antiqua,times new roman,times;"></p>
<p style="margin-bottom: 6pt;">Add the MSSQL:User Settable object to the data collection set that are using to gather performance data from your SQL Server machines. Assign and activate this collection set.</p>
<p><!--mstheme--></span><!--msthemelist--></td>
</tr>
<p><!--msthemelist--></p>
<tr>
<td width="42" valign="baseline"><img src="http://www.demandtech.com/_themes/expeditn/expbul1a.gif" border="0" alt="bullet" hspace="13" width="15" height="15" /></td>
<td width="100%" valign="top"><!--mstheme--><span style="font-family: book antiqua,times new roman,times;"></p>
<p style="margin-bottom: 6pt;">To set a value for one of the User Settable counters, define and execute a stored procedure that executes one of the system stored procedures in the Master database named sp_User_Counter1 through sp_User_Counter10 so that it contains the value of the Process ID from an execution of the SERVERPROPERTY statement, as follows:</p>
<p><!--mstheme--></span><!--msthemelist--></td>
</tr>
<p><!--msthemelist--></tbody>
</table>
<p><!--mstheme--><span style="font-family: book antiqua,times new roman,times;"></p>
<p style="margin-bottom: 6pt;"><span style="font-family: Courier New;"> declare @ProcessID as integer<br />
set @ProcessID = (SELECT CONVERT(char(20), SERVERPROPERTY(&#8217;ProcessID&#8217;)))<br />
exec sp_user_counter1 @ProcessID</span></p>
<p>This example sets the value of the User Settable object&#8217;s User Counter 1 to the Process ID for that instance of SQL Server. Check the box to indicate that you want this stored procedure to be triggered to execute whenever this instance of SQL Server starts.</p>
<p>After you have created this stored procedure, it will look similar to this:</p>
<p><img src="http://www.demandtech.com/FAQsSQ2.jpg" border="0" alt="" width="588" height="390" /></p>
<p>Note that the SQL Server User Settable User Counters can only report numeric data, which is why the ProcessID from SERVERPROPERTY must be explicitly converted to an integer value before you call one of the sp_User_Counter stored procedures. For example, if you would also like the SQL Server version information available, you could add the following to your store procedure:</p>
<p><span style="font-family: Courier New;"> declare @ProductVersion as integer<br />
set @ProductVersion = (SELECT CONVERT(char(20), SERVERPROPERTY(&#8217;ProductVersion&#8217;)))<br />
exec sp_user_counter2 @ProductVersion</span></p>
<p>The Product Version information that the SERVERPROPERTY statement returns is a character string with a value something like &#8220;8.00.194&#8243;, that this SQL statement converts to the closest integer value, which is 8.</p>
<p><!--mstheme--></span></p>
<p><!--msnavigation--></p>
]]></content:encoded>
			<wfw:commentRss>http://faq.demandtech.com/2009/09/29/if-i-am-running-multiple-instances-of-sql-server-how-do-i-figure-out-which-instance-of-the-sqlservr-exe-process-data-maps-to-which-sql-server-instance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
