<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2173119910600284569</atom:id><lastBuildDate>Tue, 07 Jul 2009 16:36:38 +0000</lastBuildDate><title>Kendal Van Dyke</title><description>My life as a SQL Server DBA</description><link>http://kendalvandyke.blogspot.com/</link><managingEditor>noreply@blogger.com (Kendal Van Dyke)</managingEditor><generator>Blogger</generator><openSearch:totalResults>76</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/KendalVanDyke" type="application/rss+xml" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-3801181006975092798</guid><pubDate>Wed, 01 Jul 2009 23:00:00 +0000</pubDate><atom:updated>2009-07-01T19:02:18.714-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Career</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><category domain="http://www.blogger.com/atom/ns#">About Me</category><title>The Best Thing I Learned At PASS</title><description>&lt;p&gt;&lt;em&gt;Note: I'm writing this as part of the &amp;quot;Best Thing I Learned At PASS&amp;quot; &lt;/em&gt;&lt;a href="http://summit2009.sqlpass.org/AboutSummit/News/BestThingContest.aspx" target="_blank"&gt;&lt;em&gt;contest&lt;/em&gt;&lt;/a&gt;&lt;em&gt;. Why? Because if I win it's worth a free registration or hotel stay for the &lt;a href="http://summit2009.sqlpass.org/" target="_blank"&gt;2009 Summit&lt;/a&gt;, and I like free!&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Let me start by making a small confession: I've never actually been to the PASS summit in person. So how in the world can I write about what I've learned? Because I've been there vicariously through the blogs and Twitter streams of people who were there last year. Thank goodness, because before the rise of blogging\social networking if you had asked me what happens at the PASS summit I would have said…I honestly don’t know what happens at PASS besides a bunch of technical presentations given by people who write books and magazine articles for a living. My ignorance about what PASS is became clear to me last November as I read about the daily keynotes, the community sessions, and the nighttime parties. I came to realize that PASS is about so much more than just sitting in technical presentations. It’s about learning from people just like you who are doing the same things as you do every day. It’s about uniting with your peers and meeting new people who share a common interest. It’s about escaping the daily workload to reenergize and reinvigorate the passion to do our jobs as best as we possibly can when we return. So even though I haven’t been to PASS in person, I’ve learned one important thing: &lt;b&gt;For the sake of my career, I need to go to PASS&lt;/b&gt;. If I can figure that out without actually having been to PASS, just imagine what I’ll learn when I do go this year.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-3801181006975092798?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=FpBsCZRLKRw:9o9NxkrierU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=FpBsCZRLKRw:9o9NxkrierU:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=FpBsCZRLKRw:9o9NxkrierU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=FpBsCZRLKRw:9o9NxkrierU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=FpBsCZRLKRw:9o9NxkrierU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=FpBsCZRLKRw:9o9NxkrierU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=FpBsCZRLKRw:9o9NxkrierU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=FpBsCZRLKRw:9o9NxkrierU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=FpBsCZRLKRw:9o9NxkrierU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/FpBsCZRLKRw" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/07/best-thing-i-learned-at-pass.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-8146620120639213015</guid><pubDate>Mon, 15 Jun 2009 19:30:00 +0000</pubDate><atom:updated>2009-06-15T18:24:10.434-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Replication</category><category domain="http://www.blogger.com/atom/ns#">Presentations</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><category domain="http://www.blogger.com/atom/ns#">About Me</category><title>See You In Seattle For PASS 2009!</title><description>&lt;p&gt;Last Friday I got the official notice that I've been selected to present a community session at the &lt;a href="http://summit2009.sqlpass.org/" target="_blank"&gt;2009 PASS summit&lt;/a&gt; in Seattle. I've also had 2 other abstracts selected as alternates. Ecstatic doesn't even begin to describe how I feel right now. I've never been to the summit before and now not only do I get to go but I get the chance to talk on a national stage about something I love doing. Very, very cool!&lt;/p&gt;  &lt;p&gt;Here's what my session is about:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Transactional Replication: Beyond The Basics      &lt;br /&gt;&lt;/strong&gt;At some point in every DBA's career they'll be probably be asked to work with transactional replication but most DBAs don't look under the covers once they're done walking through the setup wizards. In this session we'll take a deeper look at setting up, monitoring, and calibrating transactional publications plus share some tricks and tips gleaned from years of experience working with high volume, multiple datacenter topologies.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Session Goals:&lt;/u&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Understand core concepts of transactional replication including: replication topologies, publishers, distributors, agents, &amp;amp; agent profiles. Learn how to configure advanced options such as vertical and horizontal filtering &lt;/li&gt;    &lt;li&gt;Demonstrate how to monitor transactional replication performance &lt;/li&gt;    &lt;li&gt;Learn advanced troubleshooting techniques to apply when problems occur &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="2009PASS_Signature02" border="0" alt="2009PASS_Signature02" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/Sjahxx31FdI/AAAAAAAAA1Q/PEPzdq0W-WE/2009PASS_Signature02%5B8%5D.gif?imgmax=800" width="400" height="140" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-8146620120639213015?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=a1SgJ_UccGk:MIQgu4_P1dY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=a1SgJ_UccGk:MIQgu4_P1dY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=a1SgJ_UccGk:MIQgu4_P1dY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=a1SgJ_UccGk:MIQgu4_P1dY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=a1SgJ_UccGk:MIQgu4_P1dY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=a1SgJ_UccGk:MIQgu4_P1dY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=a1SgJ_UccGk:MIQgu4_P1dY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=a1SgJ_UccGk:MIQgu4_P1dY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=a1SgJ_UccGk:MIQgu4_P1dY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/a1SgJ_UccGk" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/06/i-hope-to-see-you-in-seattle-for-pass.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-358106400444471589</guid><pubDate>Tue, 09 Jun 2009 18:45:00 +0000</pubDate><atom:updated>2009-06-09T14:48:41.465-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Presentations</category><category domain="http://www.blogger.com/atom/ns#">About Me</category><title>Speaking At Space Coast SQL Users Group On June 11</title><description>&lt;p&gt;&lt;a href="http://spacecoast.sqlpass.org/Default.aspx"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="SCSUGLogo" border="0" alt="SCSUGLogo" align="right" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/Si6uiARDKRI/AAAAAAAAA1A/oZOQyluKAsc/SCSUGLogo%5B6%5D.jpg?imgmax=800" width="189" height="193" /&gt;&lt;/a&gt; Just a quick note to mention that I'm speaking at the next &lt;a href="http://spacecoast.sqlpass.org/Default.aspx" target="_blank"&gt;Space Coast SQL Users Group&lt;/a&gt; on Thursday, June 11, 2009. I'll be presenting &lt;strong&gt;Useful T-SQL Statements You May Not Be Aware Of&lt;/strong&gt; and I'll cover identity functions, OUTPUT, PIVOT\UNPIVOT, MERGE, and statements like OVER, ROW_NUMBER, etc. The meeting starts at 6:30 PM and is held in the Odyssey Conference room of Space Coast Credit Union headquarters at &lt;a href="http://maps.google.com/maps?daddr=8045+N+Wickham+Rd,+Melbourne,+FL+32940+(Space+Coast+Credit+Union)&amp;amp;geocode=CWl0zSwkXo2gFRvDrgEd0IAw-yF1DpW4g-nL7A&amp;amp;dirflg=&amp;amp;saddr=8045+N+Wickham+Rd,+Melbourne,+Brevard,+Florida+32940&amp;amp;f=d&amp;amp;sll=28.232887,-80.707369&amp;amp;sspn=0.009018" target="_blank"&gt;8045 N. Wickham RD, Melbourne, FL 32940&lt;/a&gt;. Refreshments and snacks are provided some come out for an night of free SQL education and networking!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-358106400444471589?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=9EqrGFuMtEE:I8xyn-cVXDE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=9EqrGFuMtEE:I8xyn-cVXDE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=9EqrGFuMtEE:I8xyn-cVXDE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=9EqrGFuMtEE:I8xyn-cVXDE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=9EqrGFuMtEE:I8xyn-cVXDE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=9EqrGFuMtEE:I8xyn-cVXDE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=9EqrGFuMtEE:I8xyn-cVXDE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=9EqrGFuMtEE:I8xyn-cVXDE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=9EqrGFuMtEE:I8xyn-cVXDE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/9EqrGFuMtEE" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/06/speaking-at-space-coast-sql-users-group.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-6882891716374372322</guid><pubDate>Wed, 20 May 2009 12:00:00 +0000</pubDate><atom:updated>2009-06-15T14:29:20.012-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Career</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><category domain="http://www.blogger.com/atom/ns#">About Me</category><title>Inside A Datacenter</title><description>&lt;p&gt;I spent the last 4 days in Denver helping my company move in a new datacenter and while I was there it occurred to me that a lot of people have probably never seen the inside of a datacenter. I've been in 8 (that I can recall), and while that might not seem like a lot to seasoned hardware folks that's enough to get a feel for what makes these places tick (and understand the difference between a good facility and a great one).&lt;/p&gt;  &lt;p&gt;Whenever I visit a facility I take a few minutes to walk through the aisles of racks and look at what hardware other people are running. I bet people probably think that datacenters are full of high end servers and SANs, but I've found that it's exactly the opposite. At the 3 facilities I visited on this trip I saw only a handful of SANs, maybe 1 per 20-30 racks. On the other hand, 9 out of 10 racks had at least one 1U server, 3 out of 4 racks had at least one 2U server, and 1 out of every 3 racks had at least one DASD drive enclosure. Regular readers of my blog may recall that I've done &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-series.html"&gt;a lot of testing on drive performance&lt;/a&gt; for this kind of equipment. There are thousands of these servers in a medium sized datacenter and given the number of people I've talked to who haven't heard about disk alignment I'm guessing that adds up to a &lt;em&gt;lot &lt;/em&gt;of wasted performance.&lt;/p&gt;  &lt;p&gt;I also like to look at how people install their hardware in racks. Some installations are messy – cables strung about like spaghetti, no thought given to heat dissipation, etc.. A few make you stop and look twice because they're so pristine. On average I'd say that most installs are OK – not bad and done well enough to keep things running cool. There's definitely an art to installing servers in a rack.&lt;/p&gt;  &lt;p&gt;If you end up spending any more than an hour working in a datacenter there are a few things to keep in mind. First, datacenters are climate controlled; they are cool and dry inside. Make sure you bring ChapStick to keep your lips from getting chapped and lotion to keep your hands from getting too dry. You should make sure to stay hydrated; you can't bring liquids into the facility so you'll want to remember to take frequent breaks to walk outside and get a drink of water. As I said, there are thousands of servers in a datacenter. It's loud. Wearing earplugs or headphones won't hurt. Walk outside if you need to hold extended conversations (especially on the phone – the person on the other end will appreciate it!).&amp;#160; You don't feel it while you're working inside, but the conditions can get to you. Between the dry air, lack of water, and near-shouting to talk to my coworker who was with me I just about lost my voice after day 2.&lt;/p&gt;  &lt;p&gt;If you're interested in seeing a datacenter in person you can talk to your hardware\network admins and ask them to give you a tour; If you have even a mild interest in computers you'll probably enjoy the experience. You can always take a virtual tour too - the video below is from FORTRUST, one many facilities in Denver, and will give you a good idea of what's involved in running a datacenter. There are a lot more videos on YouTube of other facilities – just search for &amp;quot;Data Center Tour&amp;quot; (or save yourself the effort and &lt;a href="http://www.youtube.com/results?search_type=&amp;amp;search_query=data+center+tour&amp;amp;aq=f" target="_blank"&gt;just click here&lt;/a&gt;).&lt;/p&gt;  &lt;p align="center"&gt;&lt;embed src="http://www.youtube.com/v/__uAI4S8pDI" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-6882891716374372322?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=X9zXNUewWzk:D9t1YaWynsA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=X9zXNUewWzk:D9t1YaWynsA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=X9zXNUewWzk:D9t1YaWynsA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=X9zXNUewWzk:D9t1YaWynsA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=X9zXNUewWzk:D9t1YaWynsA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=X9zXNUewWzk:D9t1YaWynsA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=X9zXNUewWzk:D9t1YaWynsA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=X9zXNUewWzk:D9t1YaWynsA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=X9zXNUewWzk:D9t1YaWynsA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/X9zXNUewWzk" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/05/inside-datacenter.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-7463888186505100150</guid><pubDate>Tue, 12 May 2009 22:15:00 +0000</pubDate><atom:updated>2009-05-12T18:21:31.913-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Presentations</category><category domain="http://www.blogger.com/atom/ns#">SQLSaturday</category><title>SQL Saturday Jacksonville Recap</title><description>&lt;p&gt;&lt;em&gt;&lt;a href="http://lh3.ggpht.com/_nNmzpgOs8Bg/Sgn2akTfcAI/AAAAAAAAA0M/MnjM92f12XI/s1600-h/sqlsat15%5B4%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="sqlsat15" border="0" alt="sqlsat15" align="right" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/Sgn2a04dyDI/AAAAAAAAA0Q/FPpCiZdkRCA/sqlsat15_thumb%5B2%5D.gif?imgmax=800" width="236" height="94" /&gt;&lt;/a&gt; Note: I intended to post this last week but life\work\burnout and installing Windows 7 RC got in the way.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Another weekend, another SQL Saturday – this time in Jacksonville, put on by &lt;a href="http://jssug.com/" target="_blank"&gt;JSSUG&lt;/a&gt;, at the University of North Florida campus. This particular SQLSaturday was scaled back from the norm (&lt;a href="http://www.sqlservercentral.com/blogs/andy_warren/archive/2009/05/04/notes-on-sqlsaturday-15.aspx" target="_blank"&gt;by design&lt;/a&gt;) – one sponsor, no attendee SWAG bags, hand written name tags, etc.. While SWAG is nice, the lack thereof didn't seem to bother people; can you really complain about free breakfast, lunch, and a day of SQL training?&lt;/p&gt;  &lt;p&gt;Even though I was scheduled to give 4 presentations – more than enough to keep me busy - I came into the day with the goal of meeting new people. Brian Knight's crew had the same idea and began the day by challenging each attendee to meet 3 new people. I asked in one of my afternoon sessions if everyone had met their 3 people and almost all hands went up; when I asked if they had gotten contact information (e.g. business cards) very few hands stayed raised. I'm not too surprised since people spend most of their day going back and forth between sessions which leaves little time to strike up meaningful conversations. On the other hand, the after-party was a great chance to relax and talk in a more casual atmosphere. I ended up talking (and exchanging business cards) with several people I met earlier, so I'll call success on my goal for the day.&lt;/p&gt;  &lt;p&gt;The only hiccup for me on the day was that I had to bail on one of my presentations (IIS security) because my demos weren't working. I ended up giving a 15 minute verbal summary and then gave my presentation on useful T-SQL statements. Otherwise I really enjoyed the opportunity to present, catch up with old friends, and meet some new ones. All in all it was another great SQL Saturday!&lt;/p&gt;  &lt;p&gt;Slide decks and demos for my presentations are below:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Download:&lt;/strong&gt; &lt;a href="http://kendal-van-dyke.googlegroups.com/web/Disk+Performance+and+Configuration+How+%26+Why.pptx?gda=AyuxkWUAAADAWLGwqsLXkiYqLfg1D2La0vwTOtampTv8faxquj32pOSow4iio5zK_jLjF7sC1irRCTP-7INC7hMrdzkiKjjb6WYKmI_RjPsH6BHMmaXK63UaKK2QEZI7h3T_kHmsvd8a7WIsd6qHDhllGPdGMn_4"&gt;Disk Performance and Configuration How &amp;amp; Why.pptx &lt;/a&gt;    &lt;br /&gt;&lt;strong&gt;Download:&lt;/strong&gt; &lt;a href="http://kendal-van-dyke.googlegroups.com/web/Useful+T-SQL+statements+you+may+not+be+aware+of.zip?gda=bwMraGUAAADAWLGwqsLXkiYqLfg1D2La3Wa4Fk1To-2IANThlmNIE5VRGVxM-P3zlXdBGWIzrnkLxw3YAaYVHb_bhgNBw9RHmi-sHYoovjICYBPOaMotQ76dzERnisIDE61z0MHgutMa7WIsd6qHDhllGPdGMn_4"&gt;Useful T-SQL statements you may not be aware of.zip &lt;/a&gt;    &lt;br /&gt;&lt;strong&gt;Download:&lt;/strong&gt; &lt;a href="http://kendal-van-dyke.googlegroups.com/web/Transactional+Replication+Deep+Dive.pptx?gda=8-2zsFoAAADAWLGwqsLXkiYqLfg1D2LaPim-ngBdQytpV4b7--k7A4s02_mu-U1BKCZtDxQ2ZbzoIY28i4jfLE99V9RDbtUaiF6gkjTvwMQ_mLi9TEEnFf3t1oNBp6n3SjsA6lIodbQ"&gt;Transactional Replication Deep Dive.pptx &lt;/a&gt;    &lt;br /&gt;&lt;strong&gt;Download:&lt;/strong&gt; &lt;a href="http://kendal-van-dyke.googlegroups.com/web/XML+Features+in+SQL2005+-+SQLSat+4.zip?gda=RIpLxVgAAADAWLGwqsLXkiYqLfg1D2Ladhg0gdSlw1d0SM8cOsKDqPWptJt5yz-9dG6j1WNYuRnfpuOJL1XmNEq2YN7QIxlQ1_trjggqclsttT1KH2baEBo1YHcDYvgcK1MwRk9oTs4"&gt;XML Features in SQL2005 - SQLSat 4.zip&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-7463888186505100150?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=SRlQ7xEzPSE:AKzxsIV3HFg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=SRlQ7xEzPSE:AKzxsIV3HFg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=SRlQ7xEzPSE:AKzxsIV3HFg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=SRlQ7xEzPSE:AKzxsIV3HFg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=SRlQ7xEzPSE:AKzxsIV3HFg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=SRlQ7xEzPSE:AKzxsIV3HFg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=SRlQ7xEzPSE:AKzxsIV3HFg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=SRlQ7xEzPSE:AKzxsIV3HFg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=SRlQ7xEzPSE:AKzxsIV3HFg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/SRlQ7xEzPSE" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/05/sql-saturday-jacksonville-recap.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-8929865576462688422</guid><pubDate>Wed, 29 Apr 2009 16:30:00 +0000</pubDate><atom:updated>2009-04-29T12:43:40.375-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Presentations</category><category domain="http://www.blogger.com/atom/ns#">SQLSaturday</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><title>SQL Saturday Atlanta Recap</title><description>&lt;p&gt;I had a great time at &lt;a href="http://www.sqlsaturday.com/eventhome.aspx?eventid=17" target="_blank"&gt;SQL Saturday Atlanta&lt;/a&gt; last weekend. I drove from Orlando to Atlanta on Friday with &lt;a href="http://www.sqlservercentral.com/blogs/andy_warren/default.aspx" target="_blank"&gt;Andy Warren&lt;/a&gt; and took advantage of the long ride to talk about &lt;a href="http://www.sqlpass.org/" target="_blank"&gt;PASS&lt;/a&gt;, user groups, volunteering, blogging, networking etc. Andy's a great guy to talk shop with because of the experience and perspective that he has on things. We arrived in time for the speaker's dinner Friday night where we had the chance to meet up with &lt;a href="http://www.codegumbo.com/" target="_blank"&gt;Stuart Ainsworth&lt;/a&gt; (&lt;a href="http://twitter.com/stuarta" target="_blank"&gt;@stuarta&lt;/a&gt;), &lt;a href="http://arcanecode.com/" target="_blank"&gt;Robert Cain&lt;/a&gt; (&lt;a href="http://twitter.com/arcanecode" target="_blank"&gt;@arcanecode&lt;/a&gt;), &lt;a href="http://drsql.org/" target="_blank"&gt;Louis Davidson&lt;/a&gt; (&lt;a href="http://twitter.com/drsql" target="_blank"&gt;@drsql&lt;/a&gt;), &lt;a href="http://weblogs.sqlteam.com/geoffh/Default.aspx" target="_blank"&gt;Geoff Hiten&lt;/a&gt; (&lt;a href="http://twitter.com/SQLCraftsman" target="_blank"&gt;@sqlcraftsman&lt;/a&gt;), &lt;a href="http://www.paulswaters.com/" target="_blank"&gt;Paul Waters&lt;/a&gt; (&lt;a href="http://twitter.com/pswaters" target="_blank"&gt;@pswaters&lt;/a&gt;), &lt;a href="http://www.celko.com/" target="_blank"&gt;Joe Celko&lt;/a&gt;, and many others. After dinner we headed to another local spot for drinks with Peter Shire (&lt;a href="http://twitter.com/Peter_Shire" target="_blank"&gt;@peter_shire&lt;/a&gt;) and the &lt;a href="http://www.sqlsentry.net/" target="_blank"&gt;SQL Sentry&lt;/a&gt; crew to finish out the day.&lt;/p&gt;  &lt;p&gt;Saturday's event was held at Microsoft in Alpharetta, GA. I thought the facility was perfect for the event: Plenty of parking right outside the doors, open spaces to mingle, a comfortable speaker's room, and rooms set up with projectors, lighting, and hardware designed for presentations. There were 3 smaller rooms for roundtable discussions and 3 larger rooms with walls that retracted to form one large room that was used for the opening comments, lunchtime presentation by Joe Celko, and closing raffles.&lt;/p&gt;  &lt;p&gt;I spent most of my morning in the speaker's room preparing for two afternoon presentations and had the chance to meet up with &lt;a href="http://www.sqlservercentral.com/blogs/brian_kelley/default.aspx" target="_blank"&gt;K. Brian Kelley&lt;/a&gt; (&lt;a href="http://twitter.com/kbriankelley" target="_blank"&gt;@kbriankelley&lt;/a&gt;) and &lt;a href="http://sqlblog.com/blogs/kevin_kline/" target="_blank"&gt;Kevin Kline&lt;/a&gt; (&lt;a href="http://twitter.com/kekline" target="_blank"&gt;@kekline&lt;/a&gt;). I had a bit of a hiccup before my first session (XML in SQL Server) when my user profile on my laptop went corrupt and I couldn't log in. I lost about 10 minutes recovering but I still managed to cover the most important points. Fortunately my second session (Disk Performance) was all slides and I didn't need to jump through any hoops so it went better. I finished out the day by meeting up with Stuart and a couple of other attendees for dinner at an ale house a short distance from the event.&lt;/p&gt;  &lt;p&gt;Other random thoughts about the weekend:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="IMG_0208" border="0" alt="IMG_0208" align="right" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SfiDu2ToEsI/AAAAAAAAA0I/87GgjsY6YYk/IMG_0208_thumb16.jpg?imgmax=800" width="240" height="180" /&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Stuart and the &lt;a href="http://www.atlantamdf.com/" target="_blank"&gt;AtlantaMDF&lt;/a&gt; crew did a fantastic job putting on the event. I've been to several SQL Saturdays and this ranks near the top in terms of location and execution.&lt;/li&gt;    &lt;li&gt;I bought and used a &lt;a href="http://www.amazon.com/gp/product/B0007KVK8E?ie=UTF8&amp;amp;tag=dkranchnet&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B0007KVK8E" target="_blank"&gt;Logitech 2.5GHz Cordless Presenter&lt;/a&gt; based on &lt;a href="https://www.sqlservercentral.com/blogs/steve_jones/archive/2009/03/17/speaking-at-events-logitech-presenter-review.aspx" target="_blank"&gt;Steve Jones's recommendation&lt;/a&gt; and really liked it. The built in timer and laser pointer are very handy. The forward\back buttons are great if your presentation is mostly slides but otherwise useless if you're doing a lot of demos because you tend to be behind a keyboard pushing buttons already.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://sqlbatman.com/" target="_blank"&gt;SQLBatman's&lt;/a&gt; influence was ever-present (see picture on right)&lt;/li&gt;    &lt;li&gt;I need to work on my networking skills. While I managed to meet up with several people I've talked to on Twitter I didn't do such a good job of meeting someone I've never talked to before.&lt;/li&gt;    &lt;li&gt;It's a long drive from ORL to ATL. While the conversation with Andy was great, I'll probably consider flying next time.&lt;/li&gt;    &lt;li&gt;Presentation tip: learn how to keep an audience captive in the event that something goes horribly wrong with your presentation. I did my best to interact with people while I worked out my corrupt user profile issue but it would have helped to have some discussion points in mind ahead of time.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;3 days, 1,000+ miles, 20+ hours of driving, and good times: All in all a great weekend. Next up: &lt;a href="http://www.sqlsaturday.com/eventhome.aspx?eventid=19" target="_blank"&gt;SQL Saturday #15 in Jacksonville&lt;/a&gt; on May 2 where I'll be presenting all 4 topics &lt;a href="http://kendalvandyke.blogspot.com/2009/04/pass-summit-sessions-submitted.html"&gt;I submitted for the 2009 PASS Summit&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Slide decks and demos for my presentations from ATL are below.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Download:&lt;/strong&gt; &lt;a href="http://kendal-van-dyke.googlegroups.com/web/Disk+Performance+and+Configuration+How+%26+Why.pptx?gda=ITW-eGUAAADAWLGwqsLXkiYqLfg1D2LaDoVeustiD3rNu3ahPDHqa-Sow4iio5zK_jLjF7sC1irRCTP-7INC7hMrdzkiKjjb6WYKmI_RjPsH6BHMmaXK63UaKK2QEZI7h3T_kHmsvd8a7WIsd6qHDhllGPdGMn_4&amp;amp;gsc=uo_4_gsAAAAGQv6PFZW0XFplkf6Kj3i6"&gt;Disk Performance and Configuration How &amp;amp; Why.pptx&lt;/a&gt;    &lt;br /&gt;&lt;strong&gt;Download:&lt;/strong&gt; &lt;a href="http://kendal-van-dyke.googlegroups.com/web/XML+Features+in+SQL2005.zip?gda=j1dBEk0AAADAWLGwqsLXkiYqLfg1D2LaxwQ2cjfEXPNxSxidfMBDevWptJt5yz-9dG6j1WNYuRmIWaTLu-AokARxRaSqDt5p5Tb_vjspK02CR95VRrtmeQ&amp;amp;gsc=uo_4_gsAAAAGQv6PFZW0XFplkf6Kj3i6"&gt;XML Features in SQL2005.zip&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-8929865576462688422?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=5YsO6VB9DwU:I0z5zbCfLlI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=5YsO6VB9DwU:I0z5zbCfLlI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=5YsO6VB9DwU:I0z5zbCfLlI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=5YsO6VB9DwU:I0z5zbCfLlI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=5YsO6VB9DwU:I0z5zbCfLlI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=5YsO6VB9DwU:I0z5zbCfLlI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=5YsO6VB9DwU:I0z5zbCfLlI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=5YsO6VB9DwU:I0z5zbCfLlI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=5YsO6VB9DwU:I0z5zbCfLlI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/5YsO6VB9DwU" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/04/sql-saturday-atlanta-recap.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-9054553012614576032</guid><pubDate>Fri, 24 Apr 2009 02:45:00 +0000</pubDate><atom:updated>2009-04-23T23:07:11.109-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Presentations</category><category domain="http://www.blogger.com/atom/ns#">SQLSaturday</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><category domain="http://www.blogger.com/atom/ns#">About Me</category><title>PASS Summit Sessions Submitted</title><description>&lt;p&gt;It's official – I've submitted my abstracts for the 2009 PASS Summit and received my confirmation. Now I wait to see if the abstract selection committee decides if I am worthy. As I promised in &lt;a href="http://www.brentozar.com/archive/2009/03/sql-server-dba-interview-kendal-van-dyke/" target="_blank"&gt;my interview with Brent Ozar&lt;/a&gt;, I'm publishing my submissions for all to see. If you happen to be at &lt;a href="http://www.sqlsaturday.com/eventhome.aspx?eventid=17" target="_blank"&gt;SQL Saturday Atlanta&lt;/a&gt; this weekend you can catch my presentations on Disk Performance and XML. If you're headed to &lt;a href="http://www.sqlsaturday.com/eventhome.aspx?eventid=19" target="_blank"&gt;SQL Saturday Jacksonville&lt;/a&gt; on May 2 I'm on the schedule to present all four. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;     &lt;br /&gt;Disk Performance and Configuration: How &amp;amp; Why&lt;/strong&gt;     &lt;br /&gt;Would you buy a million dollar race car then show up to the track on a clear day with rain tires that aren't properly inflated and wonder why you're only doing 180 when the manufacturer says it can do 220? Let's suppose that your million dollar race car is really your DB server and your tires are your hard drives. Do you know the right configuration to use to get the best performance out of them? This session will examine the results of extensive testing to reveal how partition offset, RAID stripe size, allocation unit size, controller caching, and failed disks affect OLTP performance on local disks and disk arrays.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Session Goals:&lt;/u&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Identify optimal RAID stripe size, allocation unit size, and partition offset to use for OLTP data and log files &lt;/li&gt;    &lt;li&gt;Understand how failed drives impact OLTP performance &lt;/li&gt;    &lt;li&gt;Understand how controller caching impacts OLTP performance &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;     &lt;br /&gt;&amp;lt;title&amp;gt;Working With XML in SQL Server&amp;lt;/title&amp;gt;       &lt;br /&gt;&lt;/strong&gt;XML in SQL 2000 wasn't very exciting and it was easy to dismiss it altogether by just relying on developers to handle any XML needed within the application. SQL 2005 changes the game and this session will show you how to use the XML data type, do basic operations on XML data, and showcase the changes to FOR XML that make it so much more useful. This isn't a session to convince you to use XML, but to show you what you can do with XML if you do need to use it!&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Session Goals:&lt;/u&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Learn how to use the FOR XML PATH and WITH XMLNAMESPACES clauses &lt;/li&gt;    &lt;li&gt;Understand the use of the XML data type, XML schema collections, how to use XML DML to manipulate XML data, and how to use FLWOR to query XML data &lt;/li&gt;    &lt;li&gt;Learn how to create indexes on XML data &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;     &lt;br /&gt;Transactional Replication: Beyond The Basics       &lt;br /&gt;&lt;/strong&gt;At some point in every DBA's career they'll be probably be asked to work with transactional replication but most DBAs don't look under the covers once they're done walking through the setup wizards. In this session we'll take a deeper look at setting up, monitoring, and calibrating transactional publications plus share some tricks and tips gleaned from years of experience working with high volume, multiple datacenter topologies.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Session Goals:&lt;/u&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Understand core concepts of transactional replication including: replication topologies, publishers, distributors, agents, &amp;amp; agent profiles. Learn how to configure advanced options such as vertical and horizontal filtering &lt;/li&gt;    &lt;li&gt;Demonstrate how to monitor transactional replication performance &lt;/li&gt;    &lt;li&gt;Learn advanced troubleshooting techniques to apply when problems occur &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;     &lt;br /&gt;Configuring Secure SQL Access for the Web Developer\Administrator       &lt;br /&gt;&lt;/strong&gt;By now we all know that we should use Windows Authentication to connect to SQL Server from our IIS applications...but most of us don't know how. This session aims to clear up the confusion by demonstrating the ways that ASP &amp;amp; ASP.NET applications can be configured to make secure connections from different versions of IIS so that we can keep our connections secure and our DBAs happy.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Session Goals:&lt;/u&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Understand the concept of impersonation &lt;/li&gt;    &lt;li&gt;Learn how ASP and ASP.NET applications can be configured to use impersonation to make secure connections to SQL Server &lt;/li&gt;    &lt;li&gt;Learn how to configure IIS 5, 6, &amp;amp; 7 and Windows XP, 2003, and 2008 to support impersonation &lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-9054553012614576032?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=quPhGIRJDZ4:iR6_jgLkDTY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=quPhGIRJDZ4:iR6_jgLkDTY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=quPhGIRJDZ4:iR6_jgLkDTY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=quPhGIRJDZ4:iR6_jgLkDTY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=quPhGIRJDZ4:iR6_jgLkDTY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=quPhGIRJDZ4:iR6_jgLkDTY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=quPhGIRJDZ4:iR6_jgLkDTY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=quPhGIRJDZ4:iR6_jgLkDTY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=quPhGIRJDZ4:iR6_jgLkDTY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/quPhGIRJDZ4" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/04/pass-summit-sessions-submitted.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-7298521068263225927</guid><pubDate>Tue, 21 Apr 2009 17:00:00 +0000</pubDate><atom:updated>2009-04-21T13:00:00.978-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL Server 2008</category><category domain="http://www.blogger.com/atom/ns#">Tips</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><category domain="http://www.blogger.com/atom/ns#">SQL Server 2005</category><title>Register A Server More Than Once In SSMS</title><description>&lt;p&gt;In yesterday's post about &lt;a href="http://kendalvandyke.blogspot.com/2009/04/use-sql-2008-express-as-central.html"&gt;using SQL 2008 Express as a Central Management Server&lt;/a&gt; I mentioned that you can't register a server more than once in Object Explorer. Technically that's correct, but I meant to say Registered Servers. It turns out that you &lt;em&gt;can &lt;/em&gt;register a server more than once in Registered Servers - the catch is that you have to add the server to different groups when you register it. Thanks to &lt;a href="http://weblogs.sqlteam.com/mladenp/" target="_blank"&gt;Mladen Prajdić&lt;/a&gt; (&lt;a href="http://twitter.com/MladenPrajdic" target="_blank"&gt;@MladenPrajdic&lt;/a&gt; on Twitter) for pointing out my mistake.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-7298521068263225927?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=8zf3-51UlQM:lmRUAWKAx1I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=8zf3-51UlQM:lmRUAWKAx1I:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=8zf3-51UlQM:lmRUAWKAx1I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=8zf3-51UlQM:lmRUAWKAx1I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=8zf3-51UlQM:lmRUAWKAx1I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=8zf3-51UlQM:lmRUAWKAx1I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=8zf3-51UlQM:lmRUAWKAx1I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=8zf3-51UlQM:lmRUAWKAx1I:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=8zf3-51UlQM:lmRUAWKAx1I:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/8zf3-51UlQM" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/04/register-server-more-than-once-in-ssms.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-6591765589375098334</guid><pubDate>Mon, 20 Apr 2009 18:45:00 +0000</pubDate><atom:updated>2009-04-21T13:00:58.633-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL Server 2008</category><category domain="http://www.blogger.com/atom/ns#">Tips</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><title>Use SQL 2008 Express As A Central Management Server</title><description>&lt;p&gt;I had the chance to catch &lt;a href="http://www.brentozar.com" target="_blank"&gt;Brent Ozar's&lt;/a&gt; webcast last week on &lt;a href="http://www.quest.com/events/listdetails.aspx?contentid=9464&amp;amp;technology=&amp;amp;prod=&amp;amp;prodfamily=&amp;amp;loc=" target="_blank"&gt;creating a poor man's CMDB&lt;/a&gt;. In it he talked at length about the &lt;a href="http://sqlserverpedia.com/wiki/Central_Management_Server" target="_blank"&gt;Central Management Server&lt;/a&gt; feature in SQL 2008. While I use SSMS 2008 my only SQL 2008 database installs so far are running inside Virtual PCs that aren't always on. Fortunately, there is another option – SQL 2008 Express. It's lightweight, free, and best of all it can be used as a CMS. The only catch is that if you put your install on anything other than your local machine (which you're going to do since you're using it as a CMS, otherwise what's the point?) you'll have to enable remote connections. No worries, it's actually an easy task to do – just follow these &lt;a href="http://www.linglom.com/2009/03/28/enable-remote-connection-on-sql-server-2008-express/" target="_blank"&gt;step by step&lt;/a&gt; instructions and you'll be all set.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update – &lt;/strong&gt;It didn't take me long after I posted this to realize that there are cases for running SQL Express locally in order to take advantage of a CMS. One example is if you frequently run multi-server queries and you want to create logical groups of servers where a server belongs to more than one group. Another is if you're a one person shop and you want to use Brent's &lt;a href="http://sqlserverpedia.com/wiki/CMDB" target="_blank"&gt;CMDB scripts&lt;/a&gt; to gather data. &lt;strike&gt;That makes me wonder, though – why didn't Microsoft just add the ability to register a server in more than one group into Object Explorer in the first place? Hmm, I smell a &lt;/strike&gt;&lt;a href="http://connect.microsoft.com/SQLServer" target="_blank"&gt;&lt;strike&gt;Connect&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt; request cooking!&lt;/strike&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update 2 –&lt;/strong&gt; OK I am a &lt;a href="http://www.google.com/search?q=define%3Adolt&amp;amp;rls=com.microsoft:en-us&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;startIndex=&amp;amp;startPage=1&amp;amp;rlz=1I7GGIC_en" target="_blank"&gt;dolt&lt;/a&gt;. In my first update I meant to say Registered Servers, not Object Explorer. I've posted a correction &lt;a href="http://kendalvandyke.blogspot.com/2009/04/register-server-more-than-once-in-ssms.html"&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-6591765589375098334?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=VQVPYM05XWU:DvIEfuAuRi0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=VQVPYM05XWU:DvIEfuAuRi0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=VQVPYM05XWU:DvIEfuAuRi0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=VQVPYM05XWU:DvIEfuAuRi0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=VQVPYM05XWU:DvIEfuAuRi0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=VQVPYM05XWU:DvIEfuAuRi0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=VQVPYM05XWU:DvIEfuAuRi0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=VQVPYM05XWU:DvIEfuAuRi0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=VQVPYM05XWU:DvIEfuAuRi0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/VQVPYM05XWU" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/04/use-sql-2008-express-as-central.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-956221826712294940</guid><pubDate>Wed, 15 Apr 2009 16:00:00 +0000</pubDate><atom:updated>2009-04-15T12:06:30.019-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL Server 2008</category><category domain="http://www.blogger.com/atom/ns#">Tips</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><category domain="http://www.blogger.com/atom/ns#">SQL Server 2005</category><title>Full Text Catalog Scripting "Gotcha" in SSMS 2008</title><description>&lt;p&gt;With every new version of SQL Server comes a set of deprecated features. Usually Microsoft gives fair warning that these features will be removed in a future version of SQL Server but they continue to work for the time being. In some cases, though, arguments for statements are left in place but have no effect on the current version of SQL Server. For example, take a look at &lt;a href="http://technet.microsoft.com/en-us/library/ms189520.aspx" target="_blank"&gt;the syntax for CREATE FULLTEXT CATALOG in SQL 2008&lt;/a&gt;. It's clearly stated that the ON FILEGROUP and IN PATH clauses have no effect in SQL 2008.&lt;/p&gt;  &lt;p&gt;I use SSMS 2008 to manage my servers so that I can take advantage of the UI &lt;a href="http://kendalvandyke.blogspot.com/2009/01/improvements-to-scripting-in-management.html"&gt;improvements&lt;/a&gt; that it offers. A common task I perform is to script objects from Object Explorer; since most of my production servers are running SQL 2005 I set my scripting options to target 2005 (Tools –&amp;gt; Options –&amp;gt; SQL Server Object Explorer –&amp;gt; Scripting). I haven't run into any problems with this until today. Even though my target is SQL 2005, SSMS 2008 is ignoring the ON FILEGROUP and IN PATH clauses when scripting out a full text index since they don't matter in 2008.&lt;/p&gt;  &lt;p&gt;Here's what my scripted index looks like when I use SSMS 2008:&lt;/p&gt;  &lt;p&gt;&lt;code style="font-size: 12px"&gt;&lt;span style="color: blue"&gt;CREATE &lt;/span&gt;&lt;span style="color: black"&gt;FULLTEXT CATALOG [Example Search Catalog]        &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;WITH &lt;/span&gt;&lt;span style="color: black"&gt;ACCENT_SENSITIVITY &lt;/span&gt;&lt;span style="color: blue"&gt;= OFF        &lt;br /&gt;AS DEFAULT         &lt;br /&gt;AUTHORIZATION &lt;/span&gt;&lt;span style="color: black"&gt;[dbo]        &lt;br /&gt;GO         &lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;And here's what the index looks like when I use SSMS 2005:&lt;/p&gt;  &lt;p&gt;&lt;code style="font-size: 12px"&gt;&lt;span style="color: blue"&gt;CREATE &lt;/span&gt;&lt;span style="color: black"&gt;FULLTEXT CATALOG [Example Search Catalog]        &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;IN &lt;/span&gt;&lt;span style="color: black"&gt;PATH &lt;/span&gt;&lt;span style="color: red"&gt;N'E:\FTData'        &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;WITH &lt;/span&gt;&lt;span style="color: black"&gt;ACCENT_SENSITIVITY &lt;/span&gt;&lt;span style="color: blue"&gt;= OFF        &lt;br /&gt;AS DEFAULT         &lt;br /&gt;AUTHORIZATION &lt;/span&gt;&lt;span style="color: black"&gt;[dbo]        &lt;br /&gt;GO         &lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;The same behavior occurs if you use the Scripting Wizard as well. As a general practice I do not run auto generated scripts without reviewing them first, and in this case I'm glad I did because my catalog wouldn't have been created where I wanted it to. Fair warning - there are probably more of these &amp;quot;gotchas&amp;quot; in SSMS 2008. If I find any more I will post them.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-956221826712294940?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=2p1sWhEDnIs:edB455VdaF0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=2p1sWhEDnIs:edB455VdaF0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=2p1sWhEDnIs:edB455VdaF0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=2p1sWhEDnIs:edB455VdaF0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=2p1sWhEDnIs:edB455VdaF0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=2p1sWhEDnIs:edB455VdaF0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=2p1sWhEDnIs:edB455VdaF0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=2p1sWhEDnIs:edB455VdaF0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=2p1sWhEDnIs:edB455VdaF0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/2p1sWhEDnIs" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/04/full-text-catalog-scripting-in-ssms.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-972438411511578880</guid><pubDate>Wed, 01 Apr 2009 17:30:00 +0000</pubDate><atom:updated>2009-04-01T13:30:18.069-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Performance</category><category domain="http://www.blogger.com/atom/ns#">Humor</category><title>Undocumented Trace Flag Improves Performance By Up To 25%</title><description>&lt;p&gt;As a production DBA I love to tweak things to optimal perfection. After all, if I paid for the hardware and software shouldn't I get the best possible performance out of it? In that vein, I've shifted my focus in the last few weeks from &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-series.html"&gt;disk performance&lt;/a&gt; to tweaking SQL by playing with &lt;a href="http://msdn.microsoft.com/en-us/library/ms188396.aspx" target="_blank"&gt;trace flags&lt;/a&gt;. While some trace flags can let you do some pretty ridiculous things (e.g. trace flag 1807 – do you &lt;em&gt;really&lt;/em&gt; want to create a database on a UNC share?), there are others which are quite useful and can improve performance in certain conditions.&lt;/p&gt;  &lt;p&gt;There also happens to be a number of undocumented trace flags. I &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=undocumented+SQL+trace+flags&amp;amp;btnG=Google+Search&amp;amp;aq=f&amp;amp;oq=" target="_blank"&gt;Googled&lt;/a&gt; to find as many as I could but I was unable to get a comprehensive list of all of them so I decided to do some testing and create a list of my own. I had a server handy and a trace of a few thousand commands that had been run on one of our more heavily used production servers. I used the following SQL to create a list of startup commands:&lt;/p&gt;  &lt;p&gt;&lt;code style="font-size: 12px"&gt;&lt;span style="color: blue"&gt;SELECT &lt;/span&gt;&lt;span style="color: red"&gt;'DBCC TRACEON (' &lt;/span&gt;&lt;span style="color: gray"&gt;+ &lt;/span&gt;&lt;span style="color: magenta"&gt;convert&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: blue"&gt;varchar&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: black"&gt;10&lt;/span&gt;&lt;span style="color: gray"&gt;), &lt;/span&gt;&lt;span style="color: black"&gt;number&lt;/span&gt;&lt;span style="color: gray"&gt;) + &lt;/span&gt;&lt;span style="color: red"&gt;')' &lt;/span&gt;&lt;span style="color: blue"&gt;AS &lt;/span&gt;&lt;span style="color: black"&gt;[TraceCmd]        &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;FROM &lt;/span&gt;&lt;span style="color: black"&gt;MASTER.dbo.spt_values        &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;GROUP BY &lt;/span&gt;&lt;span style="color: black"&gt;number        &lt;br /&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;ORDER BY &lt;/span&gt;&lt;span style="color: black"&gt;number&lt;/span&gt;&lt;/code&gt; &lt;/p&gt;  &lt;p&gt;Then I tested each option out by turning on the trace flag and replaying the trace from my production server. I had another trace running to keep track of the total reads, writes, CPU activity, and duration of the replay. As expected, I hit on some already documented undocumented trace options, but surprisingly I came across one trace flag that improved my overall performance by 25%. I was so astonished that I restarted the server and re-ran the test to make sure it wasn't a fluke; sure enough, I was able to reproduce my results.&lt;/p&gt;  &lt;p&gt;Here's the trace flag that I found:&lt;/p&gt;  &lt;p&gt;&lt;code style="font-size: 12px"&gt;&lt;span style="color: blue"&gt;DBCC &lt;/span&gt;&lt;span style="color: black"&gt;TRACEON&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: black"&gt;040109&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt;&lt;/code&gt; &lt;/p&gt;  &lt;p&gt;I haven't figured out exactly what the flag causes the query engine to do differently, but whatever it is I'm not going to argue with the free performance I'm seeing. I'm so stoked about finding this that I'm going to start rolling it out to our production boxes ASAP. I would normally give our my standard disclaimer here and advise that you test this out in a non-production environment first, but this is so huge that you might want to consider going straight to prod with it. And by the way, Happy April Fool's Day! :-P&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-972438411511578880?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=ItZ2_3HAT_s:Hdo3yL7u4Yw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=ItZ2_3HAT_s:Hdo3yL7u4Yw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=ItZ2_3HAT_s:Hdo3yL7u4Yw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=ItZ2_3HAT_s:Hdo3yL7u4Yw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=ItZ2_3HAT_s:Hdo3yL7u4Yw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=ItZ2_3HAT_s:Hdo3yL7u4Yw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=ItZ2_3HAT_s:Hdo3yL7u4Yw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=ItZ2_3HAT_s:Hdo3yL7u4Yw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=ItZ2_3HAT_s:Hdo3yL7u4Yw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/ItZ2_3HAT_s" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/04/undocumented-trace-flag-improves.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-1442378984596448360</guid><pubDate>Tue, 31 Mar 2009 19:00:00 +0000</pubDate><atom:updated>2009-03-31T15:12:15.390-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Presentations</category><title>Orlando .NET Code Camp 2009 Recap</title><description>&lt;p&gt;On Saturday, 3/28, I presented &lt;em&gt;Useful T-SQL Statements You May Not Be Aware Of&lt;/em&gt; at the &lt;a href="http://www.orlandocodecamp.com/" target="_blank"&gt;2009 Orlando .NET Code Camp&lt;/a&gt;. Despite some glitches with the projector I think the presentation went well. About 20 people came and there was a lot of good dialog, a few laughs, and even even something pretty unique – right in the middle of the presentation the space shuttle Discovery flew over Orlando on its way to landing at Kennedy Space Center and we heard the double sonic booms.&lt;/p&gt;  &lt;p&gt;A lot of great questions were asked, including a few that stumped me. I promised to find out the answers and blog about them, but unfortunately I made the mistake of not writing them down at the time. If you were at my session and I didn't\couldn't answer your question, please leave a comment and I will make sure to get you the answer.&lt;/p&gt;  &lt;p&gt;Because of a scheduling conflict I was only able to be there for my presentation, but from what I've read elsewhere – see &lt;a href="http://blog.geeksgonebad.com/2009/03/31/orlando-code-camp/" target="_blank"&gt;here&lt;/a&gt;, &lt;a href="http://www.sqlservercentral.com/blogs/andy_warren/archive/2009/03/30/notes-on-the-2009-orlando-code-camp.aspx" target="_blank"&gt;here&lt;/a&gt;, &lt;a href="http://thedamndata.blogspot.com/2009/03/orlando-code-camp-review.html" target="_blank"&gt;here&lt;/a&gt;, and &lt;a href="http://geekswithblogs.net/bscarbeau/archive/2009/03/29/130504.aspx" target="_blank"&gt;here&lt;/a&gt; – it was a great day for everyone who came.&lt;/p&gt;  &lt;p&gt;I've posted my slide deck and samples for download below.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Download&lt;/strong&gt;: &lt;a href="http://kendal-van-dyke.googlegroups.com/web/Useful+T-SQL+statements+you+may+not+be+aware+of.zip?gda=GksmsWUAAAB7AxIJCM8IJwyCDPmKr7w4NBNNpret1x5S3hHdpOhF1ZVRGVxM-P3zlXdBGWIzrnkLxw3YAaYVHb_bhgNBw9RHmi-sHYoovjICYBPOaMotQ76dzERnisIDE61z0MHgutMa7WIsd6qHDhllGPdGMn_4&amp;amp;gsc=plUsXwsAAAA1BW08L7HpBV5AK4YOwv6N"&gt;Useful T-SQL Statements You May Not Be Aware Of.zip&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-1442378984596448360?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=2-cGpmFtytY:HqJYCoVk5kY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=2-cGpmFtytY:HqJYCoVk5kY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=2-cGpmFtytY:HqJYCoVk5kY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=2-cGpmFtytY:HqJYCoVk5kY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=2-cGpmFtytY:HqJYCoVk5kY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=2-cGpmFtytY:HqJYCoVk5kY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=2-cGpmFtytY:HqJYCoVk5kY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=2-cGpmFtytY:HqJYCoVk5kY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=2-cGpmFtytY:HqJYCoVk5kY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/2-cGpmFtytY" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/03/orlando-net-code-camp-2009-recap.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-3695076256543199375</guid><pubDate>Wed, 25 Mar 2009 20:00:00 +0000</pubDate><atom:updated>2009-03-25T17:42:43.414-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL Server 2008</category><category domain="http://www.blogger.com/atom/ns#">Replication</category><category domain="http://www.blogger.com/atom/ns#">Tips</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><category domain="http://www.blogger.com/atom/ns#">SQL Server 2005</category><title>Launch Replication Monitor Without SSMS</title><description>&lt;p&gt;I manage a &lt;u&gt;lot&lt;/u&gt; of replication publications\subscriptions and when I get a latency or agent failure alert it always bugs me that I have to go through 5 steps to launch Replication Monitor: launch SSMS, go to my server in object explorer, expand the treeview, right click on the Replication node, and choose the menu option to launch Replication Monitor. To make things easier I did what I think Microsoft should have done in the first place and created a shortcut to the Replication Monitor executable in my start menu and on my desktop.&lt;/p&gt;  &lt;p&gt;To create a shortcut for yourself open up Windows Explorer and navigate to &lt;strong&gt;C:\Program Files\Microsoft SQL Server\100\Tools\Binn &lt;/strong&gt;if you're running SSMS 2008 or &lt;strong&gt;C:\Program Files\Microsoft SQL Server\90\Tools\Binn&lt;/strong&gt; if you're running SSMS 2005. Right click on &lt;strong&gt;sqlmonitor.exe&lt;/strong&gt; and choose &lt;strong&gt;Send To &amp;gt; Desktop (Create Shortcut)&lt;/strong&gt;. Now you've got a shortcut on your desktop that will launch Replication Monitor with a simple double click! (You'll probably also want to rename the shortcut to something like &amp;quot;Replication Monitor&amp;quot;)&lt;/p&gt;  &lt;p&gt;Unfortunately the default icon doesn't look great in anything bigger than 16x16 so I replaced it with a really nice (and free!) &lt;a href="http://www.iconspedia.com/icon/activity-monitor-7310.html" target="_blank"&gt;icon from iconspedia.com&lt;/a&gt; that looks much better:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Activity-monitor-48" border="0" alt="Activity-monitor-48" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/ScqPk8r4ZqI/AAAAAAAAAro/_uVj9IsAS40/Activity-monitor-48%5B11%5D.png?imgmax=800" width="48" height="48" /&gt; Happy monitoring!&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Visit:&lt;/strong&gt; &lt;a href="http://www.iconspedia.com/icon/activity-monitor-7310.html"&gt;Activity Monitor Icon on iconpedia.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-3695076256543199375?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=AEyMvTFr7mo:appU5N9SnOo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=AEyMvTFr7mo:appU5N9SnOo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=AEyMvTFr7mo:appU5N9SnOo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=AEyMvTFr7mo:appU5N9SnOo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=AEyMvTFr7mo:appU5N9SnOo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=AEyMvTFr7mo:appU5N9SnOo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=AEyMvTFr7mo:appU5N9SnOo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=AEyMvTFr7mo:appU5N9SnOo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=AEyMvTFr7mo:appU5N9SnOo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/AEyMvTFr7mo" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/03/launch-replication-monitor-without-ssms.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-8822624905142817965</guid><pubDate>Tue, 24 Mar 2009 21:30:00 +0000</pubDate><atom:updated>2009-03-24T22:06:10.641-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">About Me</category><title>Ada Lovelace Day – Celebrating Women In Technology</title><description>&lt;p&gt;Today is &lt;a href="http://www.pledgebank.com/AdaLovelaceDay" target="_blank"&gt;Ada Lovelace Day&lt;/a&gt;, an international day of blogging to draw attention to women excelling in technology. I don't normally post off-topic things, but this particular subject hits home for me. No, not because the first computer language I learned in college was Ada 95. It's because I admire what a certain rocket scientist whom I call my sister has done.&lt;/p&gt;  &lt;p&gt;A mechanical engineer by degree, she worked as an intern for a summer at NASA on the shuttle's solid rocket boosters and knew exactly who she wanted to work for when she graduated. Unfortunately politics and the federal budget left her hanging for 2 years, but she finally got the call and went to work at Marshall Space Flight Center in Huntsville, AL. She spent many years working on nuclear propulsion systems for probes destined for the outer planets of our solar system while working her way up the NASA ladder and earning a Master of Mechanical Engineering degree to boot. Today, after 18 years, she's a Branch Chief in NASA's Propulsion Thermal Analysis group and won't tell me what she's working in - though in all fairness she can't because it's classified.&lt;/p&gt;  &lt;p&gt;Not only do I admire what she's accomplished technically, but that she's excelled in what is normally regarded as a a male dominated field and a NASA management culture that has a reputation for…well, lots of things that prompt talent to depart for the private industry. She's worked hard&amp;#160; to get where she is and is the kind of role model that young women interested in science can look up to.&lt;/p&gt;  &lt;p&gt;Great job, sis!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-8822624905142817965?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=FUDOHjr3lmU:NR4v3XTAJAY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=FUDOHjr3lmU:NR4v3XTAJAY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=FUDOHjr3lmU:NR4v3XTAJAY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=FUDOHjr3lmU:NR4v3XTAJAY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=FUDOHjr3lmU:NR4v3XTAJAY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=FUDOHjr3lmU:NR4v3XTAJAY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=FUDOHjr3lmU:NR4v3XTAJAY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=FUDOHjr3lmU:NR4v3XTAJAY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=FUDOHjr3lmU:NR4v3XTAJAY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/FUDOHjr3lmU" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/03/ada-lovelace-day-celebrating-women-in.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-5516445797369017724</guid><pubDate>Mon, 23 Mar 2009 16:30:00 +0000</pubDate><atom:updated>2009-03-23T12:34:47.299-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Syndication</category><category domain="http://www.blogger.com/atom/ns#">Data Mining</category><title>Data Mining With Google Insights For Search</title><description>&lt;p&gt;I recently read a &lt;a href="http://www.nytimes.com/2008/11/12/technology/internet/12flu.html?_r=1&amp;amp;exprod=myyahoo" target="_blank"&gt;NYT article&lt;/a&gt; that highlighted how Google search data is being used to predict flu outbreaks at a regional level and in some cases a week to 10 days before they're reported by the CDC. It turns out that a good portion, if not all, of Google's search data is available for anybody to query using &lt;a href="http://www.google.com/insights/search/#" target="_blank"&gt;Google Insights for Search BETA&lt;/a&gt;. You can search on multiple terms and filter by time, geographic region, and category.&lt;/p&gt;  &lt;p&gt;For example, look at the worldwide results for &lt;a href="http://www.google.com/insights/search/#q=cloud%20computing&amp;amp;cmpt=q" target="_blank"&gt;cloud computing&lt;/a&gt;. Interest has steadily gained in the last 18 months(follow the link and you'll see that surprisingly the peak interest comes from India - the US ranks 6th on the list):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.google.com/insights/search/#q=Cloud%20Computing&amp;amp;date=1%2F2007%2028m&amp;amp;cmpt=q" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Cloud Computing" border="0" alt="Cloud Computing" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/Sce6Irgi0gI/AAAAAAAAArE/z6u4KEfg5-I/image%5B37%5D.png?imgmax=800" width="644" height="156" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;What about social networking sites? Here's the almost exponential rise in popularity of &lt;a href="http://www.google.com/insights/search/#q=twitter&amp;amp;cmpt=q" target="_blank"&gt;Twitter&lt;/a&gt; in the last few months:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.google.com/insights/search/#q=Twitter&amp;amp;date=1%2F2007%2028m&amp;amp;cmpt=q" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Twitter" border="0" alt="Twitter" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/Sce6JBfi_mI/AAAAAAAAArI/xVkyBqhjDQE/image%5B44%5D.png?imgmax=800" width="644" height="156" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Putting it into perspective, look at how Twitter compares to more established sites like MySpace and Facebook:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.google.com/insights/search/#q=twitter%2Cmyspace%2Cfacebook&amp;amp;date=1%2F2005%2052m&amp;amp;cmpt=q" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Facebook vs. MySpace vs. Twitter" border="0" alt="Facebook vs. MySpace vs. Twitter" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/Sce6JhtMN9I/AAAAAAAAArM/oI6scj6Pl8s/image%5B31%5D.png?imgmax=800" width="644" height="156" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the graph above MySpace is the red line, Facebook is the yellow line, and Twitter is the little tiny blue bump in the lower right corner. Three things stand out: MySpace's popularity has peeked and it's on a slow decline, Facebook is red hot, and Twitter has a long way to go before it's as popular as the others.&lt;/p&gt;  &lt;p&gt;Given that Google is the de facto search engine for most people it's easy to see how useful – and powerful - this tool can be.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-5516445797369017724?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=K1cXdIdvUkg:m09wEV5ySSE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=K1cXdIdvUkg:m09wEV5ySSE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=K1cXdIdvUkg:m09wEV5ySSE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=K1cXdIdvUkg:m09wEV5ySSE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=K1cXdIdvUkg:m09wEV5ySSE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=K1cXdIdvUkg:m09wEV5ySSE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=K1cXdIdvUkg:m09wEV5ySSE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=K1cXdIdvUkg:m09wEV5ySSE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=K1cXdIdvUkg:m09wEV5ySSE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/K1cXdIdvUkg" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/03/data-mining-with-google-insights-for.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-7355036479080189848</guid><pubDate>Thu, 26 Feb 2009 22:00:00 +0000</pubDate><atom:updated>2009-03-17T10:01:10.103-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Presentations</category><category domain="http://www.blogger.com/atom/ns#">SQLSaturday</category><category domain="http://www.blogger.com/atom/ns#">About Me</category><title>Upcoming Speaking Engagements</title><description>&lt;p&gt;I've got three speaking engagements lined up in next two months:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Wed, March 11 @ &lt;a href="http://opass.org/" target="_blank"&gt;oPASS&lt;/a&gt;: &lt;/strong&gt;&lt;em&gt;The Truth About Disk Performance &amp;amp; Configuration&lt;/em&gt;. This presentation is based on the results from my recent &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-series.html"&gt;Disk Performance Hands On series&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Sat, March 28 @ &lt;a href="http://orlandocodecamp.com/Home.aspx" target="_blank"&gt;Orlando .NET Code Camp&lt;/a&gt;: &lt;/strong&gt;&lt;em&gt;Useful T-SQL Statements You May Not Be Aware Of&lt;/em&gt;. This session will highlight several useful T-SQL statements that most people may not be aware of. Examples include: PIVOT, MERGE, ROW_NUMBER, RANK, OUTPUT, SCOPE_IDENTITY(), and more &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Sat, April 25 @ &lt;a href="http://www.sqlsaturday.com/eventhome.aspx?eventid=17" target="_blank"&gt;SQLSaturday #13&lt;/a&gt; (ATL):&lt;/strong&gt; &lt;em&gt;The Truth About Disk Performance &amp;amp; Configuration&lt;/em&gt;&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you make it out to any of these be sure to drop by and say hello!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-7355036479080189848?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=3KLFRXQ6Xa4:zECCOkK-99U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=3KLFRXQ6Xa4:zECCOkK-99U:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=3KLFRXQ6Xa4:zECCOkK-99U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=3KLFRXQ6Xa4:zECCOkK-99U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=3KLFRXQ6Xa4:zECCOkK-99U:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=3KLFRXQ6Xa4:zECCOkK-99U:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=3KLFRXQ6Xa4:zECCOkK-99U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=3KLFRXQ6Xa4:zECCOkK-99U:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=3KLFRXQ6Xa4:zECCOkK-99U:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/3KLFRXQ6Xa4" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/02/upcoming-speaking-engagements_26.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-4598666559787889624</guid><pubDate>Mon, 23 Feb 2009 22:00:00 +0000</pubDate><atom:updated>2009-02-23T23:38:31.662-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">About Me</category><title>My First Computer</title><description>&lt;p&gt;&lt;img title="Image Courtesy of www.computercloset.org" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 0px 10px; border-right-width: 0px" height="152" alt="Image Courtesy of www.computercloset.org" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SaMeJmK4d-I/AAAAAAAAAqE/KE4faTYbmTE/TomyTutor%5B1%5D%5B10%5D.jpg?imgmax=800" width="242" align="right" border="0" /&gt; &lt;a href="http://forum.lessthandot.com/viewtopic.php?f=100&amp;amp;t=1946" target="_blank"&gt;Denis Gobo started another quiz&lt;/a&gt;, this time mostly unrelated to SQL. The question: What was your first computer and what were some of your favorite games? &lt;a href="http://www.brentozar.com/" target="_blank"&gt;Brent Ozar&lt;/a&gt; tagged me last week but I was so wrapped up in finishing my disk performance series that I didn't get around to answering this until now…&lt;/p&gt;  &lt;p&gt;My first computer was a Tomy Tutor. &amp;quot;A what?&amp;quot; you're probably saying to yourself. Introduced to the US in 1983, the Tomy Tutor had a CPU than ran at a blazing 2.7 MHz. It sported 16K RAM (expandable to 64K!), 48K ROM, and with a 256 x 192 resolution at a stunning 16 colors. It ran the Tomy BASIC OS and had built in paint and GBASIC programs. It had a useless 55 key rubber keyboard (think rubber = waterproof? Uh, no, think again). Peripherals included a cassette tape drive for saving drawings and programs, a joystick, and paddles for playing games. &lt;/p&gt;  &lt;p&gt;The games were cartridges that plugged into a slot above the keyboard. My favorites – which happened to be the only ones I owned - were &lt;strong&gt;Traffic Jam&lt;/strong&gt;, &lt;strong&gt;Deep Six&lt;/strong&gt;, and &lt;strong&gt;Pooyan&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;I managed to find &lt;a href="http://video.google.com/videoplay?docid=-2280154749483391062" target="_blank"&gt;this Google video&lt;/a&gt; which shows off how high-tech this was (For some reason embedding it blew up IE so I'm linking to it instead). &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;My Second Computer      &lt;br /&gt;&lt;/strong&gt;OK, the Tomy Tutor was lame, but it &lt;em&gt;was &lt;/em&gt;my first computer. It didn't take me long before I graduated to the C64, and oh what a difference that was! It had this nifty thing called a modem that you could use to call BBSs and share stuff. And don't forget about a floppy disk drive that could load and save data so much faster than those cassette tapes! How cool was that? OK, still lame by today's standards – but that was 1984 and it was all the rage.&lt;/p&gt;  &lt;p&gt;Favorite games include: BC's Quest For Tires, Choplifter, Impossible Mission, Moon Buggy, and the classic M.U.L.E. Wow, I think I just got a tear in my eye remembering all the good times I had playing those games!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;After That Came…      &lt;br /&gt;&lt;/strong&gt;There were a couple of others I used afterwards worth mentioning for the fun of it. Yes, I am a geek.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Franklin (Apple clone, loved programming BASIC on it!) &lt;/li&gt;    &lt;li&gt;KayPro 2X (I still remember typing papers on that green monochrome screen) &lt;/li&gt;    &lt;li&gt;286 (many gaming memories here – King's Quest, Loom, and Links 286 - &amp;quot;Looks like he…hit the tree, Jim&amp;quot;) &lt;/li&gt;    &lt;li&gt;386 (with a math coprocessor!) &lt;/li&gt;    &lt;li&gt;486 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Once the Pentiums came out everything was a blur. But I will always look back fondly at those first couple of computers. Hindsight is 20\20, and it's my early days tinkering around with those machines that led me to a career in computer science.&lt;/p&gt;  &lt;p&gt;I'm pretty late on my response so I'm not going to tag anyone else since everyone else I know has already been tagged.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-4598666559787889624?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=uVhMRdvBLlo:Z_GBKm_UWZk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=uVhMRdvBLlo:Z_GBKm_UWZk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=uVhMRdvBLlo:Z_GBKm_UWZk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=uVhMRdvBLlo:Z_GBKm_UWZk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=uVhMRdvBLlo:Z_GBKm_UWZk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=uVhMRdvBLlo:Z_GBKm_UWZk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=uVhMRdvBLlo:Z_GBKm_UWZk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=uVhMRdvBLlo:Z_GBKm_UWZk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=uVhMRdvBLlo:Z_GBKm_UWZk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/uVhMRdvBLlo" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/02/my-first-computer.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-769554740627313131</guid><pubDate>Fri, 20 Feb 2009 21:45:00 +0000</pubDate><atom:updated>2009-02-20T19:11:00.169-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL Server 2008</category><category domain="http://www.blogger.com/atom/ns#">Best Practices</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><category domain="http://www.blogger.com/atom/ns#">SQL Server 2005</category><category domain="http://www.blogger.com/atom/ns#">Performance</category><title>Disk Performance Hands On: Series Recap</title><description>&lt;p&gt;&lt;em&gt;This is Part 8 in an ongoing series on disk performance. You can read the entire series by starting at the &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-series.html"&gt;Introduction&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Now that we’ve come to the end of the series let’s look back at what we’ve learned:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;OLTP Operations&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;For data files SQL Server reads and writes are 8KB and random in nature &lt;/li&gt;    &lt;li&gt;For transaction logs SQL Server writes are between 512 bytes &amp;amp; 64KB and sequential in nature &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;RAID Stripe, Partition Offset, &amp;amp; Allocation Unit Size&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Optimal settings for OLTP data operations on local disks and DASD      &lt;ul&gt;       &lt;li&gt;64 KB RAID stripe &lt;/li&gt;        &lt;li&gt;64 KB partition offset &lt;/li&gt;        &lt;li&gt;64 KB allocation unit size &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;For OLTP transaction log operations on RAID 1 choice of partition offset and allocation unit size make little to no difference in performance &lt;/li&gt;    &lt;li&gt;64 KB partition offset vs. 32 KB partition offset      &lt;ul&gt;       &lt;li&gt;For RAID 10 with a 64 KB RAID stripe and 64 KB allocation unit, using a 64 KB offset resulted in an 11% improvement in IOs/sec and MBs/sec, and a 10% improvement in average latency for 8 KB random reads. For 8 KB random writes using a 64 KB offset resulted in a 10.6% improvement in IOs/sec, MBs/sec, and average latency &lt;/li&gt;        &lt;li&gt;For RAID 5 with a 64 KB RAID stripe and a 64 KB allocation unit, using a 64 KB offset resulted in a 5.7% improvement in IOs/sec and MBs/sec and an 8% improvement in average latency for 8 KB random reads. For 8 KB random writes using a 64 KB offset resulted in a 5.5% improvement in IOs/sec, MBs/sec, and average latency &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;RAID 10 vs. RAID 5&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;For a RAID 5 array using the same number of physical disks as a RAID 10 array, RAID 5 offers 10-15% better performance for 8 KB random reads but a whopping 60-65% worse performance for 8 KB random writes&lt;/li&gt;    &lt;li&gt;To get RAID 10 write performance out of RAID 5 will require a RAID 5 array to use roughly 2x the number of physical disks than are present in the RAID 10 array&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;RAID 10 vs. RAID 1&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If you take a RAID 10 drive which holds a single OLTP data file and reconfigure the physical drives as multiple RAID 1 drives which each holding a data file of equal size and belonging to the same filegroup, expect to see roughly equivalent performance as the RAID 10 configuration &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;PowerVault 220S (SCSI) vs. PowerVault MD1000 (SAS)&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;For both RAID 10 and RAID 5 on a PowerVault MD1000 expect to see 5-10% better performance for 8 KB random reads and 10-12% better performance for 8 KB random writes than the equivalent configuration on a PowerVault 220S &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Misc Takeaways&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Make sure you test against your target workloads. As I was writing this series I initially looked at 64 KB random reads. After I re-evaluated my results using 8 KB random reads I changed my recommendation for the optimal RAID stripe size to use. &lt;/li&gt;    &lt;li&gt;My findings apply to local disks and DASD. If you’re on a SAN, things like partition offset are still applicable but ultimately you should consult your vendor or enterprise storage architect about optimizing disk performance. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I’ve enjoyed writing this series, and I hope that you have likewise enjoyed reading it! If you have any questions, comments, etc. please leave a comment below or feel free to contact me at kendal.vandyke at gmail dot com.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-769554740627313131?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=IhuSlrNm1CE:QZU6-g-LY5M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=IhuSlrNm1CE:QZU6-g-LY5M:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=IhuSlrNm1CE:QZU6-g-LY5M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=IhuSlrNm1CE:QZU6-g-LY5M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=IhuSlrNm1CE:QZU6-g-LY5M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=IhuSlrNm1CE:QZU6-g-LY5M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=IhuSlrNm1CE:QZU6-g-LY5M:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=IhuSlrNm1CE:QZU6-g-LY5M:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=IhuSlrNm1CE:QZU6-g-LY5M:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/IhuSlrNm1CE" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-series-recap.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-1228510683942791859</guid><pubDate>Thu, 19 Feb 2009 22:00:00 +0000</pubDate><atom:updated>2009-02-20T16:47:10.586-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL Server 2008</category><category domain="http://www.blogger.com/atom/ns#">Best Practices</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><category domain="http://www.blogger.com/atom/ns#">SQL Server 2005</category><category domain="http://www.blogger.com/atom/ns#">Performance</category><title>Disk Performance Hands On, Part 7: PowerVault 220S vs. PowerVault MD1000</title><description>&lt;p&gt;&lt;em&gt;This is Part 7 in an ongoing series on disk performance. You can read the entire series by starting at the &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-series.html"&gt;Introduction&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;For the last 7 or so years the PowerVault 220S was Dell's offering in DASD enclosures. It supports 14 SCSI drives and can run in split bus mode with 7 drives per SCSI bus. It's since been replaced by the PowerVault MD1000 which supports 15 SAS\SATA drives and can also run in split bus mode with 7 drives on one bus and 8 drives on the other. I recently had the opportunity to run tests against both models to see how they compare against one another. I didn't have too long with them so I was only able to test RAID 10 and RAID 5 before I had to put them back into action in production.&lt;/p&gt;  &lt;p&gt;The PowerVault 220S tests were run using 12 146 GB 15K RPM Ultra320 SCSI drives and the enclosure was connected to a PowerEdge 2850 via a PERC 4/DC controller card. The PowerVault MD1000 tests were run using 12 146 GB 15K RPM SAS drives and the enclosure was connected to a PowerEdge 2950 via a PERC 5/E controller card. Tests were done against each enclosure in split bus mode using a 64 KB RAID stripe, 64 KB allocation unit size, and partition offsets of 32 KB, 64 KB, and 1024 KB. To see how each system scaled under load I ran separate tests with 4, 8, and 16 threads with an IO queue depth of 8 against a 512 GB data file. You can view the specifics of each setup &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-1-test.html"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;PowerVault 220S – RAID 10      &lt;br /&gt;&lt;/strong&gt;Here's what 8 KB random reads look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random reads, PowerVault 220S, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random reads, PowerVault 220S, RAID 10" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ3Z-QhYuNI/AAAAAAAAAno/2-7gD5FAQAU/image%5B2%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random reads, PowerVault 220S, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random reads, PowerVault 220S, RAID 10" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZ3aFUUXELI/AAAAAAAAAns/ijUCgXLxC78/image%5B5%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random reads, PowerVault 220S, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg latency, 8 KB random reads, PowerVault 220S, RAID 10" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZ3aFneaRiI/AAAAAAAAAnw/z3CpJ-DbHVc/image%5B8%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;And here's what 8 KB random writes look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random writes, PowerVault 220S, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random writes, PowerVault 220S, RAID 10" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ3aFjlvimI/AAAAAAAAAn0/1jE6hJ5PG4M/image%5B11%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random writes, PowerVault 220S, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random writes, PowerVault 220S, RAID 10" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZ3aFxtoLCI/AAAAAAAAAn4/LOGBrfp5sZ0/image%5B14%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random writes, PowerVault 220S, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg latency, 8 KB random writes, PowerVault 220S, RAID 10" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZ3aGExkROI/AAAAAAAAAn8/JFqKalQyd7U/image%5B17%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;PowerVault 220S – RAID 5      &lt;br /&gt;&lt;/strong&gt;Here's what 8 KB random reads look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random reads, PowerVault 220S, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random reads, PowerVault 220S, RAID 5" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZ3aGeYL08I/AAAAAAAAAoA/cY9VmuIzrg8/image%5B47%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random reads, PowerVault 220S, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random reads, PowerVault 220S, RAID 5" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZ3aGclGM3I/AAAAAAAAAoE/r82AoR0-iVo/image%5B50%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random reads, PowerVault 220S, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg latency, 8 KB random reads, PowerVault 220S, RAID 5" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZ3aGo5FBMI/AAAAAAAAAoI/KR59f8Y-pNQ/image%5B53%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;And here's what 8 KB random writes look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random writes, PowerVault 220S, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random writes, PowerVault 220S, RAID 5" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZ3aGtvVTpI/AAAAAAAAAoM/7WU8WmHJvy4/image%5B38%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random writes, PowerVault 220S, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random writes, PowerVault 220S, RAID 5" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZ3aHOSI7tI/AAAAAAAAAoQ/D483-TVp-AY/image%5B41%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random writes, PowerVault 220S, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg latency, 8 KB random writes, PowerVault 220S, RAID 5" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ3aHHfh-pI/AAAAAAAAAoU/xzCwuWq7wh4/image%5B44%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;PowerVault MD1000 – RAID 10      &lt;br /&gt;&lt;/strong&gt;Here's what 8 KB random reads look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random reads, PowerVault MD1000, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random reads, PowerVault MD1000, RAID 10" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZ3aHYNWqmI/AAAAAAAAAoY/eCfbTKMmqxg/image%5B56%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random reads, PowerVault MD1000, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random reads, PowerVault MD1000, RAID 10" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ3aHjkPbOI/AAAAAAAAAoc/qhEp88tN5fM/image%5B59%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random reads, PowerVault MD1000, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg latency, 8 KB random reads, PowerVault MD1000, RAID 10" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ3aH4yu2jI/AAAAAAAAAog/GAM0M49Uxt8/image%5B62%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;And here's what 8 KB random writes look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random writes, PowerVault MD1000, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random writes, PowerVault MD1000, RAID 10" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ3aIGHdo-I/AAAAAAAAAok/PSq2x8mUFEM/image%5B65%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random writes, PowerVault MD1000, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random writes, PowerVault MD1000, RAID 10" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZ3aIXA5cEI/AAAAAAAAAoo/wLSF_4AUpLY/image%5B68%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random writes, PowerVault MD1000, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg latency, 8 KB random writes, PowerVault MD1000, RAID 10" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ3aI_RKQkI/AAAAAAAAAos/NK2-_hQUk_I/image%5B71%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;PowerVault MD1000 – RAID 5      &lt;br /&gt;&lt;/strong&gt;Here's what 8 KB random reads look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random reads, PowerVault MD1000, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random reads, PowerVault MD1000, RAID 5" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZ3aJDGoYGI/AAAAAAAAAow/XIBfQeiziRE/image%5B74%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random reads, PowerVault MD1000, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random reads, PowerVault MD1000, RAID 5" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ3aJczgAnI/AAAAAAAAAo0/s4fDsoSYeIg/image%5B132%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random reads, PowerVault MD1000, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg latency, 8 KB random reads, PowerVault MD1000, RAID 5" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ3aJZ4QyyI/AAAAAAAAAo4/BvjQrgHBB-s/image%5B80%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;And here’s what 8 KB random writes look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random writes, PowerVault MD1000, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random writes, PowerVault MD1000, RAID 5" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZ3aKZsVO-I/AAAAAAAAAo8/oHJJaWCr9Aw/image%5B83%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random writes, PowerVault MD1000, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random writes, PowerVault MD1000, RAID 5" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ3aKWC82tI/AAAAAAAAApA/rcVWcVwDdh4/image%5B135%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random writes, PowerVault MD1000, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg latency, 8 KB random writes, PowerVault MD1000, RAID 5" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZ3aKp5RvhI/AAAAAAAAApE/HbamMNHOMAI/image%5B89%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Head To Head - RAID 10      &lt;br /&gt;&lt;/strong&gt;Now for fun I’ll look at a head to head RAID 10 matchup of the 220S against the MD1000. These comparisons use the same testing parameters I outlined at the top of this post except that I am focusing only on a 64 KB partition offset this time.&lt;/p&gt;  &lt;p&gt;Here’s what 8 KB random reads look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random reads, PowerVault 220S vs MD1000, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="IOs/sec, 8 KB random reads, PowerVault 220S vs MD1000, RAID 10" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZ3aKvT1ZDI/AAAAAAAAApI/VTd0jw44I5s/image%5B92%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random reads, PowerVault 220S vs MD1000, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="MBs/sec, 8 KB random reads, PowerVault 220S vs MD1000, RAID 10" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ3aK53GPsI/AAAAAAAAApM/BIWj5VhGhXc/image%5B95%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random reads, PowerVault 220S vs MD1000, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="Avg latency, 8 KB random reads, PowerVault 220S vs MD1000, RAID 10" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZ3aLFvcKKI/AAAAAAAAApQ/1VNchOI_6xk/image%5B98%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;And here’s what 8 KB random writes look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random writes, PowerVault 220S vs MD1000, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="IOs/sec, 8 KB random writes, PowerVault 220S vs MD1000, RAID 10" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZ3aLZNy4II/AAAAAAAAApU/p6F198Hq2rg/image%5B101%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random writes, PowerVault 220S vs MD1000, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="MBs/sec, 8 KB random writes, PowerVault 220S vs MD1000, RAID 10" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZ3aLRSiNaI/AAAAAAAAApY/ck4mzY-4a0I/image%5B104%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random writes, PowerVault 220S vs MD1000, RAID 10" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="Avg latency, 8 KB random writes, PowerVault 220S vs MD1000, RAID 10" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZ3aLptYd-I/AAAAAAAAApc/wv0ihnfgVBI/image%5B107%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Head To Head - RAID 5      &lt;br /&gt;&lt;/strong&gt;Here’s what 8 KB random reads look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random reads, PowerVault 220S vs MD1000, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="IOs/sec, 8 KB random reads, PowerVault 220S vs MD1000, RAID 5" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZ3aL4L3UwI/AAAAAAAAApg/_xeSgGPiWmk/image%5B110%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random reads, PowerVault 220S vs MD1000, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="MBs/sec, 8 KB random reads, PowerVault 220S vs MD1000, RAID 5" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZ3aL_0I98I/AAAAAAAAApk/rtHzcrcF69w/image%5B113%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random reads, PowerVault 220S vs MD1000, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="Avg latency, 8 KB random reads, PowerVault 220S vs MD1000, RAID 5" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZ3aMJ384sI/AAAAAAAAApo/z6hlrauzxj0/image%5B116%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;And here’s what 8 KB random writes look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random writes, PowerVault 220S vs MD1000, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="IOs/sec, 8 KB random writes, PowerVault 220S vs MD1000, RAID 5" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ3aMEMZtpI/AAAAAAAAAps/dhwvRR7ZwLU/image%5B119%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random writes, PowerVault 220S vs MD1000, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="MBs/sec, 8 KB random writes, PowerVault 220S vs MD1000, RAID 5" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZ3aMYFLAQI/AAAAAAAAApw/r_rM2BZIDYA/image%5B122%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random writes, PowerVault vs MD1000, RAID 5" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="Avg latency, 8 KB random writes, PowerVault vs MD1000, RAID 5" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ3aMmq7H4I/AAAAAAAAAp0/M2e0QfgUffU/image%5B125%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Conclusion      &lt;br /&gt;&lt;/strong&gt;No surprises here, the newer controller card and faster drives in the PowerVault MD1000 outperformed the PowerVault 220S. The chart below shows the MD1000’s performance metrics as a percentage relative to the 220S. Recall that for average latency lower values mean better performance so a negative number indicates a decrease in latency (which is good)&lt;/p&gt;  &lt;p&gt;&lt;img title="PowerVault MD1000 performance relative to PowerVault 220S" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="161" alt="PowerVault MD1000 performance relative to PowerVault 220S" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZ3aMpet9bI/AAAAAAAAAp4/Cmbgqa0NwTk/image%5B129%5D.png?imgmax=800" width="573" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;In &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-series-recap.html"&gt;Part 8&lt;/a&gt; I will wrap things up and recap the conclusions reached in Parts 1-7.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-1228510683942791859?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=zo9xK-ibHHg:ZsZRoo39BKc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=zo9xK-ibHHg:ZsZRoo39BKc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=zo9xK-ibHHg:ZsZRoo39BKc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=zo9xK-ibHHg:ZsZRoo39BKc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=zo9xK-ibHHg:ZsZRoo39BKc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=zo9xK-ibHHg:ZsZRoo39BKc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=zo9xK-ibHHg:ZsZRoo39BKc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=zo9xK-ibHHg:ZsZRoo39BKc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=zo9xK-ibHHg:ZsZRoo39BKc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/zo9xK-ibHHg" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-7.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-2348358602138404650</guid><pubDate>Wed, 18 Feb 2009 22:00:00 +0000</pubDate><atom:updated>2009-02-19T17:17:48.689-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL Server 2008</category><category domain="http://www.blogger.com/atom/ns#">Best Practices</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><category domain="http://www.blogger.com/atom/ns#">SQL Server 2005</category><category domain="http://www.blogger.com/atom/ns#">Performance</category><title>Disk Performance Hands On, Part 6: RAID 10 vs. RAID 1</title><description>&lt;p&gt;&lt;em&gt;This is Part 6 in an ongoing series on disk performance. You can read the entire series by starting at the &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-series.html"&gt;Introduction&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Pop quiz: If you had to configure 4 physical disks to hold data, which of these two options will result in the best performance:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;One RAID 10 array which will hold a single data file. &lt;/li&gt;    &lt;li&gt;Two RAID 1 arrays, each holding a data file that belong to the same filegroup. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I asked this same question recently on SQLServerCentral.com (&lt;a href="http://www.sqlservercentral.com/Forums/Topic624961-146-1.aspx" target="_blank"&gt;read the thread here&lt;/a&gt; – free registration required). The resulting debate showed me that the answer is not as obvious as it might seem. Recall that in RAID 10 a hardware based controller card handles writing data evenly to all drives (unless you’re using software based RAID, which is beyond the scope of this series). SQL MVP Tony Rogerson &lt;a href="http://sqlblogcasts.com/blogs/tonyrogerson/archive/2006/08/17/948.aspx" target="_blank"&gt;did some tests&lt;/a&gt; to show that SQL Server will write data evenly to multiple files if they are in the same filegroup. That makes the two RAID 1 drive scenario, in principle, operate in a similar way as RAID 10.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Walks Like RAID 10, Talks Like RAID 10…      &lt;br /&gt;&lt;/strong&gt;To find out which is the better choice I’ll use the results from Test Harness #1 – a Dell PowerEdge 2950 (view the test harness specifics &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-1-test.html"&gt;here&lt;/a&gt;). I’ll look at the optimal settings first: 64 KB raid stripe (for RAID 10), 64 KB partition offset, and 64 KB allocation unit. On the RAID 10 setup I tested a 128 GB data file using 8 threads with an IO queue depth of 8. On the RAID 1 setup I tested a 64 GB data file using 4 threads with an IO queue depth of 8. That’s half the file size and load I put on RAID 10; my voodoo math reasoning is that since I am using two data files on RAID 1 I can double the IOs/sec and MBs/sec results for the single data file and arrive at something that’s comparable to the RAID 10 load. Note I’m doing it this way because SQLIO can’t measure the load on multiple data files simultaneously. Also, since latency is an average value I’m not doubling it for RAID 1 – instead I’m just doing a direct comparison to RAID 10.&lt;/p&gt;  &lt;p&gt;Here’s what 8 KB random reads look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random reads, RAID 10 vs. RAID 1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random reads, RAID 10 vs. RAID 1" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ2LLdVMSVI/AAAAAAAAAm4/lv_DQRzrQxA/image%5B3%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random reads, RAID 10 vs. RAID 1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random reads, RAID 10 vs. RAID 1" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ2LLe4cMdI/AAAAAAAAAm8/2qTlHvLg2jU/image%5B6%5D.png?imgmax=800" width="482" border="0" /&gt; &lt;img title="Avg Latency, 8 KB random reads, RAID 10 vs. RAID 1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg Latency, 8 KB random reads, RAID 10 vs. RAID 1" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZ2LLrJKBrI/AAAAAAAAAnA/rRv5nw5aPSM/image%5B9%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;And here’s what 8 KB random writes look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random writes, RAID 10 vs. RAID 1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random writes, RAID 10 vs. RAID 1" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ2LL1iKSVI/AAAAAAAAAnE/OayVVWc2jCQ/image%5B12%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random writes, RAID 10 vs. RAID 1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random writes, RAID 10 vs. RAID 1" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZ2LL1dzukI/AAAAAAAAAnI/2M0PaU3CRBY/image%5B15%5D.png?imgmax=800" width="482" border="0" /&gt; &lt;img title="Avg Latency, 8 KB random writes, RAID 10 vs. RAID 1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg Latency, 8 KB random writes, RAID 10 vs. RAID 1" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZ2LMO5j4VI/AAAAAAAAAnM/ZRQlADKLZZw/image%5B18%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;By the numbers it looks like the two RAID 1 drive scenario not only walks and talks like RAID 10, but behaves just like RAID 10 too.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Can Multiple RAID 1 Drives Really Outperform RAID 10?      &lt;br /&gt;&lt;/strong&gt;I’ll admit, before I knew about using the right partition offset and allocation unit size I set up my servers using multiple RAID 1 drives. My gut feel was that it just seemed to perform better than if the same drives were set up in RAID 10. Let’s say for the sake of argument that you’re in the same situation - using multiple RAID 1 drives built using the defaults and after reading this series you’re thinking you need to rebuild everything as RAID 10. Is it really worth it? To find out, I’ll compare an optimal RAID 10 setup (64 KB stripe, 64 KB offset, and 64 KB allocation unit) against two RAID 1 drives built on the Windows defaults (32 KB offset and 4 KB allocation unit). On the RAID 10 I’ll use a 128 GB data file with 8 threads and an IO queue depth of 8. For RAID 1 I’ll use a 64 GB data file with 4 threads and an IO queue depth of 8, doubling the IOs/sec and MBs/sec to simulate the same load as the RAID 10 tests.&lt;/p&gt;  &lt;p&gt;Here’s how 8 KB random reads look:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random reads, RAID 10 vs. RAID 1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random reads, RAID 10 vs. RAID 1" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZ2LMOmyF4I/AAAAAAAAAnQ/wZEaTCX3Pnk/image%5B24%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random reads, RAID 10 vs. RAID 1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random reads, RAID 10 vs. RAID 1" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZ2LMRtasiI/AAAAAAAAAnU/vp4_5nWSbhQ/image%5B27%5D.png?imgmax=800" width="482" border="0" /&gt; &lt;img title="Avg Latency, 8 KB random reads, RAID 10 vs. RAID 1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg Latency, 8 KB random reads, RAID 10 vs. RAID 1" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZ2LMjUDyJI/AAAAAAAAAnY/IeznLnLToDA/image%5B30%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;And here’s how 8 KB random writes look:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random writes, RAID 10 vs. RAID 1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random writes, RAID 10 vs. RAID 1" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZ2LMxglHSI/AAAAAAAAAnc/bmd-VLrHKDg/image%5B33%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random writes, RAID 10 vs. RAID 1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random writes, RAID 10 vs. RAID 1" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZ2LNAP3mRI/AAAAAAAAAng/-kdUe6p1gSE/image%5B36%5D.png?imgmax=800" width="482" border="0" /&gt; &lt;img title="Avg Latency, 8 KB random writes, RAID 10 vs. RAID 1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg Latency, 8 KB random writes, RAID 10 vs. RAID 1" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZ2LNVq-LSI/AAAAAAAAAnk/v5v_yb9nNZ0/image%5B39%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Once again the two RAID 1 drive scenario doesn’t look so bad. Obviously that’s not a very compelling argument to reconfigure your existing RAID 1 drives as RAID 10!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;     &lt;br /&gt;The point of these comparisons is to show that, in the most simplistic way, if you are already using multiple RAID 1 drives which hold data files in the same filegroup you’re not as bad off performance-wise as you may think. That said, if you’re setting up a server from scratch I’d recommend RAID 10 over multiple RAID 1’s for two reasons:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Today’s hardware based RAID controllers are pretty sophisticated and designed for reading from and writing data to disks in the most efficient way possible. By comparison, SQL Server’s proportional fill algorithm but doesn’t understand much about the physical disks on which files reside, nor does SQL Server employ the hardware based caching techniques that are built into controllers (and which were not factored into any of these tests). &lt;/li&gt;    &lt;li&gt;Towards the end of Tony Rogerson’s post he mentions that SQL will only round robin writes if there is equal free space in each file in the filegroup. As soon as the free space is different you’ll have one set of disks taking more IO than the other. That won’t happen with a single data file on a RAID 10 disk. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Next, In &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-7.html"&gt;Part 7&lt;/a&gt; I will compare a PowerVault 220S with a PowerVault MD1000.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-2348358602138404650?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=MsiHDKeQo6c:g2c14qqqdt4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=MsiHDKeQo6c:g2c14qqqdt4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=MsiHDKeQo6c:g2c14qqqdt4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=MsiHDKeQo6c:g2c14qqqdt4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=MsiHDKeQo6c:g2c14qqqdt4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=MsiHDKeQo6c:g2c14qqqdt4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=MsiHDKeQo6c:g2c14qqqdt4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=MsiHDKeQo6c:g2c14qqqdt4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=MsiHDKeQo6c:g2c14qqqdt4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/MsiHDKeQo6c" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-6-raid.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-6598462286432919828</guid><pubDate>Tue, 17 Feb 2009 14:30:00 +0000</pubDate><atom:updated>2009-02-18T10:59:36.780-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL Server 2008</category><category domain="http://www.blogger.com/atom/ns#">Best Practices</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><category domain="http://www.blogger.com/atom/ns#">SQL Server 2005</category><category domain="http://www.blogger.com/atom/ns#">Performance</category><title>Disk Performance Hands On: Correction #2</title><description>&lt;p&gt;&lt;img title="Bang Head Here" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="199" alt="Bang Head Here" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZwwZ6bWOUI/AAAAAAAAAmA/ZnFiolqSjPA/Bang%20Head%20Here%5B3%5D.jpg?imgmax=800" width="300" align="right" border="0" /&gt; Argh! Shame on me. Last night as I was reviewing my test results I realized that although I caught my mistake &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-correction.html"&gt;the first time&lt;/a&gt;, somehow I didn’t actually update my RAID 10 numbers. And of course it turns out there’s a small problem – I had previously said a 128 KB RAID stripe was optimal but the results indicate that a 64 KB RAID stripe is the better choice. Numbers (usually) don’t lie, so I’ve updated the post (again). And triple checked it. It’s right this time, I promise!&lt;/p&gt;  &lt;p&gt;Now that I’ve made the correction you may want to re-read &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-2-raid.html"&gt;part 2 of the series on RAID 10&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-6598462286432919828?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=D_kWmaeAIE4:aVPuJi7wffQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=D_kWmaeAIE4:aVPuJi7wffQ:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=D_kWmaeAIE4:aVPuJi7wffQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=D_kWmaeAIE4:aVPuJi7wffQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=D_kWmaeAIE4:aVPuJi7wffQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=D_kWmaeAIE4:aVPuJi7wffQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=D_kWmaeAIE4:aVPuJi7wffQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=D_kWmaeAIE4:aVPuJi7wffQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=D_kWmaeAIE4:aVPuJi7wffQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/D_kWmaeAIE4" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-correction-2.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-3802957435430225053</guid><pubDate>Mon, 16 Feb 2009 22:30:00 +0000</pubDate><atom:updated>2009-02-18T17:09:09.504-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL Server 2008</category><category domain="http://www.blogger.com/atom/ns#">Best Practices</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><category domain="http://www.blogger.com/atom/ns#">SQL Server 2005</category><category domain="http://www.blogger.com/atom/ns#">Performance</category><title>Disk Performance Hands On, Part 5: RAID 10 vs. RAID 5</title><description>&lt;p&gt;&lt;em&gt;This is Part 5 in an ongoing series on disk performance. You can read the entire series by starting at the &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-series.html"&gt;Introduction&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;In &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-2-raid.html"&gt;part 2&lt;/a&gt; and &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-3-raid-5.html"&gt;part 3&lt;/a&gt; of this series I looked at RAID 10 and RAID 5 performance, respectively.&amp;#160; Now I’ll show how the two rate against each other. For this comparison I’ll look at all three of my test harnesses for this post (view the test harness specifics &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-1-test.html"&gt;here&lt;/a&gt;). For all comparisons I am using a 64 KB RAID stripe with a 64 KB partition offset and a 64 KB allocation unit size. As with my previous posts I’ll focus on OLTP data activity (8 KB random reads\writes).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Test Harness #1: Dell PowerEdge 2950      &lt;br /&gt;&lt;/strong&gt;These tests were performed using 4 physical SCSI drives with 8 threads against a 64 GB data file at an I/O queue depth of 8.&lt;/p&gt;  &lt;p&gt;Here’s what 8 KB random reads look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random reads, PowerEdge 2950" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random reads, PowerEdge 2950" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZqMf1FrBpI/AAAAAAAAAlc/OvcISlcStrs/image%5B26%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random reads, PowerEdge 2950" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random reads, PowerEdge 2950" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZqMgGXs3-I/AAAAAAAAAlg/7aFBruSmSXg/image%5B29%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random reads, PowerEdge 2950" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg latency, 8 KB random reads, PowerEdge 2950" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZqMgS6SaAI/AAAAAAAAAlk/8Cl_6nJZ_3U/image%5B32%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;And here’s what 8 KB random writes look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random writes, PowerEdge 2950" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random writes, PowerEdge 2950" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZqMg0KCE2I/AAAAAAAAAlo/1yv83IczkaA/image%5B35%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random writes, PowerEdge 2950" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random writes, PowerEdge 2950" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZqMhF3I0_I/AAAAAAAAAls/BAuWQBKywHI/image%5B38%5D.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random writes, PowerEdge 2950" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg latency, 8 KB random writes, PowerEdge 2950" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZqMhRVeBFI/AAAAAAAAAlw/dSLAlWcvTSc/image%5B41%5D.png?imgmax=800" width="483" border="0" /&gt;     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Test Harness #2: Dell PowerVault 220s      &lt;br /&gt;&lt;/strong&gt;Unlike the PowerEdge 2950 which uses local drives, the 220s is a standalone enclosure commonly run “split bus”, a mode which splits the drives in the enclosure into two groups and dedicates an independent SCSI bus to each group. This set of tests was run in split bus mode using 12 physical SCSI drives (i.e. 6 drives per SCSI bus). I tested workloads of 4, 8, and 16 threads against a 512 GB data file; each set of tests used an I/O queue depth of 8. &lt;/p&gt;  &lt;p&gt;Here’s what 8 KB random reads look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random reads, PowerVault 220S" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="IOs/sec, 8 KB random reads, PowerVault 220S" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZnqre4NzLI/AAAAAAAAAjg/bwganyAdMNE/image89.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random reads, PowerVault 220S" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="MBs/sec, 8 KB random reads, PowerVault 220S" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZnqry3WIDI/AAAAAAAAAjk/d31kIthbSm8/image92.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random reads, PowerVault 220S" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="Avg latency, 8 KB random reads, PowerVault 220S" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZnqsO-IldI/AAAAAAAAAjo/pMouey22kzc/image95.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;And here’s what 8 KB random writes look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random writes, PowerVault 220S" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="IOs/sec, 8 KB random writes, PowerVault 220S" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZnqsS-UKtI/AAAAAAAAAjs/ce4vVE57POs/image98.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random writes, PowerVault 220S" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="MBs/sec, 8 KB random writes, PowerVault 220S" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZnqsrfieoI/AAAAAAAAAjw/EvvJ5LHqOfg/image101.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random writes, PowerVault 220S" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="290" alt="Avg latency, 8 KB random writes, PowerVault 220S" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZnqsx6VjmI/AAAAAAAAAj0/k8IQppZZ0h8/image104.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Test Harness #3: Dell PowerVault MD1000      &lt;br /&gt;&lt;/strong&gt;The PowerVault MD series is Dell’s current offering in DASD enclosures. The MD1000 is the replacement for the 220s and supports both SAS and SATA drives, and just like the 220s it can operate in split bus mode. Similar to my tests against the 220s, this series was run in split bus mode using 12 physical SAS drives with workloads of 4, 8, and 16 threads against a 512 GB data file using an I/O queue depth of 8.&lt;/p&gt;  &lt;p&gt;Here’s what 8 KB random reads look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random reads, PowerVault MD1000" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random reads, PowerVault MD1000" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZnqtAnJ8aI/AAAAAAAAAj4/_u8YvplyXlo/image47.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random reads, PowerVault MD1000" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random reads, PowerVault MD1000" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZnqtWQhI8I/AAAAAAAAAj8/2krG_uQaGxo/image50.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random reads, PowerVault MD1000" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg latency, 8 KB random reads, PowerVault MD1000" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZnqtaNPoaI/AAAAAAAAAkA/eg4YdWT0cso/image53.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;And here’s what 8 KB random writes look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random writes, PowerVault MD1000" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random writes, PowerVault MD1000" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZnqtrHVeXI/AAAAAAAAAkE/TzqPUnjFSTs/image56.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random writes, PowerVault MD1000" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random writes, PowerVault MD1000" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZnquTdlVVI/AAAAAAAAAkI/x4NteAn-dvo/image59.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg latency, 8 KB random writes, PowerVault MD1000" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg latency, 8 KB random writes, PowerVault MD1000" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZnquuBnPrI/AAAAAAAAAkM/bywvMXLcQr4/image62.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Conclusion      &lt;br /&gt;&lt;/strong&gt;Generally speaking, it’s common knowledge that RAID 5 offers better read performance while RAID 10 offers better write performance. The performance graphs from each test illustrate that, but to drive the point home I’ll translate the numbers into percentages. The chart below shows the RAID 10 metrics relative to RAID 5. Red numbers indicate where RAID 10 performed worse; black numbers indicate where RAID 10 performed better. (Higher values for IOs/sec and MBs/sec are better so negative numbers mean a drop in performance. Lower values for latency are better so negative numbers in this column mean a drop in latency which is an increase in performance.)&lt;/p&gt;  &lt;p&gt;&lt;img title="RAID 10 performance relative to RAID 5" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="161" alt="RAID 10 performance relative to RAID 5" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZqOyZ6EuwI/AAAAAAAAAl8/L6Cm7ec2X1Q/image%5B50%5D.png?imgmax=800" width="770" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;I knew that RAID 5 has slower write performance than RAID 10, but roughly 65% slower for IOs/sec and MBs/sec? Wow! Arm yourself with this knowledge next time somebody suggests that it isn’t so bad to use RAID 5 instead of RAID 10, &lt;em&gt;especially&lt;/em&gt; if your database is write intensive.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;RAID 10 Performance From RAID 5?      &lt;br /&gt;&lt;/strong&gt;As I was writing this series my friend &lt;a href="http://www.sqlservercentral.com/blogs/andy_warren/default.aspx" target="_blank"&gt;Andy Warren&lt;/a&gt; asked me an interesting question: What would it take to get RAID 10 performance from a RAID 5 configuration? (Obviously he was talking about write performance since RAID 5 already offers better read performance) Honestly, I had never thought of that angle before, but I can see how it might make sense in some circumstances. &lt;/p&gt;  &lt;p&gt;I’ll pretend that I’m being asked to set up a RAID 5 array on a PowerVault MD1000 that gives me performance equivalent to the RAID 10 array I configured on the PowerEdge 2950. For the sake of this exercise I’ll ignore latency and focus on IOs/sec and MBs/sec. Here comes the voodoo math: At 8 threads on a 12 disk RAID 5 configuration on the MD1000 8 KB random writes come out to 71.23 IOs/sec and 0.56 MBs/sec per disk (that’s just the total numbers divided by 12). The RAID 10 results for the 4 drive configuration on the PowerEdge 2950 were 617.12 IOs/sec and 4.82 MBs/sec; to get to those numbers using the voodoo math I just did means I’d need to use 9 disks in a RAID 5 configuration, or over twice the number of disks required for the RAID 10 array to begin with.&lt;/p&gt;  &lt;p&gt;So can you get RAID 10 performance out of RAID 5? Sort of. Granted, my math was simplistic at best, but it’s obvious that you can’t just add a few extra disks to a RAID 10 array, reconfigure them as RAID 5, and expect to see equivalent performance; it’s probably going to take 2X the disks and practically speaking the numbers just don’t add up to make it worthwhile.&lt;/p&gt;  &lt;p&gt;Stay tuned, in &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-6-raid.html"&gt;Part 6&lt;/a&gt; I will take a look at how RAID 10 compares against RAID 1.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-3802957435430225053?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=Wg3185ntMX4:zOBUIsT5kcc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=Wg3185ntMX4:zOBUIsT5kcc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=Wg3185ntMX4:zOBUIsT5kcc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=Wg3185ntMX4:zOBUIsT5kcc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=Wg3185ntMX4:zOBUIsT5kcc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=Wg3185ntMX4:zOBUIsT5kcc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=Wg3185ntMX4:zOBUIsT5kcc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=Wg3185ntMX4:zOBUIsT5kcc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=Wg3185ntMX4:zOBUIsT5kcc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/Wg3185ntMX4" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-5-raid.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-6019360402849148170</guid><pubDate>Fri, 13 Feb 2009 21:00:00 +0000</pubDate><atom:updated>2009-02-16T17:39:20.070-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL Server 2008</category><category domain="http://www.blogger.com/atom/ns#">Best Practices</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><category domain="http://www.blogger.com/atom/ns#">SQL Server 2005</category><category domain="http://www.blogger.com/atom/ns#">Performance</category><title>Disk Performance Hands On, Part 4: RAID 1 Performance</title><description>&lt;p&gt;&lt;em&gt;This is Part 4 in an ongoing series on disk performance. You can read the entire series by starting at the &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-series.html"&gt;Introduction&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;RAID 1 is typically recommended for transaction log files, though I have known several people (including myself, I’ll admit) who have also used RAID 1 to hold data files. Unlike RAID 5 &amp;amp; 10 there is no stripe size to factor into performance since RAID 1 only utilizes mirroring. Still, it’s important to use the right offset and allocation unit size – or is it? For these tests I used Test Harness #1 (Dell PowerEdge 2950) and Test Harness #3 (Dell PowerVault MD1000). You can view the test harness specifics &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-1-test.html"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Partition Offset &amp;amp; Allocation Unit Size – Dell PowerEdge 2950      &lt;br /&gt;&lt;/strong&gt;Based on the results from my RAID 10 and RAID 5 tests I chose to focus on a 64 KB allocation unit. In addition to 32 KB and 64 KB offset values I also tested a 1024 KB offset to see if a larger offset made a difference. As with previous tests I’ll present the results for 8 KB random reads and writes, the two operations SQL performs on data files most of the time.&lt;/p&gt;  &lt;p&gt;Here’s what 8 KB random reads look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random reads, 32\64\1024 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random reads, 32\64\1024 KB offset" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZXitQn0qFI/AAAAAAAAAh8/41KMyW9QBTw/image20.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random reads, 32\64\1024 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random reads, 32\64\1024 KB offset" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZXitm_DG3I/AAAAAAAAAiA/P1w6aKySH2I/image23.png?imgmax=800" width="483" border="0" /&gt;&lt;img title="Avg Latency, 8 KB random reads, 32\64\1024 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg Latency, 8 KB random reads, 32\64\1024 KB offset" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZXit3ki0FI/AAAAAAAAAiE/l1fDxRj9mPA/image95.png?imgmax=800" width="483" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;And here’s what 8 KB random writes look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random writes, 32\64\1024 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random writes, 32\64\1024 KB offset" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZXit7Nsk0I/AAAAAAAAAiI/aWBPh_VD1DY/image32.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random writes, 32\64\1024 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random writes, 32\64\1024 KB offset" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZXiuNxKTdI/AAAAAAAAAiM/mHC6ldSfQVE/image35.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg Latency, 8 KB random writes, 32\64\1024 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg Latency, 8 KB random writes, 32\64\1024 KB offset" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZXiuak97DI/AAAAAAAAAiQ/QMUv-OuMjXM/image38.png?imgmax=800" width="483" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;For both reads and writes the numbers are so close together that there’s no practical difference between them. I’ll point out that Test Harness #1 was using (somewhat) older 72 GB 15K RPM &lt;a href="http://en.wikipedia.org/wiki/SCSI" target="_blank"&gt;SCSI&lt;/a&gt; drives. Let’s take a look at a slightly newer system that uses 146 GB 15K RPM &lt;a href="http://en.wikipedia.org/wiki/Serial_Attached_SCSI" target="_blank"&gt;SAS&lt;/a&gt; drives.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Partition Offset &amp;amp; Allocation Unit Size – Dell PowerVault MD1000:      &lt;br /&gt;&lt;/strong&gt;Let’s look at the same tests against a Dell PowerVault MD1000 (Test Harness #3). I’m also going to add one more thing to the mix – in my tests against the PowerEdge 2950 I configured SQLIO to use 4 threads. To see if the results were the same across increased workloads I also ran my tests using 8 and 16 threads.&lt;/p&gt;  &lt;p&gt;Here’s what 8 KB random reads look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random reads, 32\64\1024 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random reads, 32\64\1024 KB offset" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZXium_OmKI/AAAAAAAAAiU/sPPPr2-WPBw/image77.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random reads, 32\64\1024 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random reads, 32\64\1024 KB offset" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZXiuyu6t5I/AAAAAAAAAiY/uq-5p68PKSk/image80.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg Latency, 8 KB random reads, 32\64\1024 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg Latency, 8 KB random reads, 32\64\1024 KB offset" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZXivBJUMiI/AAAAAAAAAig/aquJf-soPpY/image83.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;And here’s what 8 KB random writes look like: &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random writes, 32\64\1024 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random writes, 32\64\1024 KB offset" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZXive2Ja5I/AAAAAAAAAik/1D1shY2lNhA/image86.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random writes, 32\64\1024 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random writes, 32\64\1024 KB offset" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZXivrxutJI/AAAAAAAAAio/_x71ou5Fg9I/image89.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg Latency, 8 KB random writes, 32\64\1024 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg Latency, 8 KB random writes, 32\64\1024 KB offset" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZXivrwJdSI/AAAAAAAAAis/cwgyh8ixFQI/image92.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Now we see at least a minimal difference in the numbers and it appears that using a 64 KB offset or higher results in a small increase in performance. Just how much? For 64 KB vs. 32 KB offset it’s a ~10% improvement in IOs/sec, a ~5% improvement in MBs/sec, and a ~10% improvement in average latency for 8 KB random reads. For 8 KB random writes improvements are ~10.5% in IOs/sec, ~11% in MBs/sec, and 10-11% in average latency. Going from a 64 KB offset to a 1024 KB offset resulted in a very small improvement (about 1%), but an improvement nonetheless.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Transaction Log Write Performance – Dell PowerEdge 2950      &lt;br /&gt;&lt;/strong&gt;Back to Test Harness #1 for a second. Remember that RAID 1 drives are typically used for transaction logs. Unlike data reads\writes, transaction log writes are single threaded, sequential operations that range between 512 bytes and 64 KB. To see how performance varied for this kind of activity I ran a set of tests on a 2 GB file using 8 KB and 64 KB writes on 4 KB, 8 KB, and 64 KB allocation units on both 32 KB and 64 KB offsets.&lt;/p&gt;  &lt;p&gt;Here’s what sequential writes look like for a 32 KB offset:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8\64 KB sequential writes, 64 KB offset, 4\8\64 KB allocation unit" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8\64 KB sequential writes, 64 KB offset, 4\8\64 KB allocation unit" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZXiv5PzkqI/AAAAAAAAAiw/nhVuFp3joDM/image59.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8\64 KB sequential writes, 64 KB offset, 4\8\64 KB allocation unit" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8\64 KB sequential writes, 64 KB offset, 4\8\64 KB allocation unit" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZXiwAcJrHI/AAAAAAAAAi0/z5SvCIrXUnI/image62.png?imgmax=800" width="479" border="0" /&gt; &lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="image" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZXiwXTmn0I/AAAAAAAAAi4/CYfYaoBFyR4/image65.png?imgmax=800" width="480" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;And here’s what sequential writes look like for a 64 KB offset:&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="image" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZXiwcOrTwI/AAAAAAAAAi8/Hhp72_oCRQE/image68.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="image" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZXiwolEmII/AAAAAAAAAjA/vqkQuDu9YME/image71.png?imgmax=800" width="479" border="0" /&gt; &lt;img title="Avg Latency, 8\64 KB sequential writes, 64 KB offset, 4\8\64 KB allocation unit" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg Latency, 8\64 KB sequential writes, 64 KB offset, 4\8\64 KB allocation unit" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZXiw06186I/AAAAAAAAAjE/cpAboNkxT0E/image74.png?imgmax=800" width="480" border="0" /&gt;     &lt;br /&gt;I’m not going to bother to show any comparisons of 64 KB vs. 32 KB because the numbers are pretty much dead-on the same. Would there be any difference on newer hardware? Perhaps, but my guess is that it wouldn’t be anything dramatic.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Conclusion      &lt;br /&gt;&lt;/strong&gt;For OLTP data files on RAID 1 my tests showed the optimal configuration to be a 64 KB allocation unit and at least a 64 KB offset. For OLTP transaction log files on RAID 1 it doesn’t matter what offset or allocation unit size you use, there doesn’t appear to be any combination of settings that result in a significant performance improvement.&lt;/p&gt;  &lt;p&gt;In &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-5-raid.html"&gt;Part 5&lt;/a&gt; I’ll take a look at how RAID 10 performance stacks up against RAID 5.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-6019360402849148170?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=_yvG5DVV_7Q:NAn8rSAWt3s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=_yvG5DVV_7Q:NAn8rSAWt3s:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=_yvG5DVV_7Q:NAn8rSAWt3s:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=_yvG5DVV_7Q:NAn8rSAWt3s:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=_yvG5DVV_7Q:NAn8rSAWt3s:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=_yvG5DVV_7Q:NAn8rSAWt3s:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=_yvG5DVV_7Q:NAn8rSAWt3s:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=_yvG5DVV_7Q:NAn8rSAWt3s:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=_yvG5DVV_7Q:NAn8rSAWt3s:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/_yvG5DVV_7Q" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-4-raid-1.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-3982965284829424024</guid><pubDate>Thu, 12 Feb 2009 22:00:00 +0000</pubDate><atom:updated>2009-02-18T11:00:11.044-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL Server 2008</category><category domain="http://www.blogger.com/atom/ns#">Best Practices</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><category domain="http://www.blogger.com/atom/ns#">SQL Server 2005</category><category domain="http://www.blogger.com/atom/ns#">Performance</category><title>Disk Performance Hands On: Correction</title><description>&lt;p&gt;&lt;img title="homer-doh" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="213" alt="homer-doh" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZwwijJaqwI/AAAAAAAAAmE/WlnEf0p7bmY/homer-doh%5B3%5D.jpg?imgmax=800" width="150" align="right" border="0" /&gt; DOH! I made a mistake. Somehow I had it in my head that for OLTP databases SQL Server read data 64 KB at a time. While I was working on the next post for the series I asked a question on Twitter about transaction log write sizes. &lt;a href="http://statisticsio.com/" target="_blank"&gt;Jason Massie&lt;/a&gt;, a.k.a. &lt;a href="https://twitter.com/statisticsio" target="_blank"&gt;@statisticsio&lt;/a&gt;, pointed me to &lt;a href="http://blogs.msdn.com/sqlcat/archive/2005/11/17/493944.aspx" target="_blank"&gt;this post&lt;/a&gt; from the SQL Customer Advisory Team. While I was reading it I noticed a small problem – OLTP data reads are done 8 KB at a time. Then I came across &lt;a href="http://sqlblog.com/blogs/linchi_shea/archive/2008/03/29/performance-impact-of-controller-cache-sql-server-oltp-workloads.aspx" target="_blank"&gt;Linchi Shea’s post on OLTP workloads&lt;/a&gt; which confirmed it. The icing on the cake was when I opened perfmon on one of my servers and looked at the &lt;strong&gt;PhysicalDisk\Avg. Disk Bytes/Read&lt;/strong&gt; counter. There it was, plain as day – 8 KB reads. &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The good news is that the there was only a minor change in the outcome. For RAID 10 the optimal configuration came out to be a 64 KB RAID stripe (instead of a 128 KB stripe as I previously posted), 64 KB offset, and 64 KB allocation unit size; for RAID 5 the argument could be made for a 128 KB RAID stripe, but the 64 KB offset and 64 KB allocation unit size are still the clear winners. I have updated the text and images in the original posts to reflect the right read size. So fortunately, relatively no harm done (except to my ego).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-3982965284829424024?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=phcIyFvSE6g:0dc4mAgN2PM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=phcIyFvSE6g:0dc4mAgN2PM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=phcIyFvSE6g:0dc4mAgN2PM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=phcIyFvSE6g:0dc4mAgN2PM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=phcIyFvSE6g:0dc4mAgN2PM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=phcIyFvSE6g:0dc4mAgN2PM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=phcIyFvSE6g:0dc4mAgN2PM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=phcIyFvSE6g:0dc4mAgN2PM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=phcIyFvSE6g:0dc4mAgN2PM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/phcIyFvSE6g" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-correction.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2173119910600284569.post-9203040931154325430</guid><pubDate>Wed, 11 Feb 2009 16:15:00 +0000</pubDate><atom:updated>2009-02-13T16:15:15.260-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL Server 2008</category><category domain="http://www.blogger.com/atom/ns#">Best Practices</category><category domain="http://www.blogger.com/atom/ns#">Syndication</category><category domain="http://www.blogger.com/atom/ns#">SQL Server 2005</category><category domain="http://www.blogger.com/atom/ns#">Performance</category><title>Disk Performance Hands On, Part 3: RAID 5 Performance</title><description>&lt;p&gt;&lt;em&gt;This is Part 3 in an ongoing series on disk performance. You can read the entire series by starting at the &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-series.html"&gt;Introduction&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;RAID 5 is recommended for read intensive databases where you need to maximize space while retaining fault tolerance. Just like a RAID 10 drive achieving optimal performance depends on the right combination of stripe size, partition offset, and allocation unit size. For this set of tests I used the same hardware as my RAID 10 tests - Test Harness #1, a Dell PowerEdge 2950 (&lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-1-test.html"&gt;view the test harness specifics here&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Stripe Size &amp;amp; Allocation Unit Size&lt;/strong&gt;     &lt;br /&gt;I’m following the same methodology and conditions as in &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-2-raid.html"&gt;part 2 of this series&lt;/a&gt;. To recap, I used RAID stripe sizes of 4 KB, 8 KB, and 128 KB along with allocation unit sizes of 4 KB, 8 KB, and 64 KB on a partition with a default 32 KB offset. I focused on 8 KB random reads writes, which are the two types of operations SQL server performs on data files most of the time.&lt;/p&gt;  &lt;p&gt;Here’s what 8 KB random reads look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random reads, 32 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random reads, 32 KB offset" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZSedAaZxuI/AAAAAAAAAhY/l47zs_zKNPE/image11.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random reads, 32 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random reads, 32 KB offset" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZSedd21WqI/AAAAAAAAAhc/E_21K9kixHU/image14.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg Latency, 8 KB random reads, 32 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg Latency, 8 KB random reads, 32 KB offset" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZSedRRXTlI/AAAAAAAAAhg/v-Q-s7L_ZTU/image17.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;And here’s what 8 KB random writes look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random writes, 32 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random writes, 32 KB offset" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZL7wCHPJyI/AAAAAAAAAew/F1HOXSWyUPY/image118.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="IOs/sec, 8 KB random writes, 32 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random writes, 32 KB offset" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZL7weNuMEI/AAAAAAAAAe0/nVmf5ReD0Y0/image121.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg Latency, 8 KB random writes, 32 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg Latency, 8 KB random writes, 32 KB offset" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZL7wS-q7rI/AAAAAAAAAe4/8JzhGlXJhV0/image124.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;The results are in line with what we saw for RAID 10. A 128 KB stripe size offers the best overall performance. However, allocation unit size makes no difference when using a 32 KB partition offset. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Partition Offset&lt;/strong&gt;     &lt;br /&gt;Now let’s look at how a 64 KB partition offset changes things.&lt;/p&gt;  &lt;p&gt;Here’s what 8 KB random reads look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random reads, 64 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random reads, 64 KB offset" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZSediI-ITI/AAAAAAAAAhk/Z-gXkfEnTM4/image41.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random reads, 64 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random reads, 64 KB offset" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZSedlhjDLI/AAAAAAAAAho/fZ4rVFeJCLk/image44.png?imgmax=800" width="483" border="0" /&gt;&amp;#160; &lt;img title="Avg Latency, 8 KB random reads, 64 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg Latency, 8 KB random reads, 64 KB offset" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZSed0auK2I/AAAAAAAAAhs/pYTkJsuunEk/image53.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;And here’s what 8 KB random writes look like:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random writes, 64 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random writes, 64 KB offset" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZL7xdhXIFI/AAAAAAAAAfI/hfN3wTSa3Uk/image148.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random writes, 64 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random writes, 64 KB offset" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZL7xtlLqvI/AAAAAAAAAfM/OprMFx43Vac/image151.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg Latency, 8 KB random writes, 64 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg Latency, 8 KB random writes, 64 KB offset" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZL7xuLzn0I/AAAAAAAAAfQ/cgSri19Pr-I/image154.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Interestingly, with a 64 KB offset there’s very little difference between a 64 KB and 128 KB RAID stripe size for both read and write operations.&lt;/p&gt;  &lt;p&gt;What about how a 32 KB offset stacks up against a 64 KB offset? Since a 128 KB RAID stripe and a 64 KB allocation unit offered the best performance for a 32 KB offset, let’s go with the same for a 64 KB offset so that we can do an apples to apples comparison of the two.&lt;/p&gt;  &lt;p&gt;8 KB random reads:&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random reads, 64 KB vs 32 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random reads, 64 KB vs 32 KB offset" src="http://lh5.ggpht.com/_nNmzpgOs8Bg/SZSed-c1VqI/AAAAAAAAAhw/eFaml7PWlbQ/image59.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random reads, 64 KB vs 32 KB  offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random reads, 64 KB vs 32 KB  offset" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZSeeDLjwRI/AAAAAAAAAh0/g8fuiFkE2wE/image62.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg Latency, 8 KB random reads, 64 vs 32 KB  KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg Latency, 8 KB random reads, 64 vs 32 KB  KB offset" src="http://lh6.ggpht.com/_nNmzpgOs8Bg/SZSeeT-UDvI/AAAAAAAAAh4/YalJEJPOZwM/image65.png?imgmax=800" width="483" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;8 KB random writes:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;img title="IOs/sec, 8 KB random writes, 64 KB vs 32 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="IOs/sec, 8 KB random writes, 64 KB vs 32 KB offset" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZL7yfrzlLI/AAAAAAAAAfg/VtK6ZgT97rI/image157.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="MBs/sec, 8 KB random writes, 64 KB vs 32 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="MBs/sec, 8 KB random writes, 64 KB vs 32 KB offset" src="http://lh3.ggpht.com/_nNmzpgOs8Bg/SZL7yZUDN8I/AAAAAAAAAfk/02W8nDq_BRs/image160.png?imgmax=800" width="483" border="0" /&gt; &lt;img title="Avg Latency, 8 KB random writes, 64 KB vs 32 KB offset" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="Avg Latency, 8 KB random writes, 64 KB vs 32 KB offset" src="http://lh4.ggpht.com/_nNmzpgOs8Bg/SZL7yjYDdDI/AAAAAAAAAfo/jkDjfRERH_k/image163.png?imgmax=800" width="483" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;Just as we saw with RAID 10, a 64 KB offset results in better performance than a 32 KB offset. Put into percentages, using a 64 KB offset results in a 5.7% improvement in IOs/sec and MBs/sec and an 8% improvement in average latency for 8 KB random reads. For 8 KB random writes using a 64 KB offset resulted in a 5.5% improvement in IOs/sec, MBs/sec, and average latency. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Conclusion      &lt;br /&gt;&lt;/strong&gt;As I expected and the numbers showed, using a 64 KB offset results in the best performance. What I was surprised at, however, is how little of a difference allocation unit size made for 64 KB and 128 KB RAID stripes. We’re talking +\- 5 IOs\sec and MBs\sec. On paper that means for a 64 KB offset as long as you go with at least a 64 KB RAID stripe and a 4 KB allocation unit you’re going to be getting close to optimal performance. Unfortunately, although I had two other test harnesses I didn’t get the chance to see if this holds true when you throw more drives into the mix. My guess is with more drives the gap between numbers will become more apparent. Therefore I recommend you play it safe, go on the high end, and stick with a 128 KB RAID stripe, 64 KB offset, and 64 KB allocation unit size for your RAID 5 drives.&lt;/p&gt;  &lt;p&gt;Next, in &lt;a href="http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-4-raid-1.html"&gt;Part 4&lt;/a&gt; I will take a look at RAID 1 performance.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2173119910600284569-9203040931154325430?l=kendalvandyke.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=ZJ1dbJJtJic:uPWUx6jjHRg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=ZJ1dbJJtJic:uPWUx6jjHRg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=ZJ1dbJJtJic:uPWUx6jjHRg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=ZJ1dbJJtJic:uPWUx6jjHRg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=ZJ1dbJJtJic:uPWUx6jjHRg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=ZJ1dbJJtJic:uPWUx6jjHRg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=ZJ1dbJJtJic:uPWUx6jjHRg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/KendalVanDyke?a=ZJ1dbJJtJic:uPWUx6jjHRg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/KendalVanDyke?i=ZJ1dbJJtJic:uPWUx6jjHRg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/KendalVanDyke/~4/ZJ1dbJJtJic" height="1" width="1"/&gt;</description><link>http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-part-3-raid-5.html</link><author>noreply@blogger.com (Kendal Van Dyke)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item></channel></rss>
