<?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>SQL Aloha &#187; Database Administration</title>
	<atom:link href="http://www.bradmcgehee.com/category/database-administration/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bradmcgehee.com</link>
	<description>Brad M. McGehee, Director of DBA Education, Red Gate Software</description>
	<lastBuildDate>Tue, 27 Jul 2010 00:52:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Windows OS Power Saving Feature Directly Affects CPU Performance</title>
		<link>http://www.bradmcgehee.com/2010/07/windows-os-power-saving-feature-directly-affects-cpu-performance/</link>
		<comments>http://www.bradmcgehee.com/2010/07/windows-os-power-saving-feature-directly-affects-cpu-performance/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 00:50:44 +0000</pubDate>
		<dc:creator>bradmcgehee</dc:creator>
				<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Performance Tuning]]></category>

		<guid isPermaLink="false">http://www.bradmcgehee.com/2010/07/windows-os-power-saving-feature-directly-affects-cpu-performance/</guid>
		<description><![CDATA[While I have always known that the Windows operating system Power Plan options affect a server’s performance, I had not realized how much until SQL Server MVP Glenn Berry (Blog &#124; Twitter) suggested I try out my new Dell T610 test servers under the three available power savings plans:

High Performance
Balanced
Power Saver

 
While it’s hard to [...]]]></description>
			<content:encoded><![CDATA[<p>While I have always known that the Windows operating system Power Plan options affect a server’s performance, I had not realized how much until SQL Server MVP Glenn Berry (<a href="http://www.sqlservercentral.com/blogs/glennberry/default.aspx" target="_blank">Blog</a> | <a href="http://twitter.com/GlennAlanBerry/" target="_blank">Twitter</a>) suggested I try out my new Dell T610 test servers under the three available power savings plans:</p>
<ul>
<li><font color="#000000" size="2" face="Arial">High Performance</font></li>
<li><font color="#000000" size="2" face="Arial">Balanced</font></li>
<li><font color="#000000" size="2" face="Arial">Power Saver</font></li>
</ul>
<p> <span id="more-1720"></span>
<p>While it’s hard to perform a “real-world” CPU benchmark test, Glenn suggested I try using the <a href="http://www.primatelabs.ca/geekbench/" target="_blank">Geekbench</a> CPU benchmark software. The software runs a series of CPU and memory tests and produces a Geekbench Score which provides a standardized way to compare CPU performance.</p>
<p>To find out how much the three OS Power Plan options affected the performance of my T610, I first set the system BIOS in the Dell Setup program to “OS Control.” Dell not only allows you to set the BIOS to “OS Control,” which means the OS controls the power savings, it also includes other power savings options that are not controlled by the OS. I only tested the “OS Control” option.</p>
<blockquote><p><em>Test Hardware</em>: Dell T610 Tower, with a single, 6-core CPU (Intel Xeon X5670, 2.93 Ghz, 12M Cache, HT, 1333MHz FSB); 32GB 1333MHz RAM; a PERC H700 RAID controller; two 146GB 15K SAS Drives; one dual-port HBA (to connect to the DAS); and dual network connections.</p>
<p><em>Test Operating System</em>: 64-bit Windows 2008 R2 (with current patches).</p>
</blockquote>
<p>Next, I went to the Control Panel and changed the Power Plan setting to “High Performance”.</p>
<p><a href="http://www.bradmcgehee.com/wp-content/uploads/2010/07/image5.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="" border="0" alt="" src="http://www.bradmcgehee.com/wp-content/uploads/2010/07/image_thumb5.png" width="644" height="353" /></a> </p>
<p>When I ran the test using the “High Performance” option, the Geekbench Score was 10,562.</p>
<p><a href="http://www.bradmcgehee.com/wp-content/uploads/2010/07/image6.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="" border="0" alt="" src="http://www.bradmcgehee.com/wp-content/uploads/2010/07/image_thumb6.png" width="432" height="492" /></a> </p>
<p>Next, I changed the Power Plan to the “Balanced” setting, and the Geekbench Score was 7,991, a drop of about 24% in performance from the “High Performance” setting.</p>
<p><a href="http://www.bradmcgehee.com/wp-content/uploads/2010/07/image7.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="" border="0" alt="" src="http://www.bradmcgehee.com/wp-content/uploads/2010/07/image_thumb7.png" width="432" height="492" /></a> </p>
<p>And last, I changed the Power Plan to the “Power Saver” setting, and the Geekbench Score was 7,075, about drop of about 33% in performance from the “High Performance” setting.</p>
<p><a href="http://www.bradmcgehee.com/wp-content/uploads/2010/07/image8.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="" border="0" alt="" src="http://www.bradmcgehee.com/wp-content/uploads/2010/07/image_thumb8.png" width="432" height="497" /></a> </p>
</p>
<p>While the OS Power Plan settings affect more than just CPU, it becomes obvious from this simple test that changing the Power Plan can significantly affect a CPU’s performance, which in turn could significantly impact the performance of a SQL Server instance. </p>
<p>Of course, these three power options are available because they allow you to make a tradeoff between performance and power savings. As the DBA, you have to determine if the power saved by running the CPU more slowly is worth the performance tradeoff. The only way to really check this out would be to use a wattmeter to determine how much electricity is saved for each different settings. I don’t have a wattmeter to try this out, but Glenn has reported in some of his testing that the power savings appears to be insignificant, especially when compared to the significant drop in CPU performance between each “Power Saver” plan.</p>
<p>The point of this post is that when your configure your SQL Server’s hardware, you need to investigate what the appropriate “Power Saver” plan your server should be running. Based on this simple, initial testing, I think I’ll leave mine on “High Performance”.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradmcgehee.com/2010/07/windows-os-power-saving-feature-directly-affects-cpu-performance/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Instant File Initialization Speeds SQL Server</title>
		<link>http://www.bradmcgehee.com/2010/07/instant-file-initialization-speeds-sql-server/</link>
		<comments>http://www.bradmcgehee.com/2010/07/instant-file-initialization-speeds-sql-server/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 19:20:28 +0000</pubDate>
		<dc:creator>bradmcgehee</dc:creator>
				<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Maintenance]]></category>

		<guid isPermaLink="false">http://www.bradmcgehee.com/2010/07/instant-file-initialization-speeds-sql-server/</guid>
		<description><![CDATA[Sometimes, its just the smallest of details that can make all the difference. For example, on my test system (see the end of this posting for a description), I created a new 50GB database. The database creation process took about 5 minutes and 50 seconds to complete.
 
Next, I populated the database with over 61 [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes, its just the smallest of details that can make all the difference. For example, on my test system (see the end of this posting for a description), I created a new 50GB database. The database creation process took about 5 minutes and 50 seconds to complete.</p>
<p> <span id="more-1704"></span>
<p>Next, I populated the database with over 61 million rows of data, which virtually occupied all of the available space within the newly created database. After that, I backed up the database using SSMS, and then I deleted the original database.</p>
<p>At this point, I restored the database from the backup using SSMS. Below, you see the typical Restore Database screen.</p>
<p><a href="http://www.bradmcgehee.com/wp-content/uploads/2010/07/image1.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.bradmcgehee.com/wp-content/uploads/2010/07/image_thumb1.png" width="539" height="494" /></a>&#160; </p>
<p>At the bottom, right-hand side of the screen in the Progress box, notice the “Executing (0%)” indicator. Between the time I clicked the OK button to begin the restore, and when the “Executing (0%)” counter began to move, it took about 5 minutes and 50 seconds. At that point, the counter began to increment and the database was restored.</p>
<p>Now I make one very small change to my SQL Server instance (I’ll describe it in just a moment), and then I repeat the above steps (after deleting the database I just restored). First, I created a new 50GB database. This time, instead of taking 5 minutes and 50 seconds to create the database, it takes just under 2 seconds, a savings of about 5 minutes and 48 seconds. Next, I populated the database with the same amount of data as before, backed it up, and then deleted the original file. When I restored the database this time around, instead of having to wait 5 minutes and 50 seconds before the backup began to restore, I only had to wait just under 2 seconds. In both of these cases, I saved a significant amount of time.</p>
<p>So what was the very small change that I made, and why did it radically reduce the amount of time for database creation and database restoration to occur? I turned instant file initialization on. </p>
<p><strong>What is Instant File Initialization?</strong></p>
<p>In my first two examples, before instance file initialization was turned on, the reason it took so long for the database to be created, or the database to be restored (before a database can be restored, its space must first be pre-allocated, much like creating a new database), SQL Server had to go to every page in the 50 GB database and zero each one of them out. It can take a lot of time for SQL Server to go to every 8K page in a file (especially very large files) and physically zero out each page. When instant file initialization is turned on, SQL Server doesn’t have to zero out every 8K page that has been allocated. Instead, the space is just allocated to SQL Server by the operating system in one fell swoop, which is a very quick process, potentially saving you a great deal of time.</p>
<p><strong>How Do You Turn Instant File Initialization On?</strong></p>
<p>Unlike most configuration features in SQL Server, there is no on/off switch for instant file initialization. Instead, you have to assign a specific user right to the SQL Server Service (mssqlserver) account. Here’s what you need to do to turn on instant file initialization.</p>
<p>First of all, to use instant file initialization with SQL Server in a production environment, you must be using some combination of:</p>
<ul>
<li><font color="#000000" size="2" face="Arial">Windows Server 2003 or</font></li>
<li><font color="#000000" size="2" face="Arial">Windows Server 2008 or</font></li>
<li><font color="#000000" size="2" face="Arial">Windows Server 2008 R2</font> </li>
</ul>
<p>and using:</p>
<ul>
<li><font color="#000000" size="2" face="Arial">SQL Server 2005 (any edition) or</font></li>
<li><font color="#000000" size="2" face="Arial">SQL Server 2008 (any edition) or</font></li>
<li><font color="#000000" size="2" face="Arial">SQL Server 2008 R2 (any edition)</font> </li>
</ul>
<p>Second, you must assign the SQL Server Service (mssqlserver) a special user right called “Perform volume maintenance tasks”. To do this, start the Local Security Policy tool (you must be a local administrator to perform this task), then drill down to Security Settings | Local Policies | User Rights Assignment | Perform volume maintenance tasks, as you see in the screenshot below.</p>
<p><a href="http://www.bradmcgehee.com/wp-content/uploads/2010/07/image2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="" border="0" alt="" src="http://www.bradmcgehee.com/wp-content/uploads/2010/07/image_thumb2.png" width="644" height="471" /></a> </p>
<p>Once you have located “Perform volume maintenance tasks”, right-click on it and select “Properties”, and the “Perform volume maintenance tasks Properties” screen appears. Click on “Add User or Group” and then proceed through the remaining screens until you select the account that is being used as the service account for SQL Server. In the screen shot below, notice that I have added the BRADMCGEHEE\sqlserverservice account to this user rights assignment. This is the user account I use on my test server to run my SQL Server instance.</p>
<p><a href="http://www.bradmcgehee.com/wp-content/uploads/2010/07/image3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="" border="0" alt="" src="http://www.bradmcgehee.com/wp-content/uploads/2010/07/image_thumb3.png" width="644" height="471" /></a> </p>
<p>Once the SQL Server service account has been assigned this user right, you will have to restart the SQL Server service (of course, only when it is not being used), and from this point forward, instant file initialization is turned on for all MDF files in your SQL Server instance.</p>
<blockquote><p>Note: If your SQL Server service account is a member of the local administrators group, then the account already has the “Perform volume maintenance tasks” user right and you don’t need to assign it again.</p>
</blockquote>
<p><strong>Why Isn’t Instant File Initialization Turned On by Default?</strong></p>
<p>When a SQL Server instance is first installed, one of the things you must enter is a SQL Server service account. If you follow the best practice and select a domain user account to be used as the SQL Server service account, the setup process automatically assigns the domain user account with only just enough rights and permissions to run SQL Server. The “Perform volume maintenance tasks” user right is not automatically assigned during installation because it is not required to run SQL Server, and because allowing the service account to have this additional user right introduces a very small security risk.</p>
<p>Oh no, a security risk! Well, not really much of a security risk. Here’s the possible security risk scenario. The disk that is being used to create the new database on has been used for storing data that has been previously deleted. As you may know, when data is deleted from disk by the operating system, it really is not physically deleted; the space holding the data is just marked as being available. At some point, the older data will be overwritten with new data. This occurs all the time on millions of computers throughout the world every day. And as such, any data that has been marked for deletion, but not yet overwritten, is potentially available for access if you have the right tools and know what you are doing. In fact, undelete software uses this to recover data that has been accidently deleted.</p>
<p>When instant file initialization is not turned on, and when SQL Server allocates space for an MDF file, each of the pages allocated for the database is zeroed out, which removes the older data, in theory, preventing it from being accessed. I say “in theory” because there are computer forensics techniques that can even recover data that has been overwritten, but that discussion is really not applicable here.</p>
<p>So if instant file initialization is turned on, there is a very slight risk that someone could go to the pages allocated for the new database and read any older data that still may exist there. This is essentially a non-issue in virtually every organization, other than those that require very high security. But because of this potential security issue, instant file initialization is not turned on by default.</p>
<blockquote><p>If instant file initialization is turned on, and pages are not zeroed out when the database is initially created, SQL Server will automatically overwrite any data that might have been on those pages when SQL Server needs that space.</p>
</blockquote>
<p><strong>When Is Instant File Initialization Used?</strong></p>
<p>If instant file initialization is turned on, it is used in all of these cases:</p>
<ul>
<li><font color="#000000" size="2" face="Arial">When a database is first created</font></li>
<li><font color="#000000" size="2" face="Arial"><font color="#000000" size="2" face="Arial">When a an existing database’s size is manually increased</font> </font></li>
<li><font color="#000000" size="2" face="Arial">When tempdb is recreated each time SQL Server is restarted</font></li>
<li><font color="#000000" size="2" face="Arial">When autogrowth kicks in</font> </li>
<li><font color="#000000" size="2" face="Arial">When backups are restored (as the space has to be pre-allocated before a restore can occur)</font>&#160;</li>
</ul>
<p>Instant file initialization only affects MDF and NDF files, not LDF files. In other words, transaction log files can’t take advantage of instant file initialization. This is because log files are circular in nature and must be zeroed out, as random data in transaction log pages can be problematic. In my earlier test, when I created a new 50 GB database, the MDF file was 50 GB and the log file was only 1 MB. If I had created a large log file (which is not uncommon), it would have taken awhile for the log to be created, although the MDF file would have been instantly created. This is also true when you manually increase the size of a log file, or when log file autogrowth occurs. In other words, don’t expect to have all of your databases (MDF and LDF files) created in less than 2 seconds like in my test. While the MDF will be created virtually instantly, the log file may take awhile to be created.</p>
<blockquote><p>When I was working with SQL Server 2000 a few years back, which does not support instant file initialization, one of the things that annoyed me the most when restoring large databases was waiting for the database space to be allocated before the restore actually began. During emergency database restores, this wasted a lot of precious time, preventing me from getting the database back into production as fast as I would have preferred. If you aren’t using instant file initialization today, you are facing this same problem. That’s why I recommend all SQL Server 2005/2008 instances have instant file initialization turned on. The time saved when restoring databases is the best reason to use instant file initialization.</p>
</blockquote>
<p><strong>Check to See if Your SQL Server Instances Have Instant File Initialization Turned On</strong></p>
<p>Hopefully, by now, you see the benefits of using instant file initialization. Assuming that you don’t already know if instant file initialization is turned on or off on the SQL Servers your manage, I challenge you to check and see, and if you find it turned off, turn it on and reap its many benefits.</p>
<p>&#160;</p>
<blockquote><p><strong>Test Hardware</strong></p>
<ul>
<li>Dell T610 Tower, with a single, 6-core CPU (Intel Xeon X5670, 2.93 Ghz, 12M Cache, HT, 1333MHz FSB); 32GB 1333MHz RAM; a PERC H700 RAID controller; two 146GB 15K SAS Drives; one dual-port HBA (to connect to the DAS); and dual network connections. Hyper-threading turned off. </li>
<li>One PowerVault MD3000 DAS with two, dual-port controllers, and 15 146GB 15K SAS drives. MDF files located on RAID 10 array with 10 spindles, LDF files on RAID 10 array with 4 spindles, backup drive on a single spindle. </li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.bradmcgehee.com/2010/07/instant-file-initialization-speeds-sql-server/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Free SQL Server DMV Starter Pack</title>
		<link>http://www.bradmcgehee.com/2010/07/free-sql-server-dmv-starter-pack/</link>
		<comments>http://www.bradmcgehee.com/2010/07/free-sql-server-dmv-starter-pack/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 00:44:18 +0000</pubDate>
		<dc:creator>bradmcgehee</dc:creator>
				<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Free Stuff]]></category>

		<guid isPermaLink="false">http://www.bradmcgehee.com/2010/07/free-sql-server-dmv-starter-pack/</guid>
		<description><![CDATA[ The SQL Server DMV Starter Pack is a free eBook (84 pages) that describes 28 different ways that DMVs can be used with SQL Server. Not only is each way described in detail, but sample code is included so you can begin using the DMVs immediately. The book covers these uses of DMVs.
 
&#160;
&#160;

DMV#1: [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bradmcgehee.com/wp-content/uploads/2010/07/image.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="SQL Server DMV Starter Pack" border="0" alt="SQL Server DMV Starter Pack" align="left" src="http://www.bradmcgehee.com/wp-content/uploads/2010/07/image_thumb.png" width="141" height="175" /></a> The <a href="http://www.red-gate.com/products/SQL_Response/offers/dmv.htm?utm_source=bradmcgehee&amp;utm_medium=banner&amp;utm_content=dmv_201007&amp;utm_campaign=sqlresponse" target="_blank">SQL Server DMV Starter Pack</a> is a free eBook (84 pages) that describes 28 different ways that DMVs can be used with SQL Server. Not only is each way described in detail, but sample code is included so you can begin using the DMVs immediately. The book covers these uses of DMVs.</p>
<p> <span id="more-1695"></span>
<p>&#160;</p>
<p>&#160;</p>
<ul>
<li>DMV#1: Are you Connected?</li>
<li>DMV#2: Session Ownership</li>
<li>DMV#3: Current expensive, or blocked, requests</li>
<li>DMV#4: Query Stats – Find the &quot;top X&quot; most expensive cached queries</li>
<li>DMV#5: How many single-use ad-hoc Plans?</li>
<li>DMV#6: Ad-hoc queries and the plan cache</li>
<li>DMV#7: Investigate expensive cached stored procedures</li>
<li>DMV#8: Find Queries that are waiting, or have waited, for a Memory Grant</li>
<li>DMV#9: Monitor long-running transactions</li>
<li>DMV#10: Identify locking and blocking issues</li>
<li>DMV#11: Find Missing Indexes</li>
<li>DMV#12: Interrogate Index Usage</li>
<li>DMV#13: Table Storage Stats (Pages and Row Counts)</li>
<li>DMV#14: Monitor TempDB</li>
<li>DMV#15: Investigate Disk Bottlenecks via I/O Stalls</li>
<li>DMV#16: Investigate Disk Bottlenecks via Pending I/O</li>
<li>DMV#17: Why are we Waiting?</li>
<li>DMV#18: Expose Performance Counters</li>
<li>DMV#19: Basic CPU Configuration</li>
<li>DMV#20: CPU Utilization History</li>
<li>DMV#21: Monitor Schedule activity</li>
<li>DMV#22: System-wide Memory Usage</li>
<li>DMV#23: Detect Memory Pressure</li>
<li>DMV#24: Investigate Memory Usage Across all Caches</li>
<li>DMV#25: Investigate memory use in the Buffer Pool</li>
<li>DMV#26: Rooting out Unruly CLR Tasks</li>
<li>DMV#27: Full Text Search</li>
<li>DMV#28: Page Repair attempts in Database Mirroring</li>
</ul>
<p>The book’s authors include Glenn Berry (<a href="http://www.sqlservercentral.com/blogs/user/Profile.aspx?UserID=78267" target="_blank">Blog</a> | <a href="http://twitter.com/GlennAlanBerry" target="_blank">Twitter</a>), Louis Davidson (<a href="http://sqlblog.com/blogs/louis_davidson/default.aspx" target="_blank">Blog</a> | <a href="http://twitter.com/drsql" target="_blank">Twitter</a>), and Tim Ford (<a href="http://thesqlagentman.com/" target="_blank">Blog</a> | <a href="http://twitter.com/sqlagentman" target="_blank">Twitter</a>), and you can <a href="http://www.red-gate.com/products/SQL_Response/offers/dmv.htm?utm_source=bradmcgehee&amp;utm_medium=banner&amp;utm_content=dmv_201007&amp;utm_campaign=sqlresponse" target="_blank">download the eBook and scripts here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradmcgehee.com/2010/07/free-sql-server-dmv-starter-pack/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Test Cluster Delivered &amp; Ready to Assemble</title>
		<link>http://www.bradmcgehee.com/2010/07/test-cluster-delivered-ready-to-assemble/</link>
		<comments>http://www.bradmcgehee.com/2010/07/test-cluster-delivered-ready-to-assemble/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 21:12:37 +0000</pubDate>
		<dc:creator>bradmcgehee</dc:creator>
				<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://www.bradmcgehee.com/2010/07/test-cluster-delivered-ready-to-assemble/</guid>
		<description><![CDATA[

I finally received all the components of my SQL Server test cluster (pictured left), which includes:
–One PowerVault MD3000 DAS with two, dual-port controllers, and 15 146GB 15K SAS drives.
–Two identical Dell T610 Towers, each with a single, 6-core CPU (Intel Xeon X5670, 2.93 Ghz, 12M Cache, HT, 1333MHz FSB); 32GB 1333MHz RAM; a PERC H700 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bradmcgehee.com/wp-content/uploads/2010/07/IMG_1753_dxo.jpg"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_1753_dxo" border="0" alt="IMG_1753_dxo" align="left" src="http://www.bradmcgehee.com/wp-content/uploads/2010/07/IMG_1753_dxo_thumb.jpg" width="210" height="244" /></a>
</p>
<p>I finally received all the components of my SQL Server test cluster (pictured left), which includes:</p>
<p>–One PowerVault MD3000 DAS with two, dual-port controllers, and 15 146GB 15K SAS drives.</p>
<p>–Two identical Dell T610 Towers, each with a single, 6-core CPU (Intel Xeon X5670, 2.93 Ghz, 12M Cache, HT, 1333MHz FSB); 32GB 1333MHz RAM; a PERC H700 RAID controller; two 146GB 15K SAS Drives; one HBA (to connect to the DAS); and dual network connections.</p>
<p> <span id="more-1676"></span>
</p>
<p>Before I start assembling the hardware and installing the operating system, I am first setting up an older Dell tower computer I have as a domain controller. In addition, I am configuring a wireless bridge to my wireless network, as the location of my test system is not located near a convenient network connection. Once I have the domain controller and wireless bridge configured and working, then I will begin assembling and configuring the new hardware.</p>
<p>I’ll post regularly about the trials and tribulations of getting the system up and running.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradmcgehee.com/2010/07/test-cluster-delivered-ready-to-assemble/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>PAL 2.0 Beta Released</title>
		<link>http://www.bradmcgehee.com/2010/07/pal-2-0-beta-released/</link>
		<comments>http://www.bradmcgehee.com/2010/07/pal-2-0-beta-released/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 02:25:39 +0000</pubDate>
		<dc:creator>bradmcgehee</dc:creator>
				<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Free Stuff]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Performance Tuning]]></category>

		<guid isPermaLink="false">http://www.bradmcgehee.com/2010/07/pal-2-0-beta-released/</guid>
		<description><![CDATA[Back in 2008, I wrote a blog post about version 1 of the Performance Analysis of Logs (PAL) tool. This free tool, available from pal.codeplex.com, has been enhanced, and Version 2.0, Beta 1.1, is currently available for download. I have just downloaded and installed it myself, although I haven’t had much chance to use it [...]]]></description>
			<content:encoded><![CDATA[<p>Back in 2008, I wrote a blog post about version 1 of the <a href="http://www.bradmcgehee.com/2008/12/check-out-the-free-performance-analysis-of-logs-pal-tool/" target="_blank">Performance Analysis of Logs</a> (PAL) tool. This free tool, available from <a href="http://pal.codeplex.com" target="_blank">pal.codeplex.com</a>, has been enhanced, and Version 2.0, Beta 1.1, is currently available for download. I have just downloaded and installed it myself, although I haven’t had much chance to use it yet. When I have time, I will write a review of the new version. In the meantime, I recommend you download it and give it a try. It’s a great tool for analyzing Performance Monitor Logs, and it is also a great source for determining which Performance Monitor counters, and thresholds, should be used when analyzing SQL Server’s performance.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradmcgehee.com/2010/07/pal-2-0-beta-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Database Configuration Checklist</title>
		<link>http://www.bradmcgehee.com/2010/07/database-configuration-checklist/</link>
		<comments>http://www.bradmcgehee.com/2010/07/database-configuration-checklist/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 02:09:47 +0000</pubDate>
		<dc:creator>bradmcgehee</dc:creator>
				<category><![CDATA[Database Administration]]></category>

		<guid isPermaLink="false">http://www.bradmcgehee.com/2010/07/database-configuration-checklist/</guid>
		<description><![CDATA[This is number four in a series of checklists that I am putting together for a new book I am writing. Previously, I blogged about my SQL Server Hardware Checklist, my SQL Server Operating System Checklist, and my SQL Server Instance Checklist. The goal of the SQL Server Database Configuration Checklist is to help DBAs [...]]]></description>
			<content:encoded><![CDATA[<p>This is number four in a series of checklists that I am putting together for a new book I am writing. Previously, I blogged about my <a href="http://www.bradmcgehee.com/2010/06/sql-server-hardware-checklist/" target="_blank">SQL Server Hardware Checklist</a>, my <a href="http://www.bradmcgehee.com/2010/06/sql-server-operating-system-checklist/" target="_blank">SQL Server Operating System Checklist</a>, and my <a href="http://www.bradmcgehee.com/2010/06/sql-server-instance-checklist/" target="_blank">SQL Server Instance Checklist</a>. The goal of the SQL Server Database Configuration Checklist is to help DBAs document their databases, which in turn could reveal some potential changes that could be made in order to optimize their performance and availability.</p>
<p> <span id="more-1661"></span>
<p>Below is my current version of my Database Configuration Checklist, which is in the form of a spreadsheet that can be used to collect and store the database configuration information. The rows refer to various database configuration settings, and the columns can be used to list each of your databases by their logical names. I suggest that all the databases on a SQL Server instance be included in this checklist, including both system and user databases.</p>
<table border="1" cellspacing="0" cellpadding="0" width="600">
<tbody>
<tr>
<td width="401"><strong>The Basics</strong></td>
<td width="68">DB1</td>
<td width="64">DB2</td>
<td width="70">Etc.</td>
</tr>
<tr>
<td width="401">High Availability Class(1):</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Owner:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Date Created:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Database State:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Recovery Model:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Compatibility Level:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Collation:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">&#160;</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401"><em>(1) High Availability Class Key:</em></td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Tier 1: &gt;99.99% Uptime (1 Hour or Less of Downtime Acceptable Annually)</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Tier 2: 99.9% to 99.99% Uptime (1 to 8.5 Hours of Downtime Acceptable Annually)</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Tier 3: &lt;99.9% Uptime (Hours to Days of Downtime Acceptable Annually)</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">&#160;</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401"><strong>Database File Information</strong></td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Physical File Name:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">MDF Location:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">NDF Location(s) (add more rows as needed):</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Filegroup(s) (add more rows as needed):</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Includes Partitioned Tables/Indexes:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Part of a Federation:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Database Size:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Space Available:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Was Database Initially Pre-Sized:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Is Database Size Optimized for Future Growth:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Has Database File Layout Been Optimized:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Database Autogrowth Setting:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">&#160;</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401"><strong>Log File Information</strong></td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Physical File Name:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">LDF Location:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Log Size:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Space Available:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Was Log Initially Pre-Sized:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Is Log Size Optimized for Future Growth:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Log Autogrowth Setting:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Number of Virtual Log Files:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">&#160;</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401"><strong>Backup Information</strong></td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Last Full Database Backup:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Last Database Log Backup:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Average Database Backup Time:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Database Backup Size:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Average Log Backup Size:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Number of Database Backup Copies Retained:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Backups Encrypted:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Backups Compressed:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Backup To Location:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Offsite Backup Location:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Backup Software/Agent Used:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">&#160;</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401"><strong>List Applications Accessing Database</strong></td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Application Name(s) (add more rows as needed):</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">&#160;</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401"><strong>Settings</strong></td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">ANSI NULL Default:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">ANSI NULLS Enabled:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">ANSI Paddings Enabled:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Arithmetic Abort Enabled:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Auto Close:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Auto Create Statistics:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Auto Shrink:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Auto Update Statistics Asynchronously:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Auto Update Statistics:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Close Cursor on Commit Enabled:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Concatenate Null Yields Null:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Cross-Database Ownership Chaining Enabled:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Data Correlation Optimization Enabled:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Database Read-Only:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Default Cursor:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Numeric Round-Abort:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Page Verify:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Parameterization:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Quoted Identifiers Enabled:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Recursive Triggers Enabled:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Restrict Access:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Service Broker Enabled:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Trustworthy:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">VarDecimal Storage Format Enabled:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">&#160;</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401"><strong>Full-Text Search</strong></td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Is Full-Text Search Being Used:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Full-Text Catalog Name(s):</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Full-Text Index Name(s):</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Has Full-Text Search Configuration Been Documented:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">&#160;</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401"><strong>Database Snapshots</strong></td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Database Snapshots Used:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Existing Number of Snapshots:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Are Old Snapshots Being Dropped:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Total Sparse File Size:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">&#160;</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401"><strong>Log Shipping</strong></td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Log Shipping Used:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Instance Name(s) Where Log Shipped to:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Database Name(s) Where Log Shipped to:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Transaction Log Backup Schedule:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Has All Log Shipping Configuration Been Documented:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Has HA Documentation Been Created and Tested:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">&#160;</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401"><strong>Database Mirroring</strong></td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Database Mirroring Used:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Operating Mode:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Is Principal:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">If Mirror, Instance Name of Principal Database:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Witness Instance Name:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Has Database Mirroring Compression Been Enabled (2008):</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Has All Database Mirroring Configuration Been Documented:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Has HA Documentation Been Created and Tested:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">&#160;</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401"><strong>Replication</strong></td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Is Database Replicated:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Is Database a Publisher:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Is Database a Subscriber:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Is Database a Distribution Database:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Type of Replication:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Instance Name(s) Where Database is Subscribed:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Database Name(s) Where Database is Subscribed:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Instance Name of Distribution Server:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Is Replication Part of HA Strategy:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Has All Replication Configuration Been Documented:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">&#160;</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401"><strong>SQL Server 2008 Change Tracking</strong></td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Change Tracking Enabled:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Retention Period:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Auto Cleanup Enabled:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">&#160;</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401"><strong>SQL Server 2008 Page/Row Compression</strong></td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Row Compression Used:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Page Compression Used:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Compression Analyzed for Optimal Performance:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">&#160;</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401"><strong>SQL Server 2008 Filestream</strong></td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Is Database Using Filestream:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Filestream Filegroup:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Filestream Data Physical Location:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">&#160;</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401"><strong>Is SQL Server 2008 Transparent Data Encryption Used</strong></td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Is TDS Enabled?</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Is EKM Used?</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
<tr>
<td width="401">Is Certificate and Private Key Backed Up and Protected:</td>
<td width="68">&#160;</td>
<td width="64">&#160;</td>
<td width="70">&#160;</td>
</tr>
</tbody>
</table>
<p>I would like your feedback on my SQL Server Database Configuration Checklist. For example, I would like your input on: </p>
<blockquote><p>–What is missing from the list? Keep in mind that I will be creating additional lists to cover more specific topics, and that I can’t include every possible variation. </p>
<p>–What on the list could be removed because it is not very important? Keep in mind that the list is designed to be generic, so there will be items on the list that will not be applicable to all SQL Server environments. </p>
<p>–Does my wording make sense, or should I change any of the wording so that it is more understandable or more accurate? </p>
</blockquote>
<p>Please add your comments below, and as I get feedback, I will update the checklist. Thanks! </p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradmcgehee.com/2010/07/database-configuration-checklist/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>My Ideal SQL Server Test Box is on the Way</title>
		<link>http://www.bradmcgehee.com/2010/06/my-ideal-sql-server-test-box-is-on-the-way/</link>
		<comments>http://www.bradmcgehee.com/2010/06/my-ideal-sql-server-test-box-is-on-the-way/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 01:20:28 +0000</pubDate>
		<dc:creator>bradmcgehee</dc:creator>
				<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://www.bradmcgehee.com/2010/06/my-ideal-sql-server-test-box-is-on-the-way/</guid>
		<description><![CDATA[ Several weeks ago I wrote a blog post called “What is the Ideal SQL Server Test Box?” At that time I was putting together the specs for a test SQL Server box I hoped to be able to get for my home office. While a laptop is great for giving SQL Server presentations, it’s [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bradmcgehee.com/wp-content/uploads/2010/06/image3.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="" border="0" alt="" align="left" src="http://www.bradmcgehee.com/wp-content/uploads/2010/06/image_thumb3.png" width="109" height="127" /></a> Several weeks ago I wrote a blog post called “<a href="http://www.bradmcgehee.com/2010/06/what-is-the-ideal-sql-server-test-box/" target="_blank">What is the Ideal SQL Server Test Box?”</a> At that time I was putting together the specs for a test SQL Server box I hoped to be able to get for my home office. While a laptop is great for giving SQL Server presentations, it’s not the greatest for testing and stressing SQL Server. And while I do have access to some large SQL Server boxes via remote access, I am limited to what I can do on them. So what I really wanted was my own test box that I could reconfigure as needed for testing and benchmarking.</p>
<p> <span id="more-1655"></span>
<p>While I was at TechEd, I had a talk with the head of the DBA Tools division at Red Gate Software, and we were talking about software testing when I mentioned that I would like to have my own test hardware at home. And a little to my surprise, he agreed with me. That’s when I started to do some research on what I thought would be an ideal (and still affordable) test box, and that’s when I wrote the above mentioned blog post.</p>
<p>As I was corresponding with the head of the DBA Tools division, he suggested that I also spec out a two-node cluster with Direct Attached Storage (DAS) so that I could test even more scenarios. That was a little more than I was expecting, but I went ahead and put together two proposals: one for a single tower test box, and another with two towers plus a DAS that was configured for clustering. To my surprise, the cluster configuration was approved and I placed the order for it yesterday. Hopefully, in about 30 days, all the hardware will arrive and I can begin to build the cluster and to begin some testing and benchmarking that I have been wanting to do for a long time.</p>
<p>Here is what I ordered:</p>
<blockquote><p>&#8211;Two identical Dell T610 Towers, each with a single, 6-core CPU (Intel Xeon X5670, 2.93 Ghz, 12M Cache, HT, 1333MHz FSB); 32GB 1333MHz RAM; a PERC H700 RAID controller; two 146GB 15K SAS Drives; one HBA (to connect to the DAS); and dual network connections.</p>
<p>&#8211;One PowerVault MD3000 DAS with two, dual-port controllers, and 15 146GB 15K SAS drives.</p>
</blockquote>
<p>In order to have a proper cluster, I also need a third box to act as a domain controller. Fortunately, I already have a small Dell tower that will now be devoted as my domain controller and be configured so that I can access my network remotely.</p>
<p>While not a huge system, it should more than meet my needs as a home test server, and give me plenty of flexibility to experiment with different configurations. Of course, it is not as big a test system as <a href="http://www.sqlskills.com/BLOGS/PAUL/post/Benchmarking-hardware-setup.aspx" target="_blank">Paul Randal</a> has, but I think it will do just fine. When I get the equipment and start building the cluster, I’ll blog on the experience. It has been a few years since I built a cluster from scratch, and this should be a good learning experience.</p>
<p>PS: I also want to thank the head of the DBA Tools division, and <a href="http://www.red-gate.com/" target="_blank">Red Gate Software</a>, for my new test system.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradmcgehee.com/2010/06/my-ideal-sql-server-test-box-is-on-the-way/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Does Your Company Have a SQL Server DR Plan?</title>
		<link>http://www.bradmcgehee.com/2010/06/does-your-company-have-a-sql-server-dr-plan/</link>
		<comments>http://www.bradmcgehee.com/2010/06/does-your-company-have-a-sql-server-dr-plan/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 01:51:19 +0000</pubDate>
		<dc:creator>bradmcgehee</dc:creator>
				<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://www.bradmcgehee.com/2010/06/does-your-company-have-a-sql-server-dr-plan/</guid>
		<description><![CDATA[ 
This past month I ran a poll asking this question: “Does your company have a formal, tested, disaster recovery plan for your SQL Servers.” While this was not a scientific poll, nor do I purport that it is representative of the real world, the results are still scary.
As you can see, only about 9% [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bradmcgehee.com/wp-content/uploads/2010/06/image2.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="" border="0" alt="" align="left" src="http://www.bradmcgehee.com/wp-content/uploads/2010/06/image_thumb2.png" width="304" height="404" /></a> </p>
<p>This past month I ran a poll asking this question: “Does your company have a formal, tested, disaster recovery plan for your SQL Servers.” While this was not a scientific poll, nor do I purport that it is representative of the real world, the results are still scary.</p>
<p>As you can see, only about 9% of responders said they have in place a complete, up-to-date, and tested DR plan. And another 9% said that they didn’t even know what a DR plan was. </p>
<p>About 45% said they “sort of” have a DR plan, but it is not complete and/or up-to-date, nor is it regularly tested. And then about 27% said that they wanted to put a DR plan in place, but that they just didn’t have time to complete one. The 9% who answered “other” were consultants, and the question didn’t really apply to them.</p>
<p>It’s disconcerting to think that only about 9% of companies have a valid DR plan, 45% have a “sort-of” plan, and another 36% have no plan at all.</p>
<p> <span id="more-1652"></span>
<p>I wonder if the owners of the companies that have “sort of” or no DR plan know about this. If they don’t, then it’s the responsibility of the DBA to inform them. If the owners do know, and have chosen not to invest in the resources to put a DR plan in place, I wonder if they understand the potential consequences of their choice. In any event, I am really dismayed by these results.</p>
<p>For those DBAs who don’t have a complete, up-to-date, and tested DR plan, you might want to consider checking out some of the following resources.</p>
<blockquote><p><a href="http://www.simple-talk.com/sql/backup-and-recovery/disaster-recovery-for-sql-server-databases-/" target="_blank">Disaster Recovery for SQL Server Databases</a></p>
<p><a href="http://databases.about.com/od/sqlserver/a/disaster.htm" target="_blank">SQL Server Disaster Recovery</a></p>
<p><a href="http://operationstech.about.com/od/officespaceequipments/tp/DisasterRcov123.htm" target="_blank">How to Write a Disaster Recovery Plan</a></p>
<p><a href="http://www.infosectoday.com/Articles/Write_Disaster_Recovery_Plan.htm" target="_blank">So, You Want to Write a Disaster Recovery Plan?</a></p>
<p><a href="http://www.drp.msu.edu/Documentation/StepbyStepGuide.htm" target="_blank">Sample Disaster Recovery Planning Guide Provided by Michigan State University</a></p>
<p><a href="http://support.microsoft.com/kb/822400" target="_blank">Description of Disaster Recovery Options for Microsoft SQL Server</a> </p>
</blockquote>
<p>If you have any more links you would like to suggest, please do so below.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bradmcgehee.com/2010/06/does-your-company-have-a-sql-server-dr-plan/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
