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

<channel>
	<title>StraightPath Consulting&#039;s SQL Server Blog &#187; Pet Peeve</title>
	<atom:link href="http://www.straightpathsql.com/archives/category/pet-peeve/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.straightpathsql.com</link>
	<description>Mike Walsh&#039;s Thoughts on SQL Server, Professional Development and Life</description>
	<lastBuildDate>Thu, 29 Jul 2010 12:11:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>SQL Server Licensing Or Tax Forms?</title>
		<link>http://www.straightpathsql.com/archives/2010/07/sql-server-licensing-or-tax-forms/</link>
		<comments>http://www.straightpathsql.com/archives/2010/07/sql-server-licensing-or-tax-forms/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 13:24:55 +0000</pubDate>
		<dc:creator>Mike Walsh</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[DBA]]></category>
		<category><![CDATA[InstallTips]]></category>
		<category><![CDATA[Pet Peeve]]></category>
		<category><![CDATA[Syndicate]]></category>
		<category><![CDATA[database administration]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[licensing]]></category>

		<guid isPermaLink="false">http://www.straightpathsql.com/?p=847</guid>
		<description><![CDATA[

Which would you rather do, wade through the nuances of SQL Server licensing or a typical tax form?  Some days, I think the latter would be a welcome respite. Let&#8217;s just put it this way, I bet Brent Ozar (BrentO on twitter) is happy that licensing wasn&#8217;t the biggest part of the MCM grade. (I [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.straightpathsql.com%252Farchives%252F2010%252F07%252Fsql-server-licensing-or-tax-forms%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2Fa4wKU9%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22SQL%20Server%20Licensing%20Or%20Tax%20Forms%3F%20%23%22%20%7D);"></div>
<p>Which would you rather do, wade through the nuances of SQL Server licensing or a typical tax form?  Some days, I think the latter would be a welcome respite. Let&#8217;s just put it this way, I bet <a href="http://www.brentozar.com" target="_blank">Brent Ozar</a> (<a href="http://twitter.com/brento">BrentO</a> on twitter) is happy that licensing wasn&#8217;t the biggest part of the MCM grade. (I don&#8217;t know this, I just presume it because people actually pass the MCM every once in a while).</p>
<h2>Common SQL Server Licensing Myths</p>
<p><div id="attachment_862" class="wp-caption alignright" style="width: 310px"><a href="http://www.flickr.com/photos/uber-tuber/2917811282/#/"><img class="size-medium wp-image-862" title="2917811282_70e20cd396_z" src="http://www.straightpathsql.com/wp-content/uploads/2010/07/2917811282_70e20cd396_z-300x224.jpg" alt="People Lost in Corn Maze" width="300" height="224" /></a><p class="wp-caption-text">The people in this maze might be better off than us.</p></div></h2>
<p>I am going to talk about some of the more common myths I&#8217;ve encountered with licensing throughout my career and consulting. Microsoft has some decent SQL Server licensing resources including some PDFs (some short and some nearing legislation size with flowcharts abound). This <a href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CBUQFjAA&amp;url=http%3A%2F%2Fdownload.microsoft.com%2Fdownload%2F2%2F7%2F0%2F270B6380-8B38-4268-8AD0-F480A139AB19%2FSQL2008R2_LicensingQuickReference-updated.pdf&amp;ei=NRtOTOSVOYyBnweR_8jYCw&amp;usg=AFQjCNGAb1R0gGejrLdbU_mnKcOJRNcuJQ" target="_blank">quick guide</a> is a good start to look at. Which brings me to a disclaimer:</p>
<p><strong>This blog post does not replace your own research and understanding of licensing guidelines from Microsoft.  The thoughts presented here are my own and represent my views of Microsoft licensing guidelines and my interpretations thereof. My perspective has the potential to be wrong (I&#8217;m a husband, so I&#8217;m likely wrong, come to think of it <img src='http://www.straightpathsql.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ) and could become outdated with future changes. Check with Microsoft and your licensing representative to make any final decisions. </strong></p>
<p>On to the myths I encounter&#8230;</p>
<h2>You Need Enterprise</h2>
<p>Look at the edition feature matrix for your version (<a href="http://www.microsoft.com/sqlserver/2008/en/us/editions-compare.aspx" target="_blank">2008</a>, <a href="http://msdn.microsoft.com/en-us/library/cc645993.aspx" target="_blank">2008 R2</a>, <a href="http://www.microsoft.com/sqlserver/2005/en/us/compare-features.aspx" target="_blank">2005</a>) and see what you need and anticipate needing &#8211; it can save you around $15k + per CPU to go with Standard over Enterprise. I have commonly bumped into people believing that they need enterprise licenses when they don&#8217;t when it comes to things like:</p>
<ul>
<li>Log Shipping (Standard is fine)</li>
<li>Clustering (You can have a single instance two node cluster on Standard)</li>
<li>Mirroring (Some types are allowed in Standard)</li>
</ul>
<p>In fact, this post was inspired recently when I was able to see a project at a company to roll out Enterprise Edition simply because of Log Shipping. No other enterprise features needed. This company had great pricing on Standard and I was able to save them almost $60,000 in Enterprise licenses they didn&#8217;t need. <strong>Wait. There&#8217;s more! Act now and you can save even more because another myth sounds like this:<br />
</strong></p>
<h2>You Need To License Your Mirrored Copy Also</h2>
<p>In most situations (yours may be different, double check), a DR standby (For mirroring or log shipping) doesn&#8217;t need to be licensed by default. Now there are certain triggers (pardon me) that will hit you with a license cost (Being failed over to it for more than 30 days or reporting off of a snapshot of the mirror, for a couple examples) but by default, many simple options don&#8217;t. This same company had an Enterprise License purchase (single CPU) for the fail over site. Another $19,000 saved with no standard license even needed because that instance can sit there &#8220;unlicensed&#8221;.</p>
<h2>I Can Put SSAS, SSRS and the DB Engine anywhere&#8230;</h2>
<p>You can. And, as a best practice in busier environments I&#8217;d say you should. But you can&#8217;t do it for nothing. You can put them all on the same box and they will be licensed as though you just had one (under most circumstances). The moment you split them out (again, generally a best practice for performance) you must license each component separately. While I&#8217;ve saved some companies money, here I&#8217;ve cost some money&#8230; Sorry. I don&#8217;t like it either but it is what it is.</p>
<h2>Multiple Instances Still Means Multiple Licenses</h2>
<p>I hate typing this because just as soon as I do, I am sure some pointy headed boss someplace will say, let&#8217;s consolidate every instance onto one machine! Don&#8217;t do that. But this myth isn&#8217;t true &#8211; you pay by the CPU by the machine. If you have two instances on one machine each using 2 CPUs, you only need one 2 CPU license. Add another instance to it? Same thing, no new license, you pay by the machine not the instance. This is great and can really help save some license expenses at smaller shops but just do so carefully as I wrote when I first drafted this SQLServerPedia <a href="http://sqlserverpedia.com/wiki/Multiple_Database_Instances" target="_blank">wiki article on multiple instance decision making. </a></p>
<h2>SQL Server Licenses Are By Core, Like Oracle</h2>
<p>Or at least like Oracle was last time I checked&#8230; SQL Server (today.. I don&#8217;t know of anything changing, but you never know) licenses by the socket. By the actual die that goes into the socket. Not by the core or thread. So you can have a Quad core proc with hyperthreading that looks like 8 CPUs in perfmon but you are paying for a single CPU license. This is good to know. Might make that hardware upgrade more worthwhile. Who knows how long this will last and, for all I know, maybe it is gone by the time you read this, so double check yourself.</p>
<h2>Virtual Server Licensing Works Just Like Physical</h2>
<p>I&#8217;m not going to say anything except to say this isn&#8217;t necessarily true. There are all sorts of scenarios and differences depending on if you are using standard or enterprise. The IRS has a hotline (800-829-1040). <a href="http://www.microsoft.com/licensing/contact-us.aspx" target="_blank">So does Microsoft</a>, if you aren&#8217;t sure it may be worth a call or e-mail.</p>
<h2>Developer Edition Works for All Developers</h2>
<p>Well that may be true most of the time. Your developers could probably use developer edition but keep a few things in mind: 1.) Did you pay for it? Or is it just a download everyone shares? If you are covered by MSDN (For each developer who touches the instance) or some sort of enterprise agreement then you may be fine. If you paid for the product and a proper license you are fine for the intended use in the agreement. If not, you aren&#8217;t. <strong>But also &#8211; consider this: What is production going to be?</strong> If your production environment is standard, do you necessarily want the product developed and tested on developer edition, which is Enterprise Edition by features, Developer edition only be price tag and EULA?? There may be a reason (especially if you have MSDN licenses for each developer, a good investment typically) to make sure an app is developed and tested in something other than Enterprise. Consider the end goal and end edition. It would stink to see Dev and QA using Developer and relying on some enterprise feature that never failed a test only to find a deploy gone wild.</p>
<h2>Licensing, Just Like SQL Server, Is Set-It-And-Forget-It</h2>
<p>No. No to both. Depending on your agreement with Microsoft the day may come when they come to do a true up of your environment. They will discover your SQL instances with you and verify you are using what you purchased. If you haven&#8217;t you&#8217;ll be buying more licenses and you are in violation of laws and software agreements. You could face fines as a company or a individual, potentially. An answer? Do your own True Ups. Awhile ago I blogged about <a href="http://www.straightpathsql.com/archives/2009/02/what-sql-instances-are-installed-on-my-network/" target="_blank">using the Microsoft Assessment and Planning Toolkit (MAP) to discover your SQL instances</a>. The report it spits out shows you all sorts of great details (server name, edition, version, CPU count, etc). Do your own true up, no reason you can&#8217;t. Are you in line? If not fix it by adding licenses or consolidating and saving the company hard earned cash (&#8220;Hey, boss, I just want 1%&#8230;&#8221;)</p>
<h2>Summing It Up</h2>
<p>A simple look at a few of the more common myths I bump into around licensing. They can all be summed up with the same advice, <strong>do your homework, understand the license agreements with factual information (not someones recollection or interpretation) and always double check. </strong>Even if the information comes from a trusted vendor (you know<a href="http://www.straightpathsql.com/archives/2010/07/hey-software-vendors-get-a-clue/" target="_blank"> how I feel about that</a>), you could be breaking the law or throwing away company money. Neither are great career advancement moves.</p>
<p><strong>What about you? </strong>Do you have a licensing horror story? A tip for someone else out here. Leave it in the comments or blog about it and let us know when your post goes up, I&#8217;ll be more than happy to link to any tips to help folks avoid making a mistake up front.</p>

<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.straightpathsql.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.straightpathsql.com/archives/2010/07/sql-server-licensing-or-tax-forms/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Getting Organized &#8211; Goodbye Paper?</title>
		<link>http://www.straightpathsql.com/archives/2010/07/getting-organized-goodbye-paper/</link>
		<comments>http://www.straightpathsql.com/archives/2010/07/getting-organized-goodbye-paper/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 17:34:31 +0000</pubDate>
		<dc:creator>Mike Walsh</dc:creator>
				<category><![CDATA[Pet Peeve]]></category>
		<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[evernote]]></category>
		<category><![CDATA[GettingOrganized]]></category>
		<category><![CDATA[macintosh]]></category>
		<category><![CDATA[organization]]></category>
		<category><![CDATA[task management]]></category>
		<category><![CDATA[time management]]></category>

		<guid isPermaLink="false">http://www.straightpathsql.com/?p=713</guid>
		<description><![CDATA[

[This is the first in a 4 part series of posts about "Getting Organized" , on track and my use of Evernote.]
Getting Organized Series Outline

Introduction and License Giveaway
A Task&#8217;s Life
The Death of a Task, Man
451 Degrees &#8211; Good For Notebooks

Do you struggle with organization? Note taking? Note Finding? I do and I could have found [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.straightpathsql.com%252Farchives%252F2010%252F07%252Fgetting-organized-goodbye-paper%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2Fc2f5q7%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Getting%20Organized%20-%20Goodbye%20Paper%3F%20%23%22%20%7D);"></div>
<p>[This is the first in a 4 part series of posts about "<a href="http://www.straightpathsql.com/archives/tag/gettingorganized/" target="_blank">Getting Organized</a>" , on track and my use of Evernote.]</p>
<h3>Getting Organized Series Outline</h3>
<ul>
<li><a>Introduction and License Giveaway</a></li>
<li><a href="http://www.straightpathsql.com/archives/2010/07/getting-organized-a-tasks-life/" target="_blank">A Task&#8217;s Life</a></li>
<li><a href="http://www.straightpathsql.com/archives/2010/07/getting-organized-finishing-tasks/" target="_blank">The Death of a Task, Man</a></li>
<li><a href="http://www.straightpathsql.com/archives/2010/07/getting-organized-burn-notebooks/" target="_blank">451 Degrees &#8211; Good For Notebooks</a></li>
</ul>
<p>Do you struggle with organization? Note taking? Note Finding? I do and I could have found the fix for me. Leave a comment for the contest at the bottom and I&#8217;ll give you a one year premium account to the tool I&#8217;m using. Details are at the bottom.</p>
<p>Maybe this blog post is too early. &#8220;They&#8221; say it takes 3 months of doing something for it to become a habit. Well, I am writing after experiencing something new that is still new to me and being tweaked but it is <strong>really helping.</strong></p>
<div id="attachment_714" class="wp-caption alignright" style="width: 310px"><a href="http://www.straightpathsql.com/wp-content/uploads/2010/07/Photo-0012.jpg"><img class="size-medium wp-image-714" title="Notebooks Lose Notes" src="http://www.straightpathsql.com/wp-content/uploads/2010/07/Photo-0012-300x225.jpg" alt="Yeah - My notebooks" width="300" height="225" /></a><p class="wp-caption-text">A mockup of a real notebook  (even with the doodle)</p></div>
<h2>The Problem Statement</h2>
<p>&#8220;They&#8221; also say a picture is worth 1,000 words. In this case the picture probably represents hundreds of thousands of written words. The picture to the right is an example of what one of my (many) notebooks would look like. Chicken scratch writing, doodles from being on long calls and lost Action Items.</p>
<p>The Problem Statement here could be &#8220;I am wasting time writing notes I can&#8217;t find or use later, what should I do?&#8221;</p>
<p>I normally have a few notebooks in circulation at a time. Some for personal notes, some for blog ideas, some for client work. I have a general idea of where something is but sometimes I start a new one if it isn&#8217;t handy. I can&#8217;t understand the context sometimes. Maybe that was alright because my note taking used to be more just about writing it once to get it into memory and that worked most of the time. I still did a lot of mental gymnastics trying to recall what a note meant. I also lacked the discipline to go back through all the &#8220;Action Item&#8221; tags to bring them onto a list. I&#8217;ve used many systems (Outlook Tasks, Franklin Covey, Typed To Do Lists, etc.)</p>
<p><strong>Another problem statement?</strong> I&#8217;m getting sick and tired of paper. I am finding myself hating paper&#8217;s clutter a little more each year. (In case my wife is reading &#8211; only a little more, that&#8217;s why I still have so much <img src='http://www.straightpathsql.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  but I am getting to where you are, quickly)</p>
<p><strong>Other problems</strong>: The notebooks aren&#8217;t searchable and aren&#8217;t always there; the kids like to cut and draw when they find paper; I look like a fool fumbling through the notebooks; Can you read my writing? I can&#8217;t always either; It&#8217;s a pain to link thoughts and track them over time&#8230; I could keep going.</p>
<div id="attachment_715" class="wp-caption alignright" style="width: 310px"><a href="http://www.straightpathsql.com/wp-content/uploads/2010/07/Photo-0010.jpg"><img class="size-medium wp-image-715" title="My First MacBookPro" src="http://www.straightpathsql.com/wp-content/uploads/2010/07/Photo-0010-300x225.jpg" alt="Yeah.. It's a mac - my first" width="300" height="225" /></a><p class="wp-caption-text">The inspiration to get  organized</p></div>
<h2>An Answer?</h2>
<p>No, it isn&#8217;t the Mac but the picture shows the simplicity of the solution. It doesn&#8217;t require a notebook at all. At work I show up with my Mac Book and phone. At a client I bring the home windows laptop (That over sized, noisy, ugly laptop <img src='http://www.straightpathsql.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ) and phone. I always have the windows mobile phone (does that make up for the mac?). If I ever don&#8217;t have a device, I probably can get to the internet somehow.</p>
<p>All of these tools allow me to use a new tool in my arsenal: <a href="http://www.evernote.com/" target="_blank">Evernote</a>. They describe their product:</p>
<blockquote><p>Use <a href="http://www.evernote.com/" target="_blank">Evernote</a> to save your ideas, things you see, and things you like.  Then find them all on any computer, phone or device you use. For free.</p></blockquote>
<p>That&#8217;s it. That&#8217;s what it does. So far I have used the tool to manage notes, whiteboard images, business cards and it has been enjoyable, usable and makes me want to keep using it. Some tasks I&#8217;ve performed:</p>
<ul>
<li>Save notes from meetings</li>
<li>Create Action Items with priority and category (Where are they from? Which &#8220;Mike&#8221; has to worry about them?)</li>
<li>Track my spending and eating (why not, I need to be better at both)</li>
<li>Remember ideas for blog posts (like this series you are reading)</li>
<li>Do things at home that I normally would have &#8220;yes&#8217;d&#8221; and forgotten about (until gently reminded)</li>
<li>Started to store links and captures from websites of useful information about a topic of interest</li>
<li>Search for previous notes and quickly find them</li>
<li>Upload images (White Boards, Business Cards) and search them with decent  (for OCR) results</li>
<li>Solve world peace and middle east hunger (Were you paying attention?)</li>
</ul>
<h2>How Have I Done This?</h2>
<p>With some tags, folders and typing in Evernote. I keep saying that word, I&#8217;m not getting paid to talk about their tool, I just really like it so far. I&#8217;ve used the features available in the Mac Client (which is lacking a few things, in my opinion&#8230; We&#8217;ll get to that in part 2 or 3) during the day. I&#8217;ve even downloaded and used the features on the phone, like taking an audio note when I was in need of duct tape and a knife in my truck (it&#8217;s not what you think.. I didn&#8217;t need a cooler). Evernote is definitely not a task management tool by default and I started using it for searchable notes in &#8220;one&#8221; place that I won&#8217;t clutter my house with. Using the note capabilities, It is working out alright for task management.</p>
<p>I&#8217;ll go into more details in the next post where I give you the lowdown on the techniques I am using and some more details.  The plan I have for the next posts:</p>
<p><strong>Part 2 &#8211; My Evernote Technique </strong>- How I use the product, the tags/folders I use and method. Works for me, maybe can help you design your own. Also how I plan on using it to both make my life more search-able and reduce the paper clutter.</p>
<p><strong>Part 3 &#8211; Evernote Wish List &#8211; </strong>Evernote just unveiled a neat &#8220;<a href="http://www.evernote.com/about/trunk/" target="_blank">trunk</a>&#8221; of apps and there are a few apps I&#8217;d still like to see created with a few features I&#8217;d love to see in the Mac client. So a small wishlist.</p>
<h2>A Contest</h2>
<p>Evernote is free and the free features are probably fine for most casual uses, even serious uses in the free version. With a premium account you can get rid of the advertisements, get some neat features (ability to search PDFs, quicker OCR on the Mac client, import more file types, import more data to name a handful) and feel good about supporting a well done piece of software.</p>
<p>So&#8230; I want you to have a free upgrade to premium. I will select a name (based on some method I choose, inspire me with your story, I guess) if two conditions have happened: the comment is made before midnight EST on Friday, 7/23 and I have at least 10 comments by that time. Just tell me about your current system in the comments. How do you keep track of this all? How could a tool like Evernote help you? What is your biggest frustration with time and task management? Would you hire someone who essentially starts out a blog post with &#8220;I need to be better at time management, note taking and organization?&#8221; <img src='http://www.straightpathsql.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Subscribe to this blog&#8217;s <a href="http://feeds.feedburner.com/StraightpathSolutionsSqlBlog" target="_blank">feed</a> to see the next posts and the contest winner when announced.</p>

<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.straightpathsql.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.straightpathsql.com/archives/2010/07/getting-organized-goodbye-paper/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Hey Software Vendors &#8211; Get a Clue!</title>
		<link>http://www.straightpathsql.com/archives/2010/07/hey-software-vendors-get-a-clue/</link>
		<comments>http://www.straightpathsql.com/archives/2010/07/hey-software-vendors-get-a-clue/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 14:21:53 +0000</pubDate>
		<dc:creator>Mike Walsh</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[InstallTips]]></category>
		<category><![CDATA[Pet Peeve]]></category>
		<category><![CDATA[Syndicate]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Vendors]]></category>

		<guid isPermaLink="false">http://www.straightpathsql.com/?p=635</guid>
		<description><![CDATA[

Psst. Hey Vendor &#8211; DBAs are secretly plotting against you! We hate what your products do to our environments. Sometimes we even work to get you replaced by someone else who makes a product in the same space but is &#8220;DBA-Approved&#8221;&#8230;.

What&#8217;s that? You want the DBA stamp of approval?
I write this blog to help folks [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.straightpathsql.com%252Farchives%252F2010%252F07%252Fhey-software-vendors-get-a-clue%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FaSlFKF%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Hey%20Software%20Vendors%20-%20Get%20a%20Clue%21%20%23%22%20%7D);"></div>
<p style="clear: both;">Psst. Hey Vendor &#8211; DBAs are secretly plotting against you! We hate what your products do to our environments. Sometimes we even work to get you replaced by someone else who makes a product in the same space but is &#8220;DBA-Approved&#8221;&#8230;.</p>
<p style="clear: both;">
<h2>What&#8217;s that? You want the DBA stamp of approval?</h2>
<p>I write this blog to help folks so I&#8217;ll pretend I&#8217;m not at work in a meeting railing on about how your product has no indexes or has way too permissive security or doesn&#8217;t think to recommend index maintenance. That&#8217;s right&#8230; I&#8217;ll help you. <strong>Why? </strong>Because I want you to succeed. I want to like working with you. I want you to be &#8220;DBA-Approved&#8221;</p>
<p style="clear: both;">
<h2>A History</h2>
<p>You don&#8217;t have to look to hard to find blog posts of DBAs annoyed with vendor gaffes. There are some great vendors who really understand their destination database environment. They go out of their way to make sure their client properly backs up and maintains the environment. They performance test and look at best practices. There are a lot who don&#8217;t.</p>
<p style="clear: both;">I&#8217;ve worked as a consultant for a vendor who wanted to do a better job in helping their customers handle the SQL Server environment they ship their app on. I&#8217;ve worked full time for a vendor who didn&#8217;t. I can tell you that my experience with the latter was early on in my career as a tech support engineer and I got a lot of painful calls from customers up a creek. Customers who maybe would have been better off with some prescriptive guidance&#8230;</p>
<p style="clear: both;">
<h2>But We Don&#8217;t Own Their Environment!</h2>
<p>I know. But you didn&#8217;t tell the client that they <a href="http://www.straightpathsql.com/archives/2010/05/why-hire-a-dba/" target="_blank">really needed a DBA</a> to look over their SQL Server environment did you? You might have even marketed it as &#8220;so easy! A few clicks and our installation is complete!&#8221;. I&#8217;m not saying you should own their environment. I&#8217;m not saying you should coddle each customer and play the role of DBA. I am saying that you should&#8230;.</p>
<p style="clear: both;">
<h2>Care Enough To Do It Right</h2>
<p>That&#8217;s right. I&#8217;m appealing to your heart. Though, if you do a great job it becomes marketing and word of mouth advertising. You&#8217;ll also be able to receive less &#8220;basic&#8221; support calls or deal with upset customers who got in trouble because of database issues. What about the lost business because of clients talking to other potential clients? Or IT staff commiserating with IT staff at user group meetings? Now I&#8217;m appealing to your bottom line, I hope?</p>
<p style="clear: both;">
<h2>Some Thoughts on Doing It Right</h2>
<p>I&#8217;m not asking for much. This list is a good start. We might revisit this post in the future with more but starting with some basics, you&#8217;ll be on your way to being a &#8220;DBA-Approved&#8221; software vendor:</p>
<p style="clear: both;">
<ul style="clear: both;">
<li><strong>Cheat &#8211; </strong>If you are looking to have your software sold and installed at a company that I work at, consult for or have worked at. Be prepared to answer <a href="http://www.straightpathsql.com/archives/2009/01/dba-questions-to-ask-a-vendor/" target="_blank">these questions</a>. Maybe all don&#8217;t apply, maybe some look like gibberish. Learn about the terms and understand why a DBA would ask. Send me an e-mail or leave a comment if you are confused about why I ask a question</li>
<li><strong>Learn and Know SQL Server &#8211; </strong>What kind of SQL Server expertise do you have on staff? You probably have some great developers but do you have someone with a DBA interest and skill set? Do you have someone who stays involved in the SQL Server community? Check out sites like <a href="http://sqlskills.com" target="_blank">SQLSkills</a>, <a href="http://sqlblog.com" target="_blank">SQLBlog</a>, <a href="http://www.sqlservercentral.com" target="_blank">SQL Server Central</a>, <a href="http://www.sqlserverpedia.com" target="_blank">SQLServerPedia</a> and the <a href="http://www.sqlpass.org" target="_blank">SQLPASS</a> organization. <strong><br />
</strong></li>
<li><strong>Speaking of PASS &#8211; </strong>PASS is the Professional Association for SQL Server users. It is a great organization with a lot of resources for us in the SQL Server space. They have a <a href="http://www.sqlpass.org/summit/na2010/" target="_blank">huge annual Summit</a> with a lot of great technical content. Send someone to the conference and have them sit in the sessions. Have them talk to DBAs (we aren&#8217;t shy&#8230;)</li>
<li><strong>Documentation? </strong>Do you provide anything to your clients (especially those smaller shops that may not have a dedicated DBA, even if I think they should) around recommended best practices for database maintenance, backups, troubleshooting, etc.? You should.</li>
<li><strong>Best Practice Review &#8211; </strong>From some of the communities/blogs mentioned above you can find a lot of intelligent and experienced DBAs who can help you review your application from a database performance and best practices point of view. I would hazard to say that even just 12-24 hours of billable time can gain you a lot of customer good will. I know I&#8217;ve helped folks out with this in the past and as a DBA on the receiving end, it makes a difference working with a vendor who has Database best practices in mind.</li>
<li><strong>Security! </strong>Please. Don&#8217;t. Ask. For. Sysadmin (SA). Rights!!! Please don&#8217;t even ask for DBO, if you can avoid it. You should be using role based security with least privilege. It would be nice if you used Active Directory security and integrated with our AD but I&#8217;ll even let you use SQL authenticated if you stop asking for SA rights! Let me review your deploys and see the scripts that get run. Do your deploys with the least privilege necessary or heck, let me do it for you&#8230; I&#8217;m not being a jerk, I&#8217;m trying to do my job as a DBA.</li>
<li><strong>Backup/Restore &#8211; </strong>It goes with the database maintenance documentation above. I wanted to call it out here separately. Work with your clients on best practices for backup and recovery. Learn about them yourselves first. Don&#8217;t just install someplace and expect it all to be fine. Ask your support teams if they&#8217;ve dealt with a client who lost more data than they were willing. Ask them how that call went.</li>
<li><strong>Don&#8217;t Go With Defaults &#8211; </strong>There have been lots of blog posts about this that you should read to get an idea of what I mean -<a href="http://www.straightpathsql.com/archives/2010/05/5-things-sql-server-should-drop/" target="_blank">My thoughts</a>, <a href="http://www.sqlskills.com/BLOGS/PAUL/post/What-5-things-should-SQL-Server-get-rid-of.aspx" target="_blank">Paul Randal</a>, <a href="http://sqlblog.com/blogs/aaron_bertrand/archive/2010/05/11/tagged-5-things-sql-server-should-drop.aspx" target="_blank">Aaron Bertrand</a> and plenty of others linked from those  &#8211; Back? Alright, learn about <a href="http://www.straightpathsql.com/archives/tag/installation/" target="_blank">how to install SQL Server</a> and include that in the documentation. Talk about recovery models so you don&#8217;t end up with huge transaction logs and <a href="http://www.straightpathsql.com/archives/2009/01/dont-touch-that-shrink-button/" target="_blank">bad advice</a> being given to your customer&#8217;s IT support team from Google and forums.</li>
</ul>
<h2>Was That So Horrible?</h2>
<p>I don&#8217;t think anything on there is going to make you freeze your code, hire a lot of developers or Project Managers. Sure if you don&#8217;t have the expertise on staff, you might engage a consultant and spend $5,000 or less on reviewing your docs and plans but how much will it cost you in lost opportunity to not do that?</p>
<p>Thanks for listening and I really hope you think about some of the points above or some of the points mentioned in my <a href="http://www.straightpathsql.com/archives/2009/01/dba-questions-to-ask-a-vendor/" target="_blank">DBA Questions for Vendors</a> list referenced earlier. I want your product to be a success and I want to see us DBAs start writing positive vendor rants (well.. Asking a DBA, a pessimist by trade, to be positive is a bit much. Maybe we can at least stop with the negative rants if you take some steps with us).</p>
<p>My offer stands &#8211; shoot me an <a href="mailto:mike@straightpathsql.com" target="_blank">e-mail</a> or leave a comment below and I&#8217;ll help you out with a quick question as time allows, I might be busy consulting for a client of yours having headaches with their SQL Server environment <img src='http://www.straightpathsql.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><br class="final-break" style="clear: both;" /></p>

<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.straightpathsql.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.straightpathsql.com/archives/2010/07/hey-software-vendors-get-a-clue/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>5 Things SQL Server Should DROP</title>
		<link>http://www.straightpathsql.com/archives/2010/05/5-things-sql-server-should-drop/</link>
		<comments>http://www.straightpathsql.com/archives/2010/05/5-things-sql-server-should-drop/#comments</comments>
		<pubDate>Tue, 11 May 2010 16:12:17 +0000</pubDate>
		<dc:creator>Mike Walsh</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[DBA]]></category>
		<category><![CDATA[Pet Peeve]]></category>
		<category><![CDATA[Syndicate]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Pet Peeves]]></category>
		<category><![CDATA[tagged]]></category>

		<guid isPermaLink="false">http://www.straightpathsql.com/?p=545</guid>
		<description><![CDATA[

When I picture Paul Randal, I picture a guy who likes to run up to a bees nest at a crowded picnic and give it a good couple whacks. You know what I mean, it’s that laughing picture in his twitter profile. Or maybe it’s the devil’s advocate style he has. Maybe it’s his controversial [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.straightpathsql.com%252Farchives%252F2010%252F05%252F5-things-sql-server-should-drop%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FbQ9p9H%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%225%20Things%20SQL%20Server%20Should%20DROP%20%20%23%22%20%7D);"></div>
<p>When I picture<a href="http://www.sqlskills.com/BLOGS/PAUL/" target="_blank"> Paul Randal</a>, I picture a guy who likes to run up to a bees nest at a crowded picnic and give it a good couple whacks. You know what I mean, it’s that laughing picture in his <a href="http://twitter.com/PaulRandal" target="_blank">twitter</a> profile. Or maybe it’s the devil’s advocate style he has. Maybe it’s his controversial facebook thoughts? Either way, he likes to call things out and make people think. That’s a great trait, all kidding aside. He started a blog meme asking <a href="http://www.sqlskills.com/BLOGS/PAUL/post/What-5-things-should-SQL-Server-get-rid-of.aspx" target="_blank">what 5 “features” you’d like to see retired in SQL Server</a>. His responses were great and he tagged some folks. I’ve looked at <a href="http://brentozar.com" target="_blank">Brent Ozar’s</a> <a href="http://www.brentozar.com/archive/2010/05/things-sql-server-should-truncate/" target="_blank">response</a> and was then <a href="http://sqlblog.com/blogs/aaron_bertrand/archive/2010/05/11/tagged-5-things-sql-server-should-drop.aspx" target="_blank">tagged</a> by <a href="http://sqlblog.com/blogs/aaron_bertrand/default.aspx" target="_blank">Aaron Bertrand</a>.</p>
<p>After reading those three responses so far, I have to say I am not going to be that original so most of these will be a hearty “Amen!” to earlier sentiments.</p>
<h2>Auto Shrink</h2>
<p>I made my entrance into SQL Blogging with a series of <a href="http://www.straightpathsql.com/archives/category/shrinking-transactions/" target="_blank">rants</a> about shrinking databases. I still get hits to articles like “<a href="http://www.straightpathsql.com/archives/2009/01/dont-touch-that-shrink-button/" target="_blank">Don’t Touch That Shrink Button!</a>” from web searches or forums. The simple fact of the matter is.. Well to put it simply, “raise your hand if you think regular shrinking of production databases is a good idea.” Okay. Look around. Any hands raised? Not many. So why, on earth, would Microsoft make that a stinking setting option?</p>
<p>I would like to see this retired, and doing it in a Service Pack would be alright with me. Or at least rename it to “I’m not dangerous enough by myself, please automatically add to performance frustrations and index fragmentation while keeping my database size tidy, even though it will grow again right after the shrink but then again I never liked right sizing databases that requires too much work &#8211; Yes/No” (Yeah, I know… Not the best grammar there, <a href="http://facility9.com/2010/04/20/the-act-of-writing" target="_blank">Jeremiah</a>, but…) This was already suggested by Paul and Brent.</p>
<h2>Full Recovery by Default (Or something…)</h2>
<p>Again I’m stealing ideas (<em>but I’m doing it to help people!</em>) – Brent and Paul both also suggested this. This has been like this for a <strong>long</strong> time. It still trips countless people up each day. Another hand raising question – how many of you have experienced, helped someone with or laughed at someone experiencing uncontrolled transaction log growth caused by a lack of log backups in full recovery model? All of the hands that were down in the earlier question were just up. We’ve all seen it, hopefully we haven’t really laughed though. It happens All. The. Time.</p>
<p>A good tactical move would be to remove this as a default. Start folks out in Simple.  Or perhaps a strategic option would be a “Recovery Model Wizard” as a required step of installations? It would be nice to not need it but I think a lot of folks could benefit. As long as there was some way to override it with an advanced configuration, I wouldn’t mind a tutorial explaining pros/cons and costs of settings so people could make &lt;gasp&gt; informed decisions about their recovery models. Or maybe that is enabling companies to not hire experienced DBAs? I don’t know, what do you think?</p>
<h2>No Simple Way to Truncate Backup History</h2>
<p>Why make someone write a script or know to go look in a maintenance plan to find this option? Backup history isn’t critical to restores, sure it makes GUI based restores easier but how many GUI based restores are done going past 30 days? Why not make a default rolling window and let SQL cleanup that history. Provide a configuration option to change this window, even a configuration screen during setup asking other questions that should be asked but never get looked at by a lot of the SQL Server installations out there (backup history, recovery modes, heck even error log recycles)</p>
<h2>Auditing – Enterprise Only?</h2>
<p>Aaron talked about licensing models and I agree. One area is Auditing. Nowadays, even smaller companies with smaller budgets are being subject to increasing scrutiny and audit standards. In some ways, this can help a larger company that has a budget for Enterprise edition everything and an audit staff. What about the smaller company that is cash strapped? They can get most of the performance they need out of Standard and handle most questions/problems just fine, a $15k difference (or so) in per CPU licensing is a lot to ask for to better handle some of the auditing abilities in SQL Server.</p>
<h2>Next, Next, Next, Finish</h2>
<p>Aaron talked about the installation process in his response. He was talking about some of the bad defaults like I mentioned when talking about cleaning up backup history. This is perhaps more of a tongue-in-cheek response but it has some sort of a serious underpinning. I’ve always complained (raise your hand one last time if you’ve shared this complaint) that SQL Server is too easy to install. Accepting defaults and clicking next, next, finish gives folks a SQL Server instance that they put all of their most sensitive and important data. It also gives them:</p>
<ul>
<li>No backups
<p><div id="attachment_547" class="wp-caption alignright" style="width: 310px"><a href="http://www.flickr.com/photos/bonnett/455610604/"><img class="size-medium wp-image-547  " title="455610604_efe19bd72a" src="http://www.straightpathsql.com/wp-content/uploads/2010/05/455610604_efe19bd72a-300x224.jpg" alt="" width="300" height="224" /></a><p class="wp-caption-text">Brings back memories of 386DX, &quot;Boost Priority&quot; is  not a turbo button</p></div></li>
<li>Full Recovery mode with no log backups</li>
<li>No thought of DR</li>
<li>No thought of right sizing a database</li>
<li>Options that look tempting to select like “boost SQL priority”</li>
<li>Data and Logs on the same drive (performance concern and recoverability concern)</li>
<li>False confidence that everything is fine</li>
</ul>
<p>That list could go on but the point is maybe SQL Server is a little too <em>easy</em> to install? I’ve heard it in a joking manner before like, “why do we need a SQL Server DBA? Any moron can install it!” I’ve seen the results of any old IT person (or business person) installing SQL. It inspired a <a href="http://www.straightpathsql.com/archives/tag/installation/" target="_blank">series of posts on thinking about SQL installations.</a></p>
<p>I am going to take a cue from Brent and not tag anyone but welcome you to respond in your own post, leave a comment arguing with me (or agreeing) below or leave a comment on any of the blog posts that are sparked from the <a href="http://www.sqlskills.com/BLOGS/PAUL/post/What-5-things-should-SQL-Server-get-rid-of.aspx" target="_blank">original post by Paul</a>. I&#8217;d love to hear your thoughts, maybe I&#8217;ve gone too far? Maybe I missed something critical. I&#8217;d love to hear your thoughts. Also feel free to <a href="http://feeds.feedburner.com/StraightpathSolutionsSqlBlog" target="_blank">subscribe to the feed here</a> for more posts like this.</p>
<h2>Related Posts At StraightpathSQL.Com</h2>
<ul>
<li><a href="../archives/2009/01/do-you-focus-too-much-on-your-backups/" target="_blank">Why I think you focus too much on your backups</a> – As  discussed in the presentation, the focus should be on restores. May  seem like semantics, but the focus on restore means you are thinking of  more questions.</li>
<li><a href="../archives/2009/11/how-do-you-install-sql-server-part-1/" target="_blank">How Do You Install SQL Server?</a> – The first of a 3  part series where we discuss some tips for installing SQL Server and  planning for a successful implementation.</li>
<li><a href="../archives/2009/08/benchmarking-who-needs-it/" target="_blank">SQL Server Benchmarking Tips</a> – I introduced the  Performance Analysis For Logs tool in this presentation, this post talks  about that tool.</li>
<li><a href="../archives/2009/02/what-sql-instances-are-installed-on-my-network/" target="_blank">Find All SQL Server Instances On Your Network</a> – I  talk about using the Microsoft Assessment and Planning toolkit to locate  all of your SQL Server instances. This post describes my discovery and  use of this great (<strong>and free</strong>) tool.</li>
</ul>

<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.straightpathsql.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.straightpathsql.com/archives/2010/05/5-things-sql-server-should-drop/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>T-SQL Tuesday #005 &#8211; Reporting For Duty</title>
		<link>http://www.straightpathsql.com/archives/2010/04/t-sql-tuesday-005-reporting-for-duty/</link>
		<comments>http://www.straightpathsql.com/archives/2010/04/t-sql-tuesday-005-reporting-for-duty/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 18:03:20 +0000</pubDate>
		<dc:creator>Mike Walsh</dc:creator>
				<category><![CDATA[#tsqltuesday]]></category>
		<category><![CDATA[DBA]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Pet Peeve]]></category>
		<category><![CDATA[#tsql2sday]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[SQL Sentry]]></category>

		<guid isPermaLink="false">http://www.straightpathsql.com/?p=433</guid>
		<description><![CDATA[

Aaron Nelson is hosting this week&#8217;s T-SQL Tuesday. His topic, like mine from last week, has a lot of ways I could go. He basically said to talk about something that has to do with reporting. I decided to take the hodgepodge approach and talk about a couple things.
Disclaimer  &#8211; I am not syndicating this [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.straightpathsql.com%252Farchives%252F2010%252F04%252Ft-sql-tuesday-005-reporting-for-duty%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FcvYxir%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22T-SQL%20Tuesday%20%23005%20-%20Reporting%20For%20Duty%20%23%22%20%7D);"></div>
<p><a href="http://sqlblog.com/blogs/adam_machanic/archive/2010/04/05/t-sql-tuesday-005-reporting.aspx" target="_blank">Aaron Nelson</a> is hosting this week&#8217;s T-SQL Tuesday. His topic, like mine from <a href="http://www.straightpathsql.com/archives/2010/03/t-sql-tuesday-004-a-roundup/" target="_blank">last week</a>, has a lot of ways I could go. He basically said to talk about something that has to do with reporting. I decided to take the hodgepodge approach and talk about a couple things.</p>
<p><strong>Disclaimer  &#8211; </strong>I am not syndicating this post because I am talking about a vendor&#8217;s product. I make no money from said vendor but enjoy working with their tools and have a complimentary license from them for use in consulting (mainly because when clients see the tool they want to buy it anyway). I also was invited to, and participated in, their first ever Product Advisory Board meeting, got some free food out of the deal (but not enough to leave my integrity at home). At the end of the day I like their product and get nothing if you select them and nothing less if you don&#8217;t but I think it is at least worth a side by side test drive with other such products.</p>
<h2>SQL Sentry 5.5 And Letting Reports Save You</h2>
<p>I have known about SQL Sentry for a long time, since hearing about them from a former manager of mine who happens to be a SQL MVP (regular readers already know who I am referring to). I have used their products at a couple of places I&#8217;ve worked and have enjoyed the experience. One thing I thought was lacking on the performance side was some underdeveloped reporting functionality but that has just changed. I downloaded their new version 5.5 when it was in Beta and I have loved their reports, even saved my bacon a couple of times.</p>
<p>Well, SQL Sentry 5.5 is in general release now and you can <a href="http://www.sqlsentry.com/download-trial/trial.asp" target="_blank">download a trial here</a>. You can read about 5.5&#8242;s features in a <a href="http://greg.blogs.sqlsentry.net/2010/02/sql-sentry-v55-need-to-know.html" target="_blank">blog post</a> by Greg Gonzalez, their President and CEO.  I am not going to send screen shots of my environment&#8217;s reports because I don&#8217;t have a dummy environment setup and it would require too much Photoshop cleaning server names/etc but I&#8217;ll steal some of the screen shots Greg used in his post. I&#8217;ll also describe the importance of these reports in my environment.</p>
<p>While I think SQL Sentry is a great tool and would recommend it to anyone, I don&#8217;t really care what tool you use as long as you track history and can report off of it. It can save your butt, show negative trends and make life easier for you. There are lots of tools that can do this for you. You can buy a 3rd party product to handle monitoring, alerting and the reporting. You can play with the <a href="http://msdn.microsoft.com/en-us/library/dd939169.aspx" target="_blank">Management Data Warehouse</a> and Data Collectors that Microsoft provides with SQL Server 2008 also.</p>
<p>Anyway&#8230; What are some questions that I have recently used these reports to answer?</p>
<p><strong>Our New SAP GL system has been growing, we think. Can you tell us how much the SQL Server database grew since last Friday? </strong>So before I had SQL Sentry 5.5 I could have prepared for this question in advance by setting up jobs to track the data, configuring a SCOM SQL management pack to collect that data, etc. I didn&#8217;t have those things setup and the question caught me off guard, to be honest. I could go back and look at backup sizes and get a decent idea but I had SQL Sentry Eevent Manager/Performance Advisor running and had just recently installed 5.5 at the time. I clicked the Reports drop down knowing new reports were added when I upgraded to the beta version and saw a menu that looked a bit like this:</p>
<div id="attachment_434" class="wp-caption aligncenter" style="width: 310px"><a href="http://greg.blogs.sqlsentry.net/2010/02/sql-sentry-v55-need-to-know.html"><img class="size-medium wp-image-434 " title="pa_reporting[6]" src="http://www.straightpathsql.com/wp-content/uploads/2010/04/pa_reporting6-300x192.png" alt="" width="300" height="192" /></a><p class="wp-caption-text">Some of the new Performance Reports</p></div>
<p><strong>Nice! </strong>I saw one for SQL Server File Utilization &#8211; By Database&#8230; What the heck, I gave it a shot and sure enough. I selected the database I wanted, the date range I wanted (Friday to the Tuesday they were asking on) and poof! A pretty report showing the growth of used space in each data file in the SAP ECC database and a great graphical representation of how much free space remained. I was able to quickly tell them that each file had grown by about 12GB in that 5 day process. Graphical representation helped me explain the free space/used space concepts, the beginning/end text data helped me do a quick calculation. (The report had a percent change but they wanted the GB changed so I still had to do a little simple math. Maybe an enhancement request to put the MB changed also? Saves me from having to type calc ;-0 )</p>
<div id="attachment_435" class="wp-caption aligncenter" style="width: 375px"><a href="http://greg.blogs.sqlsentry.net/2010/02/sql-sentry-v55-need-to-know.html"><img class="size-full wp-image-435 " title="reports_file_database_thumb[7]" src="http://www.straightpathsql.com/wp-content/uploads/2010/04/reports_file_database_thumb7.png" alt="" width="365" height="258" /></a><p class="wp-caption-text">Database Growth Over Time</p></div>
<p><strong>&#8220;The database server wasn&#8217;t running right last night!&#8221;</strong></p>
<p>Another use of another report while still in beta mode. Came in to work and folks were complaining about performance the night before in the database server. Application team indicated it was probably a database issue and we should consider ways to improve that. It was an area we have had discussion in the past and there had been some DB issues but I got no alerts from SQL Sentry the night before, no alerts from SCOM and when talking it didn&#8217;t make sense that there was any DB issues.</p>
<p>Well before these reports, I could gather the data from a few sources. I could look at SCOM as we are tracking several performance counters, I could look at SQL Sentry&#8217;s Performance Advisor tool for that time frame and see the disk activity, TOP SQL commands issued, memory/CPU graphs, etc.</p>
<p>I decided to play with the Reporting menu again and discovered the Windows &amp; SQL Server Performance report. Figured that might be a good way to quickly rule in or out DB server issues for further investigation. Ran the report and pretty much saw a quiet server that had a few spikes that were not correlated. <strong>Nice!</strong> I exported this report (like I did with the DB file growth report) to .pdf and sent it off with some thoughts. Turns out there were no issues at all (in any portion), just a bit of overreacting..</p>
<h2><strong>What&#8217;s the Moral?</strong></h2>
<p>As fun as it is when first starting out to build your own reports and monitoring processes, there is something nice about having everything you need a few clicks away. Consider looking at collecting your performance data in some form with some tool and have some reports ready to use to save you time in the rabbit hole later.</p>
<h2>Mini Rant</h2>
<p>I said it was a hodgepodge. This one is about SQL Server Reporting Services (full disclosure: I am in a SSRS 2005 environment, but I don&#8217;t believe this was changed for 2008). Now maybe it is only the environment I am in with some reports that need &#8220;help&#8221; and tuning work (some of which is in progress as time allows the development teams). Why can&#8217;t SQL Server write a permanent entry every time a report starts?! Sure there is some data in the Reporting Services TEMPDB but it is difficult, if not impossible, to make usable sense out of the data. Yes, if the report aborts or finishes a record is written to the Execution Log.</p>
<p>That being said, we occasionally have a report execution of one or a couple of our 300-450 reports that just brings the well provisioned SSRS box to its knees. We have no choice but to resort to service restart/iis reset/etc. Mixture of cube and Stored Procedure reports and it could be either. When trying to figure out what is causing the issue and seeing if we can just isolate the responsible dashboard, queries, etc. we can&#8217;t see anything. Why? Because there is no execution log entry until the report is done (with success or not).</p>
<p>I should (and will now that I am thinking of it) open a Connect item to suggest that possibly an Execution Log entry with a status of &#8220;in progress&#8221; be written when a report is FIRST requested. Then when it completes the status can change to completed,aborted,etc.</p>
<p>Is that so wrong? Do you bump into similar issues ever?</p>
<p>We have a plan to get moving to 2008 and that may even reduce the need for this functionality as SQL Server 2008 renders reports much more efficiently than 2005 and we likely won&#8217;t have these restart requiring incidents, hopefully.</p>

<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.straightpathsql.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.straightpathsql.com/archives/2010/04/t-sql-tuesday-005-reporting-for-duty/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bill Clinton Wasn&#8217;t Impeached For&#8230;</title>
		<link>http://www.straightpathsql.com/archives/2010/03/bill-clinton-was-no-impeached-for/</link>
		<comments>http://www.straightpathsql.com/archives/2010/03/bill-clinton-was-no-impeached-for/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 13:51:06 +0000</pubDate>
		<dc:creator>Mike Walsh</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Pet Peeve]]></category>
		<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[Syndicate]]></category>
		<category><![CDATA[Attitude]]></category>
		<category><![CDATA[Owning Mistakes]]></category>
		<category><![CDATA[Pet Peeves]]></category>

		<guid isPermaLink="false">http://www.straightpathsql.com/?p=396</guid>
		<description><![CDATA[

Yes, he was impeached, by the house and acquitted by the Senate. Not the point of my post today, forget the politics. He wasn&#8217;t impeached for all of that business with Monica Lewinski. Was it unethical? Yes. Was it immoral? Well to me it is. Was that activity an impeachable offense? No. Why was he [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.straightpathsql.com%252Farchives%252F2010%252F03%252Fbill-clinton-was-no-impeached-for%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2F9Cjii5%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Bill%20Clinton%20Wasn%27t%20Impeached%20For...%20%23%22%20%7D);"></div>
<p>Yes, he was <a href="http://en.wikipedia.org/wiki/Impeachment_of_Bill_Clinton#Independent_counsel_investigation" target="_blank">impeached</a>, by the house and acquitted by the Senate. Not the point of my post today, forget the politics. He wasn&#8217;t impeached for all of that business with Monica Lewinski. Was it unethical? Yes. Was it immoral? Well to me it is. Was that activity an impeachable offense? No. Why was he in legal trouble then? Simple: <strong>he lied. </strong>He, according to the conviction in the House, perjured himself about his affair while under oath. You may also remember his infamous press conference where he did the same thing to the public.</p>
<h2>What&#8217;s Your Point? This is a SQL Server Blog&#8230;</h2>
<p>Well my point is simple, <strong>often the cover-up or lie is worse (or has worse effects at least) than the act being lied about</strong>.</p>
<p>That&#8217;s where it relates to my chosen career field. That is where we, as DBAs, Sysadmins, Developers, etc., have to make sure we pay attention to the many lessons we see in public oopses.</p>
<h2>Ever Have This Feeling?</h2>
<p>One time, I was doing some work on a critical production cluster. I was adding drives and modifying an existing drive. Took the drive offline (shh if you already know how this ends). Took the disk offline&#8230; And then&#8230; I had <em>that</em> feeling. Please tell me you know the feeling also &#8211; my face felt like it was on fire. My fight or flight system was in overdrive as I had an adrenaline dump. Hands got a bit jittery, awareness increased while at the same time a narrow focus started. My stomach? Oh man. That horrible feeling of your stomach being twisted and turned upside down like an engine that just won&#8217;t turn over. Yup&#8230; I realized what I did when I saw the SQL cluster begin a dance of fail-overs. <strong>You bonehead! That drive was a dependency of the SQL Server group. </strong></p>
<p>Yup. I brought the production cluster to a standstill for about 10 minutes while I hustled to repair the damage done. So while fixing that issue I had two choices of how I would proceed:</p>
<ol>
<li> Listen to the voice in my head that says (somehow italics look more sneaky), &#8220;<em>quickly fix it, figure out how to cover the tracks and draft an e-mail that starts with something like, &#8216;a mysterious issue&#8230;&#8217; &#8220;</em></li>
<li>Listen to the voice in my head that says, &#8220;quickly fix it, ping someone in charge and give them a heads up and let them know what you did. Prepare to write a note explaining the event.&#8221;</li>
</ol>
<p>I chose Option 2. I&#8217;m not saying I&#8217;m better than you if you went with Option 1. I&#8217;m not saying I&#8217;m perfect. I&#8217;m just saying that Option 1 doesn&#8217;t work. Early on in my career I may have gone with something between the two options. Even that doesn&#8217;t work because it leaves untied ends. The best manager I ever worked for (I blogged about him when I answered the <a href="http://www.straightpathsql.com/archives/2009/04/sql-quiz-4-leadership/" target="_blank">SQL Quiz on Leadership</a>) was really big on this. His philosophy on this more or less was, &#8220;Own it&#8221;. If you don&#8217;t own it on his team you have a problem, probably lost some respect and trust. If you do own it and the mistake or issue wasn&#8217;t something really horrible, you&#8217;ll end up alright in the long run.</p>
<h2>How Do You &#8220;Own It&#8221;?</h2>
<p>It&#8217;s simple. You admit you messed up, fix the issue or enlist help in fixing the issue, make a plan to prevent this from happening in the future and move on. You&#8217;ll be fine. We are all human, we all mess up and most of us still have our jobs. Heck, even Bill Clinton after his not owning it commands a lot of money to speak.</p>
<h2>A Pattern</h2>
<p>Now one of my flaws that I am still working on after 10 years in the field is keeping e-mails short and to the point. So take this advice with that caveat in mind. A good quick template of an e-mail I could have sent in that issue above:</p>
<blockquote><p>Earlier today the cluster service became unavailable while I was doing maintenance on it. This e-mail outlines what happened.</p>
<p><strong>Summary</strong></p>
<p>I was tasked with removing a disk that was no longer being used. As this disk was removed, I realized (too late) that it was a dependency on the SQL Server group in the cluster. This means that the SQL Server failed back and forth between the nodes until it rested in a failed state. I was able to resolve this by breaking the dependency on the unused disk and bring the cluster back online.</p>
<p><strong>How Was This Missed?</strong></p>
<p>I should have checked the dependencies before touching the disk. I did not use a checklist to check for this and I missed this important detail.</p>
<p><strong>What will be done to prevent it?</strong></p>
<p>I have created a document for working with cluster resources like disks. This document links back to Microsoft checklists and includes a warning about resource dependencies with a process to check this. I have also sent a note to the server teams and DBA teams outlining what happened.</p></blockquote>
<p>That isn&#8217;t exactly what I would write but the bolded points are the &#8220;pattern&#8221;. Describe what happened, why it happened and how it won&#8217;t happen again&#8230; And then move on. Deal with the repercussions and feel confident knowing that you were honest and up front and you mitigated your own issue. And remember&#8230;</p>
<h2>You Learned a Good Lesson</h2>
<p>So maybe this isn&#8217;t one to include in the e-mail or in a mea culpa discussion with your manager (though you should have that mea culpa discussion). Keep this tip for yourself &#8211; <strong>whatever you did wrong&#8230; whatever caused that stomach roller coaster just taught you a lesson you won&#8217;t soon forget. </strong>Like I said, unless you really, totally ruined the day for your company, you&#8217;ll still have a job. You&#8217;ll still get respect from your colleagues because you quickly came clean and even talked about how to prevent it. You learned something, though. So eventually you may even have a net positive out of the issue. Just remember to learn from that lesson and don&#8217;t let <strong>pride</strong> get in the way.</p>
<h2>Bring Your Own Negative Example</h2>
<p>So, I didn&#8217;t talk about some negative examples. I can instantly think of the times where I have been involved with projects and teams that had people who listened to voice number 1. I won&#8217;t. I don&#8217;t need to. You can think of them already, right? How did you feel as the coworker (or victim) of the person who reached for the broom and the carpet corner? <strong>Don&#8217;t be that person&#8230;</strong></p>
<p><strong>Share your story below in the comments. </strong>I want to hear about how you cope with a mistake you make on the job. I want to hear about a counter example that you&#8217;ve bumped into and how it made you feel.</p>

<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.straightpathsql.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.straightpathsql.com/archives/2010/03/bill-clinton-was-no-impeached-for/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>How do -you- install SQL Server (Part 1)</title>
		<link>http://www.straightpathsql.com/archives/2009/11/how-do-you-install-sql-server-part-1/</link>
		<comments>http://www.straightpathsql.com/archives/2009/11/how-do-you-install-sql-server-part-1/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 21:44:00 +0000</pubDate>
		<dc:creator>Mike Walsh</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Pet Peeve]]></category>
		<category><![CDATA[Syndicate]]></category>
		<category><![CDATA[Checklist]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://straightpathsql.mikewalshonline.com/?p=71</guid>
		<description><![CDATA[

No, this is not an installation guide
There is documentation for that found in many places. First good place to look is Books Online (2005/2008) but there are plenty of other community resources found at sites like SQL Server Central and SQLServerPedia as well as blogs.
What I mean by this post is to ask, &#8220;How do [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.straightpathsql.com%252Farchives%252F2009%252F11%252Fhow-do-you-install-sql-server-part-1%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22How%20do%20-you-%20install%20SQL%20Server%20%28Part%201%29%20%23%22%20%7D);"></div>
<h3>No, this is not an installation guide</h3>
<p>There is documentation for that found in many places. First good place to look is Books Online (<a href="http://msdn.microsoft.com/en-us/library/ms130214%28SQL.90%29.aspx" target="_blank">2005</a>/<a href="http://msdn.microsoft.com/en-us/library/ms130214.aspx" target="_blank">2008</a>) but there are plenty of other community resources found at sites like <a href="http://www.sqlservercentral.com/" target="_blank">SQL Server Central</a> and <a href="http://www.sqlserverpedia.com/" target="_blank">SQLServerPedia </a>as well as blogs.</p>
<p>What I mean by this post is to ask, &#8220;How do <em>you</em> install SQL Server?&#8221; Do you follow any best practices? Do you use a repeatable process and a checklist to the process? Do you review post installation to verify you did everything right? Do you know what is actually needed for the instance you are building?</p>
<p>If you do, then this post might be a review and not worth reading. If you do things kind of quickly, or give every instance every service then maybe some of these tips will help you out. More to follow in Part 2.</p>
<h3>Some SQL Server Installation Tips</h3>
<p>I used to catch a lot of grief (in good humor) from a Sharepoint developer (pot meet kettle <img src='http://www.straightpathsql.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ) about how my job as Database Administrator was a series of left and right clicks. While I enjoy scripting things out, the GUI is there and it is helpful so sure, I do some clicking. One area in particular I caught flack was for the install process (described, almost accurately, as &#8220;Next, Next, Next, Finish&#8221;).</p>
<p>I have worked in a lot of environments where that was the extent of the SQL Server installation &#8211; some quick clicks and poof you are live with defaults and some form of SQL Server services running ready for &#8220;prime time&#8221;. Giving a little more thought to the installation and setup may save you some invoiced consulting hours in the future.</p>
<p>I recently spoke about some aspects of these issues when sharing on the Quest Connect webcast for Top 10 SQL Server Administration mistakes (I blogged about that <a href="http://www.straightpathsql.com/blog/2009/10/17/free-sql-training-online-wednesday-102109.html" target="_blank">here</a> but it is now unavailable &#8211; it was a 24 hour virtual conference). I want to zero in on some of the installation/initial setup related items now&#8230;</p>
<h4><strong><span style="font-size: 130%;">Read the Documen</span><span style="font-size: 130%;">tation</span></strong></h4>
<p>Ok so this one sounds like a freebie. You&#8217;d be surprised how many people don&#8217;t, though. It&#8217;s apparent in some questions online and it&#8217;s apparent in some basics that are misunderstood when choosing options. If you don&#8217;t know or you aren&#8217;t 100% sure, look it up. Most of the installation steps have a &#8220;help&#8221; dialog and Books Online really does go into a lot of detail.</p>
<h4><strong><span style="font-size: 130%;">Plan</span></strong></h4>
<p>Figure out what type of usage you should expect. Plan your I/O infrastructure. Some basics rules of thumb (I hate rules of thumb as a rule of thumb&#8230; Your mileage will vary but some basic thought processes to go through follow. Part 2 will have some resource links, check these out and look at Books Online thoroughly):</p>
<ul>
<li>Memory &#8211; the more the merrier. Now you could go overboard and waste money but on a busy database server with a fair amount of data memory is key. The less memory you have, the more frequently you are reading from disk and flushing data to disk.</li>
<li>Disks &#8211; Fast is better. More spindles (physical disk drives) is better. Separation (at least Data, TempDB, Log files and backups each onto their own physical drives is generally a good start) onto the RAID arrays is even better. RAID 5 (Striping with Parity) is generally alright for most data file setups. RAID 10 makes your log and tempdb files happier (even just going with mirroring alone for Log files is fine in a lot of environments also)</li>
<li>CPU &#8211; Multi cores are generally fine. In my mind the verdict on the new hyperthreading on top of the quad cores is still being decided. It used to be that hyperthreading (prior to the dual cores) was bad but it has been souped up and reintroduced. Most SQL Server environments I encounter are disk or memory bound before they are CPU bound but don&#8217;t skimp here either for a busy environment.</li>
<li>64 or 32 bit? 64 will give you better memory management, it is trusted and well used in the &#8220;wild&#8221;. Some annoyances with SSIS packages but nothing impossible to work with. Make sure your hardware and O/S and SQL installation are all friendly with one another.</li>
</ul>
<p>The point here is to understand what makes each of these areas tick (you may grow tired of me saying this but you can find what you need from documentation out there), understand what the needs are for your environment and get a plan for what is needed before you even think about looking for the install media. Heck before you even think about putting an order in for the server.</p>
<p>Don&#8217;t just plan the hardware here but actually take a look through the below items, the items in Part 2 and incorporate decisions needed down the line here in the planning stage. I wrote a checklist for questions to ask vendors (Blogged about it <a href="http://www.straightpathsql.com/blog/2009/1/27/new-vendor-interview-with-an-annoying-dba.html" target="_blank">here</a>). An installation/pre-installation checklist is also a good idea. I know Microsoft has some for cluster installations&#8230;</p>
<h4><strong><span style="font-size: 130%;">Install What You Need</span></strong></h4>
<p>What was requested? Is what was requested understood properly by the requester? Depending on the version of SQL, installing Reporting Services (in 2005) means you need to install IIS. Do you want that running on your busy production database instance if it wasn&#8217;t needed? Why install Analysis Services or Free text Search if you don&#8217;t have a requirement for it? Wastes a little space, uses a little memory and it&#8217;s one more item to increase the surface area of your installation for security concerns. (SQL Server has had very few exploits in 2005 and beyond compared to many competitors but security should be a concern of a DBA and why increase even a slight chance of risk if you don&#8217;t need the tool?)</p>
<p>Do you want all of the client tools on the server? Maybe SSMS but do you need BI Development studio up there?</p>
<h4><strong><span style="font-size: 130%;">(Install What You Need) Where You Need It</span></strong></h4>
<p>So you do need Reporting Services and Analysis Services. How busy will they be? Have you done some planning to understand the capacity, usage and load factors to know what should go where? Analysis Services has a different IO pattern than SQL Server. When you need to load your cubes each night your data source is on the same box if you collocated the tools.</p>
<p>For Reporting Services have you considered putting the front end on an &#8220;app&#8221; or web server? Memory and CPU are generally more important (there are exceptions and report caching/subscriptions can complicate that blanket statement&#8230; See Documentation above <img src='http://www.straightpathsql.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )  and the usage of memory and CPU is different and competitive with the Database Engine. Perhaps your reports will be so busy that having the Front End on one box, the data source on one box and the database server for the two databases that get loaded when you install and configure Reporting Services (By The Way &#8211; Reporting Services has it&#8217;s own databases and they are crucial to reporting performance)</p>
<h4><strong style="font-size: 130%;">Installation Directories</strong></h4>
<p>Don&#8217;t just accept the defaults without thinking through them. Do you have a directory setup for your data files? Do you like seeing your application binaries in a path other than C:\Program Files\&#8230; ?</p>
<p>In fact while talking about directories, do you have standards for folder naming conventions? For me, I typically like to make a &#8220;SQLData&#8221; and &#8220;SQLLogs&#8221; folder, sometimes I incorporate an instance name when going with multiple instances (I wrote a wiki article for SQLServerPedia on some factors in the decision making process there). So if you do have one, implement it before you begin the installation. If you don&#8217;t have a standard, maybe now is the time to think about one? There is no wrong answer for a standard (other than not having one or, even worse, having one and not following it consistently).</p>
<h3>Enough for Part 1</h3>
<p>In <a href="http://www.straightpathsql.com/blog/2009/11/23/how-do-you-install-sql-server-part-2.html" target="_blank">Part 2</a>, we&#8217;ll talk about Security Considerations, High Availability/Recoverability Considerations and a process for <strong>testing</strong> your installation. We&#8217;ll close with Part 3 at the end of November when we discuss post installation configuration options, maintenance and defaults.</p>
<p>I welcome comments. If I my comments don&#8217;t backup your experiences, you have a different take or more to add, please feel free to drop a line below.</p>

<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.straightpathsql.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.straightpathsql.com/archives/2009/11/how-do-you-install-sql-server-part-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How did I get involved with this SQL Server thing?</title>
		<link>http://www.straightpathsql.com/archives/2009/09/how-did-i-get-involved-with-this-sql-server-thing/</link>
		<comments>http://www.straightpathsql.com/archives/2009/09/how-did-i-get-involved-with-this-sql-server-thing/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 00:54:17 +0000</pubDate>
		<dc:creator>Mike Walsh</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Pet Peeve]]></category>
		<category><![CDATA[Syndicate]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[meme]]></category>
		<category><![CDATA[Quiz]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://straightpathsql.mikewalshonline.com/?p=57</guid>
		<description><![CDATA[

There is another quiz going around the SQL Server blogosphere. Great question again, &#8220;How did you get started with SQL Server?&#8221; I was tagged by Denis Gobo (Blog, Twitter) when he answered this question here. You can hit his blog to track the lineage of this one.
I have been working with SQL Server for just [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.straightpathsql.com%252Farchives%252F2009%252F09%252Fhow-did-i-get-involved-with-this-sql-server-thing%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22How%20did%20I%20get%20involved%20with%20this%20SQL%20Server%20thing%3F%20%23%22%20%7D);"></div>
<p>There is another quiz going around the SQL Server blogosphere. Great question again, &#8220;How did you get started with SQL Server?&#8221; I was tagged by Denis Gobo (<a href="http://blogs.lessthandot.com/index.php/All/?disp=authdir&amp;author=4">Blog</a>, <a href="http://twitter.com/denisgobo">Twitter</a>) when he <a href="http://blogs.lessthandot.com/index.php/DataMgmt/DBProgramming/how-i-got-started-with-sql-server">answered </a>this question here. You can hit his blog to track the lineage of this one.</p>
<p>I have been working with SQL Server for just over 10 years now. I guess to paint the start we should go back a little bit to my &#8220;pre-techie&#8221; life&#8230; Maybe I&#8217;m going back too far on a blog talking about my professional skills but hey it&#8217;s my history and it helepd shape me.</p>
<p><strong>Pre SQL Mike</strong></p>
<p>I worked throughout High School at a hotel in a small Maine tourist town. I worked in a lot of roles (started as a dishwasher and eventually moved to the Front Desk) and assumed the unofficial computer geek role. Flashback a ways and I was always a bit of a computer geek, from my first TRS-80, to the C-64 (blogged about them <a href="http://www.straightpathsql.com/blog/2009/2/21/first-computers.html">here </a>for a different quiz). At the hotel, I impressed myself with my notepad HTML abilities as I worked on a project to develop a self service concierge system that was supposed to give area information to guests (Internet wasn&#8217;t as widespread, still mostly dialup and no kiosks/etc. in the area&#8230; Spent a lot of time answering the same questions and I wanted to put more in the guests hands). Due to various reasons this never made it to the other side of the desk but it was used a little bit behind the desk for some information. Really simple, really ugly.</p>
<p><em>&#8220;Database&#8221;&nbsp; </em>- I didn&#8217;t use a database for that information system, data points were hard coded into the notepad html code. At that point in my mind a database was defined as a flat file to store my music collection or some address information. A spreadsheet really (funny, today one of my pet peeves is folks talking about their &#8220;excel databases&#8221; they want my help with spread throughout the enterprise).</p>
<p>Due to many reasons, I focused more on work and other things and school work trailed off. I lost interest and eventually stopped going to High School. After 6 years at the hotel, I was comfortable and &#8220;content&#8221;. Met a great gal at work, was really impressed with her but she wanted someone with their life more together: <strong>enter motivation</strong>. Quite a few things changed in my life through meeting her, her family and the God her family worshipped. Two of those were: Going back to get my diploma and looking for a job that utilized a talent I had developed on my own and taught myself: &#8220;computer stuff&#8221;. (I married that girl, by the way..)</p>
<p><strong>Contract to Perm Tech Support </strong></p>
<p>Around &#8217;98 I signed up for an e-mail distribution for jobs in the state I was living in at the time (NH) and saw a posting that looked interesting&#8230; A software company needed Tech Support help, talked about helping with printing problems (their primary business was check printing software that tied into large ERPs&#8230;), computer issues, etc&#8230; &#8220;I can do this&#8221;, crossed my mind so I made my first resume and sent it in. To my surprise they wanted an interview and the interview was largely about troubleshooting skills. Something that is important in every role I have ever held (both with and without computers). One of my first blog posts was about a <a href="http://www.straightpathsql.com/blog/2008/12/31/troubleshooting-methodology.html">troubleshooting methodology</a> and I wrote a SQL Server Central <a href="http://www.sqlservercentral.com/articles/Troubleshooting/66134/">article </a>about the topic also.</p>
<p><strong>I got the job! meet Relational Databases<br /></strong></p>
<p>I got the job. First order of business was two weeks of training. Well the first week was about the software, how it worked and what went wrong with it, etc. It was a training class for all new hires. Well the second week really piqued my interest. They started talking about the database behind the application. Talking about the tables that the application used perform various functions in the application. Talking about the configuration tables, the&nbsp; data for the application, etc.</p>
<p><em>What? Tables behind the application???</em></p>
<p>I&#8230; I thought a database was just used to store information like what CDs I owned and which ones I liked. Maybe store account information. What the heck are these tables that control an application they are talking about?! I was intrigued and had to learn more. I started digging deeper and learning about relational databases, I got more intrigued. I am a math geek deep inside, I messed up by not applying myself in mathematics in school but this relational theory stuff looked interesting. I really liked the ability to change configuration information without having to rebuild/deploy code. I liked the order of the relational model: no matter how crazy the data points may be, no matter what kind of business logic may exist, the database brought some order (well, most databases do&#8230; remember I was still an idealist as I was learning at this phase of the career <img src='http://www.straightpathsql.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) to the chaos.</p>
<p><strong>On The Job </strong></p>
<p>I was still high on this database knowledge. The Application at that time was on Oracle 7 something, SQL Server 6.5 and SQL Server 7.0&#8230; I took some computer based training for the Oracle stuff and really started getting into this Structured Query Language stuff. I had an opportunity to take some SQL Server 7.0 development and administration training, I jumped at it. I really picked up all I could, installed SQL at home and started playing with it a lot. In the support role my focus was more on Database Administration (a lot of our SQL Server shops didn&#8217;t have DBAs) and helping some bad default setups and SQL Server issues.</p>
<p>I just kept learning, trying and growing and instead of it getting old hat or boring there was always something new. This was exciting and fun to learn. After about 6 months on the support team, I became a go-to guy for database issues. We had an advanced support team for issues we couldn&#8217;t take and I hung out with those couple of guys and talked database talk with them. I would try and head off other resources database issues before we had to &#8220;bother&#8221; them and that was a huge growth.</p>
<p><strong>An amazing opportunity</strong></p>
<p>I had a chance to work for Andrew Kelly at another company. I didn&#8217;t know who he was, SQL Server 2000 was still very new and I believe Andy was either a new MVP or about to be one. I remember he was always on those newsgroup things (that&#8217;s why he needed a Junior DBA, most likely <img src='http://www.straightpathsql.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ). For some reason, he decided to hire this kid with not much experience but a passion for SQL Server. Working for Andy consisted of getting into &#8220;large&#8221; (They were at the time on SQL 7.0 or the early releases of SQL Server 2000) databases, rolling out maintenance tasks, monitoring performance, learning the vital importance of backup strategies (and testing them), hardware and performance issues (with some basic DTS packages thrown in for good measure.)</p>
<p>The best part about working for Andy was some amazing 1:1 training from someone with such knowledge. He created some classes for me about database administration, new features of 2000 and he patiently explained so many concepts to me that stick with me to today.</p>
<p>He also more or less made me get Kalen&#8217;s &#8220;Inside SQL Server 2000&#8243; book when it was pretty darn new. That book and I became great friends. I lost my original copy sadly but it was WELL WORN. Binding falling apart, scribble from notes I had to write while on a trip with my (at the time) girlfriend and that was all I had to write on during the train ride to DC (or NYC? I forget). I read and re-read that book. Nah it wasn&#8217;t all consuming but it really helped me in my journey to learn more about SQL and I always learned something new (even recently I had to re-read a section for a custom course I delivered for a SQL 2000 site that, for various reasons, can&#8217;t upgrade.. Sure enough, I picked up new information, nearly 10 years after the book was published).</p>
<p><strong>Liftoff</strong></p>
<p>That first role that sparked the interest in SQL and the second role that nurtured that growth set me on the path I am on today. I was laid off from that company with Andy, and have worked at various roles since then. Always relying on my DBA and Performance pet peeves/knowledge but getting to wear different hats (some all at the same time): Developer, &#8220;Architect&#8221;, SQL Server Consultant, SQL Server Blogger who has himself fooled he has a lot of new stuff to offer the blogosphere, unofficial project manager, Performance team lead, etc. etc.</p>
<p>So it&#8217;s been over 10 years and I am still very much not bored of SQL Server. Still thoroughly enjoy working with it in all of the above capacities and I still love learning new information and getting to work with new features.</p>
<p>Will I be doing SQL stuff in 10 years? Who knows&#8230; Maybe I&#8217;ll be supporting legacy non-cloud SQL Server installations for the same kind of money COBOL folks charge today <img src='http://www.straightpathsql.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Maybe I&#8217;ll be focused on the data within whatever the latest and greatest data storage mechanism is then. Maybe I&#8217;ll be a Pastor <img src='http://www.straightpathsql.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I am very happy that I made the discovery of SQL Server and relational databases the way I did. It has been a fun career so far and while every day in the office may not be a fun day, it has overall been a great time.</p>
<p>I am not going to tag anyone since I am a bit late to the game&#8230; How about you though? Blog a post and link back here or ping me on twitter. Share your story in the comments.</p>

<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.straightpathsql.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.straightpathsql.com/archives/2009/09/how-did-i-get-involved-with-this-sql-server-thing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Benchmarking&#8230; Who Needs It?</title>
		<link>http://www.straightpathsql.com/archives/2009/08/benchmarking-who-needs-it/</link>
		<comments>http://www.straightpathsql.com/archives/2009/08/benchmarking-who-needs-it/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 02:52:47 +0000</pubDate>
		<dc:creator>Mike Walsh</dc:creator>
				<category><![CDATA[DBA]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Pet Peeve]]></category>
		<category><![CDATA[Syndicate]]></category>
		<category><![CDATA[Benchmarking]]></category>
		<category><![CDATA[PAL]]></category>
		<category><![CDATA[Performance Analysis Of Logs]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://straightpathsql.mikewalshonline.com/?p=51</guid>
		<description><![CDATA[

All of our SQL Server instances need benchmarks!
So the title is somewhat of a trick question&#8230; I hear and sense a lack of priority around taking periodic benchmarks in a system with a lot of folks. How often do you take benchmarks? Do you know what &#8220;normal&#8221; means for your system? Do you know when [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.straightpathsql.com%252Farchives%252F2009%252F08%252Fbenchmarking-who-needs-it%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Benchmarking...%20Who%20Needs%20It%3F%20%23%22%20%7D);"></div>
<h2>All of our SQL Server instances need benchmarks!</h2>
<p>So the title is somewhat of a trick question&#8230; I hear and sense a lack of priority around taking periodic benchmarks in a system with a lot of folks. How often do you take benchmarks? Do you know what &#8220;normal&#8221; means for your system? Do you know when you may have a new problem before the users complain?</p>
<p>I have started working with a new (to me) tool in the past couple months that has made life a lot easier with benchmarking and it answers some excuses you might be thinking of why you don&#8217;t take benchmarks:</p>
<ul>
<li>My company won&#8217;t invest in a tool that costs money</li>
<li>It takes too much time</li>
<li>I don&#8217;t really know what to look for</li>
<li>I don&#8217;t know what all the counters mean or what the values should be</li>
<li>I don&#8217;t have the time to make graphs, compare data and make sense of it all.</li>
</ul>
<p>In walks a PAL &#8211;&gt; Performance Analysis of Logs (Literally, PAL). This is a free tool you can <a href="http://www.codeplex.com/PAL">download</a> from codeplex.</p>
<p>To run this tool you just need to simply grab the required counters (and most of the time it is at the object level so you can easily create a perfmon log file), run the log file and then run the log through the PAL tool which uses Log Parser (another codeplex download linked from the page above). You tell the PAL tool what threshold file you want to utilize (you can select from several predefined files including one for SQL Server 2000 and one for SQL Server 2005 which works for 2008). These threshold files describe the counters and help determine if there is a potential problem and apply colors (green/yellow/red) to indicate a potential issue. Each section also has great graphs to give a quick view of a particular counter.</p>
<p>This tool has a huge benefit to benchmarking. You just run your counter log (perfmon counter logs are normally pretty low impact to your system with their WMI calls) and parse it through PAL. Poof you have an HTML page with pretty graphs. Do this on a periodic basis and you have the start of a benchmarking tool. Troubleshooting some performance problems? Run this during a day of load and you can help zero in on some potential issues or directions to head down.</p>
<p>How difficult is it to use? Not very, let&#8217; take a look&#8230;</p>
<p><strong>First</strong> Setup a perfmon log: (Start/Run/Perfmon &lt;enter&gt;) Expand &#8220;Performance Logs and Alerts&#8221; right click and select &#8220;New Log Settings&#8221; Give it a name, maybe SQL Benchmark Trace?</p>
<p><img class="aligncenter size-full wp-image-196" title="PerfmonLog" src="http://www.straightpathsql.com/wp-content/uploads/2009/08/ScreenShot001.bmp" alt="Capture a Perfmon Trace File" /></p>
<p><strong>Next </strong>add Counters &amp; Objects (to find out which ones you will want, install the PAL tool and look at the template file for SQL Server, you will see what counters to capture and what objects they come from). I will capture the following but you can look at tweaking down a bit and not all are required depending on what you are looking for. I get these from the SQL Server 2005 threshold file editing in the PAL tool and a simplification of creating the log:</p>
<p>Here are the objects to capture, tweak down as you see fit to make the file smaller and help lessen any potential monitoring overhead.</p>
<p>Physical Disk</p>
<p>Logical Disk</p>
<p>Process (I will sometimes tweak this down to just the SQL Server process)</p>
<p>Memory</p>
<p>Network Interface (sometimes I will tweak down to just the counters needed and just the NICs involved)</p>
<p>Paging File</p>
<p>Processor</p>
<p>System</p>
<p>SQL Server: Access Methods</p>
<p>SQL Server: SQL Statistics</p>
<p>SQL Server: Buffer Manager</p>
<p>SQL Server: General Statistics</p>
<p>SQL Server: Latches (Often I just look at the two required counters rather than the object)</p>
<p>SQL Server: Locks</p>
<p>SQL Server: Memory Manager</p>
<p><strong>Next </strong>Setup a schedule/file location and thresholds for max file/rollover options/etc. Typically I put the files to the C:\ drive or if I have a &#8220;utility&#8221; drive that is not used for anything critical to operations (no paging file, no SQL Server database files, etc). I also will set a max file size to be sure that no issues arise from a drive running out of space. These options are mostly self explanatory on the Log Files and Schedule tabs. I always log to a binary file (and for PAL you need to do that, I believe) the SQL option is out because I don&#8217;t want to incur cost on the SQL instance.</p>
<p><strong>Next </strong>wait for the log file to run for your specified threshold, bring the file to the machine (I normally just use my laptop or PC) that you are running PAL on. Launch the PAL tool:</p>
<div id="attachment_195" class="wp-caption aligncenter" style="width: 597px"><img class="size-full wp-image-195" title="PAL-Welcome-Screen" src="http://www.straightpathsql.com/wp-content/uploads/2009/08/ScreenShot001.png" alt="Performance Analysis For Logs First Screen" width="587" height="495" /><p class="wp-caption-text">Performance Analysis For Logs First Screen</p></div>
<p><strong>Click Next </strong>and browse to your log file. Restrict to a time period if you want to look at a subset of the data in the file.</p>
<p><img class="aligncenter size-full wp-image-197" title="ScreenShot002" src="http://www.straightpathsql.com/wp-content/uploads/2009/08/ScreenShot002.png" alt="ScreenShot002" width="590" height="496" /></p>
<p><strong>Click Next</strong> and select your threshold file (I selected SQL Server 2005 in the screenshot below but the file output shown is an anonymous file taken from SQL Server 2000)</p>
<p>On this page you will also be asked a few questions to answer at the bottom. Number of processors (cores), ThreeGBSwitch (enabled or not), 64 bit or 32 bit?, Total Memory on server, KernelDumpOnCdrive flag (there is an alert to indicate a potential flaw of not enough free space for a dump):</p>
<div id="attachment_198" class="wp-caption aligncenter" style="width: 598px"><img class="size-full wp-image-198" title="PAL-Template-Settings" src="http://www.straightpathsql.com/wp-content/uploads/2009/08/ScreenShot003.png" alt="What Type of Analysis?" width="588" height="492" /><p class="wp-caption-text">What Type of Analysis?</p></div>
<p><strong>In the the Analysis Interval tab</strong>, I typically accept the default (Automatic). Basically the PAL tool will break your file up into slices of time (it takes 30 slices for the period shown). You can change this if you want to have a bit more control over the way the averages and maximums (spikes) and minimums are reported. I typically leave this alone and won&#8217;t waste your bandwidth with a screenshot.</p>
<p><strong>The output options tab </strong>just asks where you want the file to be saved and if you want the output to an HTML output (default), an XML output or both. I typically work with the HTML but I bet someone could create an import process for the XML to setup some code to analyze baseline data overtime and flag an alert if something gets worse. Again, I&#8217;ll spare you a screenshot.</p>
<p><strong>Queue &#8211; </strong>This tab gives you the ability to store the output from the options selected. It shows you the switches and options for the .VBS command to be executed.</p>
<p><strong>The Execute tab </strong>allows you to either immediately execute the options you just selected (what I have chosen every time I use this tool so far) or to simply add the script you just created to a queue so you can add another analysis to the same queue and process multiple at once. Also an option to execute as a low priority. The execution can take quite some time depending on the size of your log file and amount of time in the file.</p>
<p>Once you click execute a command window opens showing you the progress. Ultimately an HTML output file is displayed. This shows graphs of each of the counters looked at for the time period:</p>
<p>Below is a graph from the sample log file provided with the PAL installation:</p>
<div id="attachment_199" class="wp-caption aligncenter" style="width: 661px"><img class="size-full wp-image-199" title="Performance-Analysis-Logs-Graph" src="http://www.straightpathsql.com/wp-content/uploads/2009/08/ScreenShot004.png" alt="What We Were Waiting For - Pretty Graphs" width="651" height="477" /><p class="wp-caption-text">What We Were Waiting For - Pretty Graphs</p></div>
<p>Similar looking graphs are shown for each counter specified. You can look at just the graphs as you scroll through to find correlations with each other (for instance did your batch requests/sec jump up just as your disk latency shot up? Did some other process cause memory pressure while your free pages dumped, etc.)</p>
<p>Alerts are also shown when instances of counters go outside of the threshold formula (some thresholds are simple: disk latency for instance. If the avg. latency is over the Microsoft recommended value a yellow will be shown with an alert fired, if it goes above the next number 25ms, red is shown.. If there are high spikes they will also trigger an alert). You can look at these alerts and see if there is a trend (did you have a spike in disk latency during a backup operation or bulk load but the rest of the time yo uare fine? or did you see a mostly acceptable average with a consistent spike in read latency, maybe you need to dig deeper&#8230; Did you see free pages going down consistently and full scans up consistently in correlation with these disk latencies? Now you can start looking at potential code/database issues&#8230; Maybe you will want to run some traces and analyze them with a tool like ClearTrace, SQL Nexus, SQL Diag, etc&#8230; Maybe you want to look at some of the query execution DMVs).</p>
<p>Here are some spikes shown from the sample log file:</p>
<div id="attachment_200" class="wp-caption aligncenter" style="width: 1078px"><img class="size-full wp-image-200" title="Performance-Analysis-Spikes" src="http://www.straightpathsql.com/wp-content/uploads/2009/08/ScreenShot005.png" alt="Manager Friendly View - I/O Spikes" width="1068" height="303" /><p class="wp-caption-text">Manager Friendly View - I/O Spikes</p></div>
<p>The other benefits of this tool? It has descriptive information discussing the counter you are looking at that can help you better understand the counter and acceptable limits:</p>
<div id="attachment_201" class="wp-caption aligncenter" style="width: 1036px"><img class="size-full wp-image-201" title="Perfmon-Counter-Description" src="http://www.straightpathsql.com/wp-content/uploads/2009/08/ScreenShot006.png" alt="Perfmon Counter Descriptions" width="1026" height="145" /><p class="wp-caption-text">Perfmon Counter Descriptions</p></div>
<p>The information is all arranged on a simple HTML report with hyperlinks to sections as well as a summary list of counters by time period so you can either look at likely suspects you are looking into or dig into a time period that you care about.</p>
<p>Adding simple tools like this to your repertoire can make your life easier, help you present information to management easier and help you stay on track of your environment. Don&#8217;t end up with the users being the main source of information on how your system is performing.</p>
<p>And for just a little bit more money than free you can get some great tools from a number of vendors that provide even more information and most provide pretty graphs and reports that help you keep your environment in check. So you can spend a little time and use a tool like PAL with the DMVs and a little ingenuity or a little time and a little money and buy some tools.</p>
<p>I don&#8217;t care how you do it, just do it <img src='http://www.straightpathsql.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  It&#8217;s 2009 and we should be more responsive to our databases by now. Except for the edge cases we really have no excuse now for being surprised by the majority of performance issues that surprise us today.</p>
<p><em>Like content like this? Subscribe to the <a href="http://feeds.feedburner.com/StraightpathSolutionsSqlBlog" target="_blank">StraightPath SQL Server blog feed</a> in your favorite feed reader.</em></p>

<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.straightpathsql.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.straightpathsql.com/archives/2009/08/benchmarking-who-needs-it/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Worked fine in development&#8230;</title>
		<link>http://www.straightpathsql.com/archives/2009/07/worked-fine-in-development/</link>
		<comments>http://www.straightpathsql.com/archives/2009/07/worked-fine-in-development/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 01:49:31 +0000</pubDate>
		<dc:creator>Mike Walsh</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Pet Peeve]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Syndicate]]></category>
		<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://straightpathsql.mikewalshonline.com/?p=46</guid>
		<description><![CDATA[

How many times have you heard or uttered those words? You work hard and understand the business requirements, you try and get the logic to work to make the procedure return what was expected or update the data as expected. You do some unit tests in your environment, it may not scream but it comes [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.straightpathsql.com%252Farchives%252F2009%252F07%252Fworked-fine-in-development%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Worked%20fine%20in%20development...%20%23%22%20%7D);"></div>
<p>How many times have you heard or uttered those words? You work hard and understand the business requirements, you try and get the logic to work to make the procedure return what was expected or update the data as expected. You do some unit tests in your environment, it may not scream but it comes back in what seams like a reasonable time, the results appear right and you say, &#8220;Ship It!&#8221; It passes QA (if you are someplace that has a proper QA process) and it gets to production. Then the DBA walks by (or a user calls you) and something is wrong&#8230; It isn&#8217;t returning, or it is taking far too long or timing out even.</p>
<p>Why? It &#8220;Worked fine in development&#8221;!!!</p>
<p>If you have experienced that with SQL Server development (and who hasn&#8217;t at least once) then I am hopefully writing to you here. I will warn you ahead of time, though: some of the things in this post may seem obvious. I think we need to take a quick back to basics approach here though based on most of the cases I see&#8230;</p>
<p style="font-size: 110%;"><strong>The Basics</strong></p>
<ul>
<li><span><strong>How much data is in dev?-&nbsp; </strong>Seems kind of basic but it is often overlooked. Especially without a production mirroring Test/UAT/Performance environment (Which more environments than you think suffer from). If your development database has a fraction of the data in production you may be in for some surprises.</span></li>
</ul>
<ul>
<li><span><strong>Parallelism &#8211; </strong>Most machines now have more than one (physical or logical) CPU but what if your development environment doesn&#8217;t and prod does? (or vice versa which would be kind of odd). What if you don&#8217;t mirror your Degree of Parallelism settings? You could go to production and a query that seemed to perform well is now not. One recent example I saw had a query plan that was influenced by parallelism choosing an index scan when it should have been doing a seek. It was reading far too much data but all things were the same between dev and prod except for the number of procs (1 to 8). The fix wasn&#8217;t to disable parallelism, the fix was an important missing index. In development the plan was still inefficient but it didn&#8217;t &#8220;feel&#8221; inefficient to the developer.</span></li>
<p></p>
<li><span><strong>You do look at your query plans, right? </strong>- As I blogged about <a href="http://www.straightpathsql.com/blog/2009/2/20/just-add-a-join-hint.html">here</a>, reading a query plan isn&#8217;t rocket science. Once you start looking at them they become clearer over time. The real danger, however, is not looking at them. Even if your query comes back in half a second in dev, look at the plan and make sure you aren&#8217;t doing anything silly.</span></li>
</ul>
<ul>
<li><span><strong>While you are at it what about IO Statistics or Profiler? &#8211; </strong>Whenever I am tuning a query, I generally have SET STATISTICS IO ON at the top of that query. I want to see what the reads look like. You will find debates about tuning to reads but from my point of view it is important to keep your reads lower. Not to the point where doing so increases duration because of some crazy logic. Generally it is my finding that the less reads a query does, the less duration it takes. Not always true but look at your reads in dev. If it is high there and in production there are a lot of similar queries and more than the one user in dev you may be asking the production server to flush pages from memory at a faster rate than you would otherwise like. This means more physical I/Os, which are not as happy as logical I/Os. Profiler is a great tool (as Gail blogged about <a href="http://sqlinthewild.co.za/index.php/2009/04/29/functions-io-statistics-and-the-execution-plan/">here</a>) to show you the impact of a UDF. Your query plan and I/O Statistics are not going to show you the impact of that UDF you have in your select list because you are a procedural programmer turned SQL Developer. In fact don&#8217;t just look at the duration/reads in profiler but look through Gail&#8217;s post and look at the statement completed events to see just how many times that UDF code that was so efficient alone is being called.</span></li>
</ul>
<ul>
<li><strong>You do keep your statistics updated, right? &#8211; </strong>Sounds like a &#8220;No Duh&#8221; but it isn&#8217;t in a lot of places. How often do you update your statistics in the database? When you refresh dev, do you update statistics? Do you have a job to do so in Prod as well? If your statistics are out of date, your query plans may not make a lot of sense and they could be sub-optimal. The optimizer is a powerful tool but it can only be as good as the information it has when figuring out an approach.</li>
</ul>
<ul>
<li><span><strong>&nbsp;How often do you compare schemas?</strong> &#8211; Your dev environment does look like production, right? What about your indexes? Do you ever run a tool like Visual Studio Team System for Database Professionals or SQL Compare from Redgate (not a paid endorser but this is the tool I personally use for schema comparisons, even with VSTS DB in house which I like for other reasons), etc? You may be surprised but I have seen a lot of cases where a developer has created an index in dev or even in QA/UAT/Performance (Why, oh why, did you give the developers permissions to those environments&#8230;) and got quite busy and forgot that they meant to check that the index was scripted and included in a deployment plan.</span> </li>
</ul>
<p>There are other causes and there are even some strange occurrences that take a bit of time digging into. Generally, though, these are the reasons I tend to uncover in this scenario. Another cause is not meant as a slight against any one role in a project, it is something we all mutually contribute to:</p>
<p><strong>The development is NOT done when the expected results are returned or the expected actions occur!</strong></p>
<p>I have seen overworked developers and DBAs, under funded project managers (resource and time wise), over zealous management (as far as this date will be met, no matter how realistic it is) and a variety of other causes to that rant above. The simple truth is, development is done when it performs the expected action, the unit tests in dev have verified it <strong>and </strong>the unit tests also looked at performance and the piece of code is performing as best as it possibly can given the circumstances. Low hanging fruit type problems abound in most environments I have encountered. I know the projects never have enough time but sometimes 20 minutes extra on a procedure could have meant that one wouldn&#8217;t have showed up on a &#8220;worst offenders&#8221; list.</p>
<p>I don&#8217;t want to put all of the onus on development either. DBAs should setup standards and best practices and have code reviews. They should mentor their teams in performance areas. Senior developers should do the same.</p>
<p>Management needs to put an emphasis on proper testing, including performance testing (either in dedicated environments that mirror production hardware and data as best as possible or in a test environment that is as close as possible). There will always be performance problems that slip past development just like non-performance bugs. Without searching for them before production, it&#8217;s your users that will be your bug reporters. That could mean the difference between retaining a client or system adoption.</p>

<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.straightpathsql.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.straightpathsql.com/archives/2009/07/worked-fine-in-development/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A Picture That Says, &#8220;Don&#8217;t Shrink!&#8221; (and other things&#8230;)</title>
		<link>http://www.straightpathsql.com/archives/2009/06/a-picture-that-says-dont-shrink-and-other-things/</link>
		<comments>http://www.straightpathsql.com/archives/2009/06/a-picture-that-says-dont-shrink-and-other-things/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 00:28:07 +0000</pubDate>
		<dc:creator>Mike Walsh</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Learn From Mistakes]]></category>
		<category><![CDATA[Pet Peeve]]></category>
		<category><![CDATA[Syndicate]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Fragmentation]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Shrinking & Transactions]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://straightpathsql.mikewalshonline.com/?p=44</guid>
		<description><![CDATA[

So I wrote a lot of posts around shrinking (Here, here, here). Some of my posts were turned into a wiki article on SQLServerPedia. I thought I was done posting about this but one more.
I talked about why we shouldn&#8217;t do it on a regular basis. Why it should really be reserved for use in [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.straightpathsql.com%252Farchives%252F2009%252F06%252Fa-picture-that-says-dont-shrink-and-other-things%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22A%20Picture%20That%20Says%2C%20%5C%22Don%27t%20Shrink%21%5C%22%20%28and%20other%20things...%29%20%23%22%20%7D);"></div>
<p>So I wrote a lot of posts around shrinking (<a href="http://www.straightpathsql.com/blog/2009/1/6/dont-touch-that-shrink-button.html">Here</a>, <a href="http://www.straightpathsql.com/blog/2009/1/31/shrinking-is-a-popular-topic.html">here</a>, <a href="http://www.straightpathsql.com/blog/2009/4/15/manage-your-transactions-so-they-dont-manage-you-part-2.html">here</a>). Some of my posts were turned into a wiki <a href="http://sqlserverpedia.com/wiki/Shrinking_Databases">article </a>on <a href="http://www.sqlserverpedia.org/">SQLServerPedia</a>. I thought I was done posting about this but one more.</p>
<p>I talked about why we shouldn&#8217;t do it on a regular basis. Why it should really be reserved for use in dev or extenuating circumstances due to a lack of proper planning. I also talked about why it is bad to let your databases grow in small chunks.</p>
<p>I can&#8217;t stress it enough&#8230; Right sizing your database is critical. This requires <strong>PLANNING</strong>. If you don&#8217;t plan for performance you will be killed by performance in no time. If your company or your project manager says something like, &#8220;We don&#8217;t have time to plan for that&#8221; then you will pay for it later at least 75% of the time and you will pay more than you would have up front.</p>
<p>The below picture is from a system somewhere that I got involved in after it had been &#8220;alive&#8221; (persistent vegetative state&#8230;) for a couple years. It was set to do a DB shrink each night after a transaction log truncate (Again &#8211;&gt; Don&#8217;t do this! If you want to recover to a point in time, use FULL Recovery mode and TAKE LOG BACKUPS at a frequency that manages your recovery needs (first) and your transaction log growth (second). This was done on each database on the instance.</p>
<div id="attachment_203" class="wp-caption aligncenter" style="width: 1071px"><img src="http://www.straightpathsql.com/wp-content/uploads/2009/06/fragmentation.JPG" alt="Lots of Red and Lots of Fragments" title="disk-fragmentation" width="1061" height="140" class="size-full wp-image-203" /><p class="wp-caption-text">Lots of Red and Lots of Fragments</p></div>
<p>This is with the windows defragment tool. A quick reminder: Blue (there are about 5 or 6 skinny blue lines in the above picture) indicates contiguous space, no physical file fragmentation. Red indicates fragments. No, I didn&#8217;t play with the colors. Most other drives remind me of Christmas also.</p>
<p><strong>What does this mean?</strong> This<strong> </strong>means that I/O operations against this drive have an unfair advantage working against them. Reads will not be as well performing as they should. (For instance copying an LDF file off of this &#8211; <strong>data file drive &#8211; </strong>to move the .ldf to a <strong>log file drive</strong> took 4 minutes. No other activity, file was 1GB..)</p>
<p><strong>How did it get this way?</strong> Every night the files on this data file drive were shrunk as part of a shrinkdb operation. Every night after this shrink an ETL process loads it. Files then grow in chunks during the ETL (and some of them grow during the day with use, like the report server temp database). These growths and shrinks lead to file fragmentation.</p>
<p><strong>How long did it take?</strong> Much like my current status on the scale (14.6 stone when I should be 12.5.. I&#8217;ll let you bing, google or ask wolfram alpha if you care) this didn&#8217;t happen overnight. It took a period of neglect. Neglect including:</p>
<ul>
<li>The Shrinks/growths</li>
<li>Never planning for the expected space and proper sizing in the first place</li>
<li>Allocating the bare minimum to the drive (88% full right now) and adding more space from the SAN as &#8220;needed&#8221;.</li>
<li>Never running a defragment process during maintenance.</li>
</ul>
<p><strong>What do we do? </strong>Well for the short term we are going to grow the databases to an appropriate amount (hopefully getting more space allocated before all of this obviously), back them up, turn off the SQL Server services, remove any files that shouldn&#8217;t be on this drive and defragment the volume.</p>
<p><strong>What do we do in the future? </strong>The shrinking operations were killed awhile ago (except for one that was hidden in an ETL process, since removed), I will make sure that a process is put in place to check for fragmentation more frequently. I will keep fighting the fight to properly size a database from the beginning.</p>
<p><strong style="font-size: 120%;">Not My Job</strong></p>
<p><span>Nearly no other phrase can irk me quite like that. You don&#8217;t even have to say it, you can just experience it. Now I am guilty here also. Where this case happened, the databases are managed from SQL out by the DBA, the servers/storage/etc are managed by the storage and server team. Put trust in that team and never really looked at fragmentation. <strong>OOPS</strong>. Now it isn&#8217;t my job and normally I go out of my way to worry about things that could affect databases I care about, for some reason I never checked fragmentation here.</span></p>
<p><span>When talking to the sysadmin about I/O issues, I started talking about a desire to split some of the report server databases onto their own drives (large reports running, seeing a lot of blocking with the built in report server procs that write/read to the databases) and the reaction was very quickly &#8220;No, you have high fragmentation.. let me show you&#8221; and then we opened disk management in window and looked at the fragmentation. My reaction was guilt and shame for not checking. Then my second reaction was (internally) &#8220;How did you know this and not say anything?!&#8221; The conversation basically revealed that this was a known issue for some time. Now before the DBA role was filled there was no one else looking at database performance on the applications team. How did this sysadmin expect project managers and developers without much systems/DBA knowledge play Carnac and figure out the fragmentation?</span></p>
<p><span><strong>The attitude that killed here? </strong>&#8220;I just create the disks and give them to the people who request it, I give them the space they asked for and that&#8217;s it.&#8221; </span></p>
<p><span>You can&#8217;t do that. If you want to be a good DBA you need to look above and below your part of the food chain and if you see an area that needs improvement, SPEAK UP. Same goes for sysadmins and storage teams. You are one company with the same customers and the same goal of happy customers.</span></p>
<p><strong>Reminder &#8211;&gt; </strong>Are you looking at your physical file fragmentation levels? I am sure you are a great DBA and update your stats, rebuild indexes when appropriate. Do you look at your I/O subsystem? Do you check your fragmentation? Do you get blinded by the simple in search for a complex situation? I do at times. Check your fragmentation levels and run some benchmarks. Fix this headache before it becomes a resume altering situation.</p>

<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.straightpathsql.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.straightpathsql.com/archives/2009/06/a-picture-that-says-dont-shrink-and-other-things/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Documentation</title>
		<link>http://www.straightpathsql.com/archives/2009/06/documentation/</link>
		<comments>http://www.straightpathsql.com/archives/2009/06/documentation/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 12:46:22 +0000</pubDate>
		<dc:creator>Mike Walsh</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[DBA]]></category>
		<category><![CDATA[Life Lessons]]></category>
		<category><![CDATA[Pet Peeve]]></category>
		<category><![CDATA[Syndicate]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Pet Peeves]]></category>
		<category><![CDATA[Professional Development]]></category>

		<guid isPermaLink="false">http://straightpathsql.mikewalshonline.com/?p=43</guid>
		<description><![CDATA[

Documentation
(&#8230;Or how I learned to stop procrastinating and love tolerate a chore necessary task)
Do you document? Do you document well?
As I told Paul Randal (twitter, blog) today on twitter, this blog post was inspired by an observation in the shower and a recent question by Brent Ozar (twitter, blog). You didn&#8217;t need to know that [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.straightpathsql.com%252Farchives%252F2009%252F06%252Fdocumentation%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Documentation%20%23%22%20%7D);"></div>
<p><strong style="font-size: 130%;">Documentation</strong></p>
<p>(&#8230;Or how I learned to stop procrastinating and <span style="text-decoration: line-through;">love</span> tolerate a <span style="text-decoration: line-through;">chore</span> necessary task)</p>
<p><strong>Do you document? Do you document well?</strong></p>
<p>As I told Paul Randal (<a href="http://twitter.com/PaulRandal">twitter</a>, <a href="http://www.sqlskills.com/BLOGS/PAUL/">blog</a>) today on twitter, this blog post was inspired by an observation in the shower and a recent <a href="http://www.brentozar.com/archive/2009/06/questions-about-automation-patch-management/">question </a>by Brent Ozar (<a href="http://twitter.com/brento">twitter</a>, <a href="http://www.brentozar.com/">blog</a>). You didn&#8217;t need to know that but now you do. I happened to read the back of the body wash and noticed the directions had some minor flaws. It made me think of some of the documentation I have produced or tried to rely on and some common mistakes. Let&#8217;s dissect the directions on the soap:</p>
<p><strong>&#8220;Directions for Daily use in shower or bath: Squeeze desired amount of product onto wet cloth or cleansing pouf. Work into a lather. Rinse Off&#8221;</strong></p>
<p><strong>The Good #1 &#8211; The directions exist<br /></strong></p>
<p>A colleague often answers my comments on performance with, &#8220;The perfect is the enemy of the good&#8221; now we won&#8217;t get into perceptions of what &#8220;perfect&#8221; means and what &#8220;good&#8221; means <img src='http://www.straightpathsql.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  but in some regard he is right. If you have documentation and it is useful and not dangerously misinforming people it is a start (a draft) and it&#8217;s okay to write and publish a draft. If your documentation will allow you to go on vacation, not have dreams about work and let your backup handle the majority of the tasks well then it&#8217;s a great start. Get your favorite document editing tool and at least start something. <strong>Not starting documentation because you are afraid of missing something, can&#8217;t figure out where to start, etc. is a disservice to you and your organization.</strong></p>
<p><strong>The Bad # 1 &#8211; There are assumptions</strong></p>
<p>Assumptions are in two flavors here. An assumption that one already follows a process (&#8220;For daily use..&#8221; If I didn&#8217;t shower daily, I&#8217;d have a lot more time for blog posts at night because the couch is uncomfortable for sleeping but what if I didn&#8217;t?).</p>
<p>Alright so let&#8217;s be serious with the other assumption. They assume the person reading the instructions knows what a &#8220;<a href="http://www.amazon.com/Cain-and-Able-Collection-1005/dp/B000FUMCPQ/ref=sr_1_2?ie=UTF8&amp;s=home-garden&amp;qid=1245289364&amp;sr=8-2">pouf</a>&#8221; is (i&#8217;ll admit it.. I know what one is&#8230; Alright, <strong>fine </strong>I will admit it &#8211; I have and use one&#8230;) They assume your idea of the &#8220;desired&#8221; amount is sufficient.</p>
<ul>
<li>The assumptions, definitions, overview and/or introduction sections of a document should be used. Let the audience know what you expect of them, define terms that can be ambiguous at your organization and tell them the goal you had in writing the document.</li>
<li>You should write to your audience (and think about the future audience). Can someone pick up the document (especially if it is a <a href="http://en.wikipedia.org/wiki/Runbook">runbook</a>, deployment guide, etc.) and do what is required without a <a href="http://en.wikipedia.org/wiki/Vulcan_(Star_Trek)">Vulcan mind meld </a>with you? If not you are assuming too much.</li>
<li>Test (I know. I harp on testing a lot) your document. Give it to someone who may not be the other DBA on your team but could potentially be in a position to have to rely on the document. Can they follow it? Do you have an environment you can deploy to after dev/integration where a deploy guide is written/unit tested? Someplace where someone other than the author can prove out the steps?</li>
</ul>
<p><strong>The bad #2 &#8211; There are missing steps</strong></p>
<p>This can be lumped with assumptions but I felt it needed a special callout. The piece that caught my eye this morning was &#8220;Work into a lather. Rinse off.&#8221; If I were to follow the directions literally, I could see myself squeezing the product onto my pouf (Wipe that smirk off your face), and just lathering it up and then rinsing the pouf off. Over time I would have less drive by attacks at my cube but only because of the smell &#8211;&gt; I would simply not be clean.</p>
<p>They are assuming (see I told you it could be lumped with assumptions) that the reader knows how to bathe (then why even bother with the directions?). Don&#8217;t write a document with obvious information missing because it is obvious to you.&nbsp;</p>
<p>Ask yourself, &#8220;what is the goal of the document?&#8221; Hopefully its in the objective/introduction/overview section. Read your document and ask if it meets the goal. Have someone that isn&#8217;t always finishing your sentences read it and see if they agree.</p>
<p><strong>Why do I embrace documentation now?</strong></p>
<ul>
<li><strong>I am making myself more replaceable</strong> &#8211; I like uninterrupted vacations, I like letting other people do deployments. Earlier in my career I wanted to always be that go to guy (I still enjoy helping and love gaining and sharing knowledge). I used to love to be that one who saved the day at 2:00AM and led the conference call to do so. Now I like helping others do that. Will I get the &#8220;great job!&#8221; e-mail from a CIO for it? Probably not but I&#8217;ll get to spend time with the family. I can&#8217;t think of what kind of fancy thank you e-mail, &#8220;we did it&#8221; dinner or little plastic trophy beats William or Rachael&#8217;s laughter.</li>
<li><strong>I can say &#8220;If you read my maintenance recommendations&#8230;&#8221; -</strong> No, that&#8217;s not a great attitude. What I mean is I can let my document be a force multiplier when I can&#8217;t get more living, breathing DBAs. I can create templates, suggestions, checklists with steps to create and let &#8220;reluctant DBAs&#8221; in the infrastructure or deployment teams do some of the menial tasks. They can still call me if there is an issue but if I don&#8217;t assume and state the obvious it&#8217;s less likely.</li>
<li><strong>A proposal on paper beats a hallway conversation &#8211; </strong>Talking is great (I have been know to be a chatty person. I know, you are shocked) but handing a simple document with pros/cons and a suggestion can go a long way. Provide justification for the server maintenance products, provide justification for that <span style="text-decoration: line-through;">indentured servant</span> Jr. DBA, Provide a rationale for going to the PASS Summit, etc.)</li>
<li><strong>Maybe, just maybe, when that problem arises again, we can solve it quicker &#8211; </strong>Even just using a blog as a knowledge base, a well organized e-mail folder structure, etc. can help deal with that problem that &#8220;happened at year end the past 3 years&#8230; what was it again? You had to do something to the readerform switch in the whoozywhatzy table&#8230; Next year we&#8217;ll be ready for it!!&#8221;</li>
</ul>

<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.straightpathsql.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.straightpathsql.com/archives/2009/06/documentation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Paranoid? Control Freak? Have I got a career for you&#8230;</title>
		<link>http://www.straightpathsql.com/archives/2009/06/paranoid-control-freak-have-i-got-a-career-for-you/</link>
		<comments>http://www.straightpathsql.com/archives/2009/06/paranoid-control-freak-have-i-got-a-career-for-you/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 14:47:00 +0000</pubDate>
		<dc:creator>Mike Walsh</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Life Lessons]]></category>
		<category><![CDATA[Pet Peeve]]></category>
		<category><![CDATA[Syndicate]]></category>
		<category><![CDATA[DBA Qualities]]></category>
		<category><![CDATA[Professional Development]]></category>

		<guid isPermaLink="false">http://straightpathsql.mikewalshonline.com/?p=41</guid>
		<description><![CDATA[

The above personality traits sound like bad news. In most areas of life they certainly can be. That being said a DBA needs to have a certain aspect of these to best do their jobs.
As I blogged about in &#8220;Checklists, Recipes and Algorithms&#8220;, I describe other careers where a keen eye to detail and a [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.straightpathsql.com%252Farchives%252F2009%252F06%252Fparanoid-control-freak-have-i-got-a-career-for-you%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Paranoid%3F%20Control%20Freak%3F%20Have%20I%20got%20a%20career%20for%20you...%20%23%22%20%7D);"></div>
<p>The above personality traits sound like bad news. In most areas of life they certainly can be. That being said a DBA needs to have a certain aspect of these to best do their jobs.</p>
<p>As I blogged about in &#8220;<a href="http://www.straightpathsql.com/blog/2009/3/16/checklists-recipes-and-algorithms.html">Checklists, Recipes and Algorithms</a>&#8220;, I describe other careers where a keen eye to detail and a mental preparedness for worst case situations are important. I tend to find that the most successful DBAs are those who come across as paranoid. This tends to result in them wanting more control over how their environments (see&#8230; &#8220;Their Environment&#8221; I told you, it comes off as being a control freak.) This in turn results in a worry about the little things that can turn into a <strong>resume altering situation</strong>.</p>
<p>If you don&#8217;t believe me, look at this recent <a href="http://sqlskills.com/BLOGS/PAUL/post/Blog-post-350-on-this-blog-vive-la-communite!.aspx">blog post</a> by Paul Randal (@<a href="http://twitter.com/PaulRandal">PaulRandal</a>, <a href="http://sqlskills.com/blogs/paul/">blog</a>). He is the self professed &#8220;most paranoid person on the planet in terms of backups, corruption, HA, etc.&#8221; I won&#8217;t argue with him and I&#8217;ll give myself the label of second most paranoid person in those same terms.</p>
<p>If you are, or want to be a DBA the question you have to ask your self is: <strong>Are You?</strong></p>
<p>How can these traits be seen as positive?</p>
<p><strong>Paranoia &#8211; </strong>Again it&#8217;s not the best choice of words. Maybe &#8220;realist&#8221;, &#8220;careful&#8221;, &#8220;cautious&#8221;, &#8220;protective&#8221; would be better terms. Paranoia implies a lack of rationality and the fears that a DBA should have are entirely rationale:</p>
<ul>
<li><strong>Data Breaks</strong> &#8211;&gt; Be it malicious, accidental, user created, I/O subsystem &#8220;created&#8221;, corruption, etc. Data can be lost or become unavailable. Like I blogged about in <a href="http://www.straightpathsql.com/blog/2009/3/5/where-do-i-start.html">&#8220;Where Do I start?!?!&#8221;</a> the most important ability of a DBA is <strong>recoverability</strong>. </li>
<li><strong>Security Threats Exist</strong> &#8211;&gt; From within, from without they exist. Over confidence here means compromise and a long walk to the CIOs office.</li>
<li><strong>Not all code is perfect the first time</strong> &#8211;&gt; Even if your crack development team wrote it, even if your start vendor sold it. Do you just implement it without question, without preparing for problems? You are setting your organization up for problems if you do.</li>
</ul>
<p>Having the &#8220;This instance can go down&#8221; or &#8220;that code can cause a problem&#8221; mentality (guilty until proven innocent) means you will catch a problem more likely. If you presume everything is A-OK all the time then it could take a large exception to that rule of thumb to teach you a lesson (and give you a new career path).</p>
<p>This leads to a certain <strong>&#8220;control freak&#8221; </strong>philosophy. You don&#8217;t want the entire organization in the system as System Administrator fixed server role (you don&#8217;t even want the entire DBA team to have that level of rights). You don&#8217;t want code slammed into production without a proper test plan and documentation trail. You don&#8217;t want people <em>trying </em>to <em>help</em> without the right knowledge undoing your efforts.</p>
<p><strong>DBAs always say no</strong>&#8230; That&#8217;s a myth but it&#8217;s joked about in most companies (we are also called disk sponges at most places but that&#8217;s another post <img src='http://www.straightpathsql.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .) A good DBA won&#8217;t always say no but they shouldn&#8217;t be afraid to say, &#8220;Wow! let&#8217;s slow it down&#8221; or &#8220;Not like that&#8221;.</p>
<p>Are you assertive? If you aren&#8217;t you will be walked over and that can and will backfire. You need to be sure of your standards and enforce them equally. Even to the developer who is older, has been their longer and has that &#8220;rules slow us down, we have dates darn it!&#8221; attitude.</p>
<p>If you are &#8220;paranoid and controlling&#8221; you will know why you have the standards. You will know why you should say no and you will know the potential results. That should help you stand your ground and <em>work towards a great solution.</em></p>
<p><strong>That&#8217;s the key &#8211;&gt; </strong>A good DBA will say &#8220;Not yet&#8221; but won&#8217;t turn around and walk away. Be approachable, work to help people understand how to get to the standards. Teach a brown bag lunch (even if you don&#8217;t feel ready the questions you don&#8217;t have answers to at the training are all learning opportunities for you, step out and try it). Work side by side with developers. Approach project managers and tell them why involving the DBA earlier will make a difference. Eventually people should start to learn that the paranoia is for their good. They&#8217;ll see you as what a DBA should be &#8211; an advocate for the helpless, innocent (usually innocent anyway) data of the company.</p>
<p><strong>You are there to be ready to assist when things go bad after the first 40-50 hours of the week. You do this by having that paranoid, controlling attitude for the first 40-50 hours of the week, hopefully reducing the overtime break fix work.<br /></strong></p>
<p>I had submitted an abstract to the <a href="http://summit2009.sqlpass.org/">SQL PASS 2009 Community Summit</a> in the professional development track. Since I was helping rate abstracts and in that track, I down voted my own session pretty heavily and it missed the mark. It was titled <a href="http://www.straightpathsql.com/blog/2009/3/21/pass-call-for-speakers-and-my-answer-to-that-call.html">&#8220;Iceberg, Dead Ahead!&#8221;</a> and I was going to talk about various real life disasters and the attitudes and actions that either made a positive or &#8211; far too often &#8211; negative impact.</p>
<p>When you look at real world disasters in any field you can far too often see some apathy by some or many involved. People ignoring small issues that multiply and cause catastrophes. People with a very optimistic attitude assuming the best ignoring &#8220;acceptable errors&#8221; are not behind all disasters but they are behind too many. Sometimes a bit of paranoia and someone being assertive with standards <em>could</em> have made a difference.</p>
<p><strong>Step outside of SQL Server and ask where else can this attitude help? </strong></p>
<p>Ever take a course involving firearms safety? The top 3 lessons hammered into you are: The gun is <strong>always </strong>loaded, keep your finger off the trigger until ready to fire and only point the muzzle at what you are comfortable with bullet holes in. Even if you just unloaded it, just verified it three times you still follow these rules. Why? Because it&#8217;s the comfort and over confidence that leads to mistakes. If you break the rules once you will again and it could be the wrong time.</p>
<p>Do you ever double check that you locked a door? I don&#8217;t mean go back and check 75 times but if you presume you could have made a mistake or been distracted and double check you will be that much more likely to leave with a door locked behind you.</p>
<p>Do you presume a fire will never hit your house, office, hotel? If so you don&#8217;t know where the nearest exit is, you haven&#8217;t thought through what you would do and you are not prepared. Statistics show you are more likely to die in a fire than someone who prepared. Again, I am not saying walk around in a set of <a href="http://en.wikipedia.org/wiki/Bunker_gear">turnout gear</a> with breathing air on your back. I am saying look at exits, plan escapes, think about the unlikely (but possible) and think about your reaction to that.</p>
<p>Do you always ignore the safety procedures on your flights? Nose into a book and not even pay attention to what type of plane you are flying on for this trip? Where is the nearest exit to your seat? Where is a second exit? The folks who landed on the <a href="http://en.wikipedia.org/wiki/US_Airways_Flight_1549">Hudson River in January of 2009</a> would tell you that this information matters. They will even tell you that the instructions on how to use your seat as floatation device aren&#8217;t there only because of federal regulations. I bet they all listen intently on every flight now.</p>
<p><strong>So are you fine? Is your environment invincible? </strong>Or are you a &#8220;paranoid&#8221; DBA? Add a healthy &#8220;paranoia&#8221; to your toolbox!</p>

<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.straightpathsql.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.straightpathsql.com/archives/2009/06/paranoid-control-freak-have-i-got-a-career-for-you/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
