<?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>SQLRockstar &#187; Professional Development</title>
	<atom:link href="http://thomaslarock.com/category/professional-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://thomaslarock.com</link>
	<description>SQL Server DBA</description>
	<lastBuildDate>Thu, 29 Jul 2010 14:09:32 +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>Return of the 24 Hours of PASS</title>
		<link>http://thomaslarock.com/2010/07/return-of-the-24-hours-of-pass/</link>
		<comments>http://thomaslarock.com/2010/07/return-of-the-24-hours-of-pass/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 14:09:32 +0000</pubDate>
		<dc:creator>Thomas LaRock</dc:creator>
				<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[PASS]]></category>
		<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[SQLServerPedia Wiki]]></category>

		<guid isPermaLink="false">http://thomaslarock.com/?p=4530</guid>
		<description><![CDATA[In case you missed it I wanted to let everyone know that we are planning on doing our third 24 Hours of PASS. I sent out a call for abstracts recently to the people that have been selected to present at the PASS Summit in November (about 70 people in total). I got back about [...]]]></description>
			<content:encoded><![CDATA[<p>In case you missed it I wanted to let everyone know that we are planning on doing our third 24 Hours of PASS. I sent out a call for abstracts recently to the people that have been selected to present at the PASS Summit in November (about 70 people in total). I got back about 40 responses to my initial email and 35 expressed interest in participating. I know, I know, 35 <em>is</em> a lot more than 24. After I figure out the schedule and assign slots then we&#8217;ll have more than enough people available to serve as a backup in case someone needs to back out at the last possible minute (hey, it happens!)</p>
<p>I targeted the PASS speaker list because we are looking to promote the PASS Summit and thought it was best to ask people if they were interested in promoting their sessions. This can be a great way to drive attendance for those speakers that are doing a pre/post con session. For others it can be a way for then to practice their session one more time before the Summit, or just some general shameless self-promotion.</p>
<p>The biggest change to our format this time is that we are going to spread the event over two days (September 15th and 16th). We are keeping the same start time(s) as the last event, promptly at 12 noon GMT for both days. We&#8217;ll run twelve straight sessions, then take a twelve hour respite, and then crank it back up again the next day. Hopefully that will allow for more people to attend all the sessions they want to see.</p>
<p>Yeah, I know&#8230;people on the other side of the Earth have a less than optimal viewing time. When we looked at the numbers for the last event we found that an overwhelming majority of the attendees are from the USA and Europe. So we decided to switch up the format a bit in order to make it easier for those attendees to attend more sessions this time around. If you were one of the few from the Asia/Pacific region and are miffed that you will be forced to spend your overnight hours watching the sessions live, feel free to send me an email and we can discuss everything in more detail.</p>
<p>You should be able to begin registering for the event on or around August 11th. Don&#8217;t hesitate to ask any questions about the event, I will do my best to answer them.</p>
]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2010/07/return-of-the-24-hours-of-pass/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL University &#8211; 	Capacity Planning Week</title>
		<link>http://thomaslarock.com/2010/07/sql-university-capacity-planning-week/</link>
		<comments>http://thomaslarock.com/2010/07/sql-university-capacity-planning-week/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 13:32:03 +0000</pubDate>
		<dc:creator>Thomas LaRock</dc:creator>
				<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[SQL University]]></category>
		<category><![CDATA[SQLServerPedia Wiki]]></category>

		<guid isPermaLink="false">http://thomaslarock.com/?p=4559</guid>
		<description><![CDATA[Welcome back to SQL University. This week the topic is capacity planning. As your DBA Coach it is my role to help you understand the different levels for the subject at hand. Capacity planning is a subject that applies to just about everything in life; how much money is left in your bank account, how [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome back to SQL University. This week the topic is capacity planning. As your DBA Coach it is my role to help you understand the different levels for the subject at hand. Capacity planning is a subject that applies to just about everything in life; how much money is left in your bank account, how much wood can you store for winter, or how much bacon can you eat for breakfast.</p>
<p>The term &#8220;capacity planning&#8221; is really just another way of saying &#8220;managing resources&#8221;. To me it typically meant that I needed to make certain there was enough disk space for the databases. This is a result of my being asked to provide a DASD report for my databases; such a report is only concerned with disk space requirements and not about CPU or memory. But as we enter into a brave new virtual world you should be able to see that you need to make certain you can effectively manage (and plan) for a variety of resource needs.</p>
<p>Enough of the intro, let&#8217;s roll.</p>
<h3>tempdb</h3>
<p>At this level you need to be aware of the fact that there is not an infinite amount of resources for your server. Oh, sure, you could always go buy more disk, more memory, or more CPUs, right? No, not always, because each of those items have limitations based upon your server type. At some point each one of those could be at a maximum. The only thing you need to do at this level is to be aware that such limitation exist.</p>
<p><a href="http://thomaslarock.com/wp-content/uploads/2010/07/ocd.jpg"><img class="alignleft size-full wp-image-4590" style="margin-right: 5px;" title="ocd" src="http://thomaslarock.com/wp-content/uploads/2010/07/ocd.jpg" alt="" width="222" height="167" /></a>That means if you decide to open SSMS and alter a table or index and two hours later you get an error message saying there isn&#8217;t enough room on the disk your first reaction shouldn&#8217;t be to blame someone else for there not being enough space for you to play mad scientist with that database. And as a DBA you need to be aware that people only shove data into their databases, they hardly ever delete anything. I swear they should make a television show about &#8220;data hoarders&#8221;, similar to those shows about people who collect everything and then end up crushed to death by a pile of magazines. Anyway, people collect data and hardly ever purge or archive, which means that as a DBA you need to do your best to make certain they have enough disk.</p>
<h3>msdb</h3>
<p>At this level you need to actively be taking measurements of your environment that answer some basic questions:</p>
<ul>
<li>How many servers do I administer?</li>
<li>How many databases on those instances (count system databases, &#8217;cause if they fail you will need to fix them as well, right?)</li>
<li>How much disk space is needed for your data, logs, and backups?</li>
<li>How much free space is there inside of your data files?</li>
</ul>
<p>And you need to take these measurements on a regular basis, most likely monthly but you are free to do it as often as you like just as long as you are doing them. And you can add in measurements for memory and CPU utilization if you&#8217;d like right now, but I don&#8217;t want to overwhelm you with too much too soon. Besides, we talk about those later. Now, why are you doing all this?</p>
<p>Because without doing this you will not have any idea if any of your servers are about to run out of disk space. Well, OK, we already covered the fact that people don&#8217;t purge their data, so we <em>do</em> know that your servers are slowly filling with data. That&#8217;s fine, then these measurements will help you to understand just how fast they are filling up with data. And that, in turn, allows for you to put on your proactive hat and take corrective actions before any problems arise.</p>
<h3>model</h3>
<p><a href="http://thomaslarock.com/wp-content/uploads/2010/07/dishwasher.jpg"><img class="alignleft size-full wp-image-4587" style="margin-right: 5px;" title="dishwasher" src="http://thomaslarock.com/wp-content/uploads/2010/07/dishwasher.jpg" alt="" width="200" height="200" /></a>Capacity planning is a lot like loading your dishwasher. When it is empty and you only have a few dishes to put into it you arrange them in such a way that you think it will work best for the next dishes that get placed after the next meal. Except that someone decides to use some odd-shaped dish or pan and this means that you either need to rearrange the dishes right now or you just shove it in there for the time being and worry about rearranging it later. And then later comes and your spouse complains that you don&#8217;t know how to load the dishes but they have no idea the dishwasher has been a work in progress for the past three days and that you meant to rearrange things but never had time.</p>
<p>And that is <em>exactly</em> how everything in your enterprise works. People shove things into places, sometimes in the right places, but almost never in the correct <em>order</em> because no one ever knows the final view of the puzzle because the picture keeps changing. So you always try to get 90% of the way there and hope that is good enough.</p>
<p>If you want to be at the model level then you might as well focus on your dishwasher at home. If you can go for three months without having your spouse criticize you then you should be in good shape at work. For capacity planning that means you take your awareness, your measurements, and your experience and you use them to help you get the puzzle about 90% finished, and that you know that it can never be completely finished because things always change. Always.</p>
<h3>master</h3>
<p>At the master level you need to be thinking in more dimensions than just disk. You need to be thinking of things such as memory, CPU utilization, and even staffing requirements (it takes people to do the work still, right?) And once you start thinking in these extra dimensions you will be able to to venture into the world of virtualization, where all of these measurements are necessary in order to help organize and lead your enterprise into a virtual world.</p>
<p>But you can&#8217;t get here unless you have those measurements in place, and you can&#8217;t get here if you spend all your energy trying to make everything 100% perfect. Make your best guess based upon analysis of the facts at hand and just accept the fact that someone will dump 10GB of data in your lap one night and cause all of your planning to be wasted. It will happen. Often, actually.</p>
<h3>resourcedb</h3>
<p>I don&#8217;t have any links to share on this, unless you want me to <a href="http://en.wikipedia.org/wiki/Capacity_planning">link to Wikipedia</a>. It&#8217;s not as if there are any DBAs that specialize in capacity planning (well, none that I am aware of at the time of this post going live). I am certain that many of my colleagues perform capacity planning, but I don&#8217;t see a lot of blog posts on the subject and it&#8217;s not like people are writing books solely focused on the subject (say&#8230;that gives me an idea&#8230;)</p>
<p>So, what to give you for a resource? <a href="http://www.itlibrary.org/index.php?page=Capacity_Management">How about ITIL</a>? It&#8217;s better than a sleeping pill. And it gives you an idea of everything that goes into a proper capacity planning document (hint: it&#8217;s a lot).</p>
<p>Just start getting those measurements, without them you are just guessing as to what capacity you will need.</p>
]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2010/07/sql-university-capacity-planning-week/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL University &#8211; Indexing Week</title>
		<link>http://thomaslarock.com/2010/07/sql-university-indexing-week/</link>
		<comments>http://thomaslarock.com/2010/07/sql-university-indexing-week/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 14:35:47 +0000</pubDate>
		<dc:creator>Thomas LaRock</dc:creator>
				<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[SQL University]]></category>
		<category><![CDATA[SQLServerPedia Wiki]]></category>
		<category><![CDATA[indexes]]></category>
		<category><![CDATA[SQLServerPedia]]></category>

		<guid isPermaLink="false">http://thomaslarock.com/?p=4557</guid>
		<description><![CDATA[Welcome back to this week&#8217;s installment for SQL University. The topic this time is all about indexing. I know, I know. It sounds incredibly exciting, right? I mean, what could possibly be more exciting than a comprehensive review of a B-tree? Or a lively discussion about having a heap or a clustered index?
Lots of things, [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome back to this week&#8217;s installment for SQL University. The topic this time is all about indexing. I know, I know. It sounds incredibly exciting, right? I mean, what could possibly be more exciting than a comprehensive review of a B-tree? Or a lively discussion about having a heap or a clustered index?</p>
<p>Lots of things, actually. But since we are still in session here at SQL U, let&#8217;s get through this chapter in our books so we can move on to some of the more exciting stuff, like FILESTREAM.</p>
<h3>tempdb</h3>
<p>I still recall the first time I even heard the term &#8220;index&#8221;. I was working with a particularly troublesome piece of T-SQL code and I couldn&#8217;t find the /gofaster switch. I recalled that the DBA had once helped me before so I decided to try my luck again and I went over to ask for some help (which, of course, he was happy to provide, as any good DBA would be). Examining my query he indicated that it could benefit from an index or two and he showed me the details of their creation. I was all to happy to get them created and so I did. I deployed them right away. And then my phone rang. It was the DBA and he wanted to remind me of something.</p>
<p>&#8220;You know that you already have seven indexes on that table, and you just created two more?&#8221;</p>
<p>&#8220;Um, I guess so. Is that going to be a problem?&#8221;</p>
<p>&#8220;I&#8217;m not sure, but if you find something in your batch or your reports running slower, let me know and we&#8217;ll see if we can adjust from there.&#8221;</p>
<p>And so began my awareness of indexes. And just how awesome it is to have a good DBA around.</p>
<p>That&#8217;s where you need to be as well. You should be familiar with the basics of indexes, how tables are designed, and how the data is accessed. Don&#8217;t bother with XML or spatial indexes at this point, stick to things like clustered, non-clustered, unique, filtered, and included columns for now. Get a solid understanding of the basic structures before trying to move onto more specialized things such as XML, spatial, and full-text.</p>
<h3>msdb</h3>
<p>Sometimes indexes are exactly what you need. Other times, indexes are exactly  what you don&#8217;t want. And the only way for you to know what you need, and  when, is through experience. You can read all you want from a <a href="http://thomaslarock.com/book-reviews/">book  about indexing</a>, but the bottom line is your shop is unique, and your  situation is not always going to fall into line with a scenario in a  book. That means you need to find out what works for you, your business, and your scenario. That way, when people come to you for performance help, you will be able to better understand the role that indexes play in performance.</p>
<p><a href="http://thomaslarock.com/wp-content/uploads/2010/07/sql_queries_that_timeout.jpg"><img class="alignleft size-medium wp-image-4568" style="margin-right: 5px;" title="Notice a recurring theme here?" src="http://thomaslarock.com/wp-content/uploads/2010/07/sql_queries_that_timeout-300x200.jpg" alt="Notice a recurring theme here?" width="300" height="200" /></a>I recall one time where we had an web application getting time outs in production, but test was running &#8220;fine&#8221;. Turns out that &#8220;fine&#8221; meant the page loaded in 27 seconds, whereas the production version would cough up a timeout error after 30 seconds (the query in prod <em>would</em> finish in about 35 seconds). Naturally this was a database problem, and not a design problem, or a data problem (or even an ASP/IIS problem). Well, OK, it was a data problem, because the data in prod and test was not the same (imagine that!) But that didn&#8217;t help our real issue, which was <em>why the hell was that query taking so long in the first place</em>?</p>
<p>This is where my knowledge of indexes came into play. I could see that the index itself was not aligned with what the query was requesting. If I altered the order of columns in the index (because we couldn&#8217;t change any code), then the query time went below one second. Had I not had any awareness of how indexes worked, then I would have never thought to <a href="http://weblogs.sqlteam.com/joew/archive/2008/02/13/60510.aspx">verify that the query and the index were properly aligned</a>, for lack of a better term. That awareness allowed me to get the job done (and I have lost count of the number of times readjusting the column order for the index has been a quick solution).</p>
<p>[Note: I am not telling you to go around and rearrange the columns in all your indexes in order to get a performance gain, I am just pointing out how awareness of how indexes work will have a benefit for you as you perform the duties of your job. If you went around implementing everything you read on a blog then your shop would make BP look well organized.]</p>
<h3>model</h3>
<p>At this level you need to do more than just get the job done, you need to be leading by example. Here is where you take a turn and look to be proactive. If you already have some type of in-house monitoring system (or a third-party tool instead), you can go through the tables in your databases, examine the indexes, and see where you are able to provide some help. What does that mean? Well, here are some examples:</p>
<ol>
<li>Check <a href="http://sqlserverpedia.com/blog/sql-server-bloggers/sql-server-find-missing-and-unused-indexes/">for missing and unused (or little used) indexes</a></li>
<li>Check for <a href="http://sqlserverpedia.com/blog/sql-server-bloggers/prevent-duplicate-indexes-due-to-includes/">duplicate indexes</a></li>
<li>Check for too many indexes (how many is too many? it depends!)</li>
</ol>
<p>Being proactive is the key here; getting ahead of problems before they become <strong><em>your</em></strong> problem, and only your problem (as opposed to the people that most likely designed and deployed their poor decisions that lead to extra work, it&#8217;s <em>never</em> their problem otherwise they would help work on a solution instead of just standing there and watch you work on the solution).</p>
<h3>master</h3>
<p><a href="http://thomaslarock.com/wp-content/uploads/2010/07/economic_index.gif"><img class="alignleft size-medium wp-image-4567" style="margin-right: 5px;" title="economic_index" src="http://thomaslarock.com/wp-content/uploads/2010/07/economic_index-262x300.gif" alt="" width="262" height="300" /></a>OK, you&#8217;ve got everything in place already. You have awareness, you have knowledge, you have some experience, and you are proactive. What&#8217;s next?</p>
<p>Teaching others.</p>
<p>Now, this doesn&#8217;t mean that you need to go on the lecture circuit, or write a book on indexing, or even a bunch of articles or blogs. No, what I mean here is that when someone is sitting in your cube and looking for help you need to be able to explain how indexes work in a way that they can understand. This will accomplish two things. First, it will force you to learn a lot about indexes (if you ever want to really learn something then all you need to do is to try teaching that subject to someone else). Second, it will allow for you to help plant a seed of knowledge with another person (whether that person chooses to nurture that seed is up to them, not you).</p>
<p>So, start thinking about different ways that you could explain indexes. Start with a common example, like the index in a back of a book, or the card catalog at the library. Pick something that works for you, because that will make it easier for you to then in turn explain it to others.</p>
<p>My favorite example? Why, the <a href="http://www.ccstrade.com/mkt/PB/">pork bellies index</a>, of course. But you need the right crowd to pull that one off. If you are trying to explain indexing to someone at the PASS Summit, just use an example that refers to a karaoke song book, they&#8217;ll <a href="http://blogs.seattleweekly.com/reverb/2010/04/awesome_george_benson_at_bush.php">understand that rather easily</a>.</p>
<h3>resourcedb</h3>
<p>There are lots of references out there about indexes. You could start with the Books Online just to get an idea about them and then move onto <a href="http://technet.microsoft.com/en-us/library/ms189271.aspx">TechNet</a>, <a href="http://msdn.microsoft.com/en-us/library/ms180978.aspx">MSDN</a>, or even <a href="http://sqlserverpedia.com/wiki/Index_Overview">SQLServerPedia</a>. It&#8217;s all good material, especially for someone that is looking to get the fundamentals down.</p>
<p>But for me, if I ever want to know the sordid, dirty details of indexes, I only have to think of what I call K2; Kimberly (<a href="http://www.sqlskills.com/blogs/kimberly/">blog</a> | <a href="http://twitter.com/KimberlyLTripp" target="_blank">twitter</a>) and Kalen (<a href="http://sqlblog.com/blogs/kalen_delaney/default.aspx">blog</a>).</p>
<p>There are others that are quite knowledgeable about indexes, no question. But the top of my index pyramid is with them, and no one else.</p>
]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2010/07/sql-university-indexing-week/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Eight Things I Have Learned While Telecommuting</title>
		<link>http://thomaslarock.com/2010/07/eight-things-i-have-learned-while-telecommuting/</link>
		<comments>http://thomaslarock.com/2010/07/eight-things-i-have-learned-while-telecommuting/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 13:02:15 +0000</pubDate>
		<dc:creator>Thomas LaRock</dc:creator>
				<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[SQLServerPedia Wiki]]></category>

		<guid isPermaLink="false">http://thomaslarock.com/?p=4510</guid>
		<description><![CDATA[I have been working for Confio Software for almost six full weeks now. Two of those weeks I was on the road, which means I have been working at the office for the other four weeks. And by &#8220;at the office&#8221; I mean &#8220;the spare bedroom located next to my bedroom that was redesigned by [...]]]></description>
			<content:encoded><![CDATA[<p>I have been working for Confio Software for almost six full weeks now. Two of those weeks I was on the road, which means I have been working at the office for the other four weeks. And by &#8220;at the office&#8221; I mean &#8220;the spare bedroom located next to my bedroom that <a href="http://www.facebook.com/album.php?aid=180923&amp;id=156491659260">was redesigned</a> by Congress (<a href="http://sleaqueimages.com/">web</a> | <a href="http://twitter.com/femmefoto">twitter</a>) for me to work from&#8221;. Yeah, that&#8217;s right, I work from home. I telecommute when I am not on the road. I rarely wear pants. Or socks. I <a href="http://thomaslarock.com/2010/06/what-are-you-waiting-for/">hit the job lotto back in May</a> and I have been living the dream ever since.</p>
<p>But working from home isn&#8217;t all unicorns and rainbows. Especially right now during the summer when the Junior Senators are out of school (and not in camp). And to complicate things even a little further is the fact that this is also very new to me, so I don&#8217;t have a work routine down yet. But I have learned a few things about telecommuting in this short amount of time and I thought I would share them with you. You&#8217;re welcome.</p>
<h3>It Can Be Hard To Focus On Things When Oh! Look! Shiny!</h3>
<p>There are a *LOT* of distractions when you are at home. Right now things are a little more complex with the kids out of school for the summer, but there are still a lot of other things that can take your attention away from your work. It is rare for me to get an uninterrupted fifteen minutes to focus on any particular task. I typically have to work in five or ten minute bursts and rotate among three or four things during the day, and then at night pick one thing to focus on after I put the kids to bed. For example, tonight I focused on this blog post and a bottle of wine.</p>
<p>Part of my job role at Confio is to provide technical support for Confio customers. That means I can get emails at any time during the course of a day and I will need to shift gears in order to answer the email. And that means I really cannot set aside a full hour for some particular task because it is possible I will be interrupted. So, I am always trying to think only fifteen minutes ahead at most.</p>
<p>I addition to that, there are also product demos that I take part in, especially right now as I try to get as familiar with the product as possible. Those demos are scheduled, which gives some structure to my day, but it is hard to take a deep dive into anything at 1:45PM when you know you have a meeting at 2PM.</p>
<p>And let&#8217;s not forget the emails I get throughout the day that cause me to stop for a few minutes. Most of those are PASS related as we gear up for the Summit and are also trying to pull together the upcoming SQL Rally next Spring. But each time I stop what I am doing and try to switch context to something else it makes it harder to get back to the original thread.</p>
<h3>Congress</h3>
<p>&#8220;Hey, can you help me with this for a minute?&#8221;</p>
<p>Sure, it sounds like a simple enough request, but it really is another chance at a distraction during the day. The fact is that Congress and I are now working out of the same space, our home. And at certain times of the day we need each other. She needs me to kill a bug, and I need her to make sure the printer is turned on. And let&#8217;s not forget strange noises, can you guess which one of us needs to investigate them?</p>
<p>There are times of the day when I have meetings, and times of the day when she has meetings as well. And right now, during the summer months, those are the times when one of us needs to make certain we know if the Junior Senators are conspiring to overthrow the government. In other words, there is a lot of activity in the house these days. It is a manageable chaos, no question. But it can make for a longer work day overall.</p>
<h3>My Spawn</h3>
<p>No question, they are a distraction right now. They are only six and seven years old and need our attention. Sure, we could turn on the television but that really only buys us a few hours at most. They could play on their laptop, but it is the same result. Inevitably they will fight and come to us for help. Boom! Another distraction. I do my best to stop working on whatever I am doing and focus on them but I am not always able to pull that off. My new office has a nice chair and I will have them sit down and talk with them, if for nothing else just to make certain that I am controlling the conversation.</p>
<p>I would love to let them run around the yard but they always seem to either end up in trouble or in tears. They have become very good swimmers, but we still don&#8217;t want to leave them completely unattended in the pool just yet. I really wish I could just spend the day with them in the yard paying soccer, baseball, or dribbling a basketball in the driveway but I need to pay their bills. Confio may pay me to keep blogging, but they aren&#8217;t paying me to teach my kids a crossover dribble (well, being my kids, they won&#8217;t need to be taught that anyway).</p>
<h3>Household Chores</h3>
<p><a href="http://thomaslarock.com/wp-content/uploads/2010/07/chores.jpg"><img class="alignleft size-medium wp-image-4534" style="margin-right: 5px;" title="It didn't take long for them to get used to this." src="http://thomaslarock.com/wp-content/uploads/2010/07/chores-225x300.jpg" alt="" width="225" height="300" /></a>In my second week of working from home I ran outside to do a quick vacuum of my pool before a meeting. I knew I had twelve minutes and that it wouldn&#8217;t take me that long. When I got done I realized that I managed to get that chore done in less time than most people take cigarette breaks. Then I started thinking about other chores that I could get done in a short amount of time. Load dishwasher, load washer, empty dishwasher, empty dryer, vacuum pool, vacuum living room, dust office, run out to get more bacon, the list just grew longer and longer.</p>
<p>If I was not careful, then my day could end up being ten minutes of work, followed by a ten minute chore, followed by a meeting, then answering emails, then more work, and so on. By the end of the day I may feel that I got nothing done, even though I got a lot of little things done. And I would rather feel as if I was able to knock off one or two big things instead of a bunch of little ones.</p>
<h3>Get Off Your Arse</h3>
<p>I could sit in my office all day. Well, not on really hot days, I would sweat too much despite the central air. But on most days I could probably sit there all day, if necessary. In fact, I have done it before. Twice actually. For a lot longer than just eight hours.</p>
<p>But that&#8217;s not good. So I need to get up and stretch. And as soon as I get up, I&#8217;ve lost focus. And did I mention those chores? Yeah, what better time to take care of the pool than when you are getting up from your desk and walking around. Funny, but at previous places of employment I really could sit down for hours on end and never move. But while at home I find myself wanting to get up a lot more frequently. I&#8217;m like a fat kid in a chocolate store, I cannot be still.</p>
<p>But getting up is a good thing, and I recognize that it is needed. So I have learned to live with the interruptions as a way for me to get up every now and then. I may complain about doing so, but I know it is needed. If nothing else it helps with the eye strain for me to stop looking at the computer screen.</p>
<h3>Drop And Give Me Twenty</h3>
<p>OK, I will be honest here. I <a href="http://dbasurvivor.com">wrote a book that had a whole chapter on nutrition and exercise</a> and yet I am not taking my own advice right now. I keep telling myself that I will start &#8220;tomorrow&#8221;, but that day hasn&#8217;t come yet. I think it is because I still feel awkward about not working my arse off for Confio. Just about every free moment I have is spent trying to make Confio more successful, and I would feel bad if I spent a few moments on myself. But I <em>know</em> that I need to get some exercise.</p>
<p>Part of this has to do with my routine, and I simply have not worked any exercise time into my daily routine. And part of that reason is because my meetings can happen at any time of the day. Confio is located in Boulder, which is two hours from Chez SQLRockstar, which means I can have meetings right through lunch which is my typical workout time. And did you know that it is hot in the summer at lunchtime? Who wants to go for a run then? It would be better for me to run early in the morning, or later in the afternoon, but the Junior Senators are around and I feel bad about leaving Congress alone with them for that time.</p>
<p>Bottom line is that I need to set aside some time each day for me to get a workout. I am going to try to do this in the morning, between 9 and 10 AM. Even if I can only ride my <a href="http://twitpic.com/231fd2">new bike for 30 minutes</a>, it is better than doing nothing. Ideally I would run for about an hour or so each day, but that is not always going to be possible.</p>
<h3>Different Times, Different Energy</h3>
<p>While at TechEd last month Brent Ozar (<a href="http://brentozar.com">blog </a>| <a href="http://twitter.com/brento">twitter</a>) told me that I should keep a journal for the next six to eight weeks and keep track of how I felt during the day. The goal was to find the times of the day that matched to a particular need. For example, perhaps I feel most creative during the morning. Then I would want ot set aside my mornings to do most of my writing, and perhaps schedule meetings for later in the day.</p>
<p>Two things killed this theory. The first is that I still don&#8217;t know what time of the day I am most creative (although I do believe alcohol is a factor) and the second thing is that I really don&#8217;t control my meeting schedule right now. If a client wants to meet at 8AM, then I&#8217;ll meet at 8AM, I am not really in a position to defer the meeting until a later time.</p>
<p>But I know that it is important to maximize my time by arranging activities accordingly. And I also know that the body and the mind are not always in synch. For example, your mind has more motivation at the start of the day than the end, but your physical body is better at the end of the day and not the beginning. That&#8217;s why going for a jog at lunchtime is a common thing; you still have motivation for a workout and your body is ready for some exertion.</p>
<p>Same thing with writing, attending meetings, doing demos, answering support emails. At different times of the day you are going to be better suited for handling these tasks. You don&#8217;t really know what those times are unless you start tracking them, and then the idea is to set your daily schedule around those times. That way you can operate at peak efficiency.</p>
<p>I have already learned that I do my best writing at night, which is when I do my most drinking, so I tend to have my meetings during the day. I also tend to be more social during the morning than the afternoon, which is when I usually have the most meetings. And I tend to have lunch when I am hungry between 11AM and 1PM, but haven&#8217;t figured out when to go for a jog yet. Make sense? Probably not. That&#8217;s OK though, I am a trained professional.</p>
<h3>I Can Never Go Back to Working For the Man</h3>
<p>I was watching Return of the Jedi last night. Near the start of the movie, Lord Vader lands on the new Death Star and informs the Commander that the Emperor is not happy the station is behind schedule. The Commander complains that he needs more men and Vader then informs the Commander that he can use that excuse himself when the Emperor arrives shortly. The Commander just about wets himself and says &#8220;we shall double our efforts.&#8221; So, in the course of <a href="http://www.youtube.com/watch?v=Q7oqZ-_-O6Y">one minute after his arrival</a>, Vader is able to get this guy to work twice as hard through nothing more than the fear of someone else showing up.</p>
<p><a href="http://thomaslarock.com/wp-content/uploads/2010/07/vader.jpg"><img class="alignleft size-medium wp-image-4533" style="margin-right: 5px;" title="I am your father's brother's nephew's cousin's former roommate. " src="http://thomaslarock.com/wp-content/uploads/2010/07/vader-300x199.jpg" alt="" width="300" height="199" /></a>Two things stood out to me as I watched that scene. First, no way was the Death Star a union job, otherwise that Commander would have told Vader to go pound sand. Second, it reminded me of a place where I used to work, where fear was the motivating factor for most people to get work done.</p>
<p>The only thing I have to fear now is myself. And that is not just because my boss is on vacation. No, it is because I hold myself to a very high standard. If I am not pulling my own weight, I let myself know about it. The last thing I want to think about when I go to sleep is &#8220;did I *do* anything today?&#8221; If I cannot answer that question, then I get mad at myself and I wake up the next day determined to pick up the slack.</p>
<p>This is truly a dream job, and an incredible opportunity for me. I have specific tasks to accomplish. I am part of a team that has a very clear and defined goal. No one is going to micromanage me except for myself. No one is making me perform tasks out of fear; fear for my job, fear that I will not be allowed to advance, fear that I will not be given a fair bonus. Each day I look back and do my best to chart my progress. I reflect upon something I have learned, or something I have created. It seems so far removed from the corporate politics that I have been used to for my entire professional life that it is surreal at best.</p>
<p>I can never go back to that life. Well, I would if my family needed me to do so, but let&#8217;s hope it doesn&#8217;t come to that, OK?</p>
]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2010/07/eight-things-i-have-learned-while-telecommuting/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>SQL University &#8211; Advanced Troubleshooting Week</title>
		<link>http://thomaslarock.com/2010/07/sql-university-advanced-troubleshooting-week/</link>
		<comments>http://thomaslarock.com/2010/07/sql-university-advanced-troubleshooting-week/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 18:38:35 +0000</pubDate>
		<dc:creator>Thomas LaRock</dc:creator>
				<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[SQL University]]></category>
		<category><![CDATA[SQLServerPedia Wiki]]></category>

		<guid isPermaLink="false">http://thomaslarock.com/?p=4514</guid>
		<description><![CDATA[Welcome back to another week of SQL University. This week we will cover advanced troubleshooting. When I first started as a DBA &#8220;advanced troubleshooting&#8221; was something that you performed while someone else was on the other end of a phone line yelling at you for their own mistakes. Yeah, it really was that much fun. [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome back to another week of SQL University. This week we will cover advanced troubleshooting. When I first started as a DBA &#8220;advanced troubleshooting&#8221; was something that you performed while someone else was on the other end of a phone line yelling at you for their own mistakes. Yeah, it really was that much fun. And lets not forget those times when you would be told what to do by people that had even less experience than you did, but you trusted them and then when things went even more wrong you would get all of the blame for not doing the right thing to begin with even though you were following the orders of a superior. Good times, indeed.</p>
<p>This post is designed to put all of that <span style="text-decoration: line-through;">pain</span> <span style="text-decoration: line-through;">drama</span> experience into a format that will provide you with some benefit at the end. I hope it makes you a better DBA, or at the very least a better person. Most importantly, it gave me something to blog about this week.</p>
<h3>tempdb</h3>
<p>As always, the tempdb level is all about awareness. The awareness you need here is to know that there are various techniques and solutions available for you to utilize. More importantly you need to be aware that you are not someone else. Let me explain a little bit more about that.</p>
<p>Every IT shop is different. Every IT shop has a different configuration of systems and applications to support. The people working in one shop are not the same people in another. At some point you will come across a person that will tell you &#8220;I did this and it solved everything for me.&#8221; Stop. Remember this. You are not that person, and you are (most likely) not working in that shop. So, reading about their particular solution in a blog post or even a book does not mean that it is going to be the perfect solution for you. IN fact, it could even make things worse for you, especially if you are under a time crunch and you waste precious hours trying to implement someone else&#8217;s solution.</p>
<p><a href="http://thomaslarock.com/wp-content/uploads/2010/07/Fix_Stop_0x0000007e-2009.7.14-001.jpg"><img class="size-medium wp-image-4524 alignleft" style="margin-right: 5px;" title="I'm sure it's not *that* serious..." src="http://thomaslarock.com/wp-content/uploads/2010/07/Fix_Stop_0x0000007e-2009.7.14-001-300x225.jpg" alt="I'm sure it's not *that* serious..." width="300" height="225" /></a></p>
<p>You are not that person. Trying to be that person means you will always be second best. You need to find out for yourself what works best for you, in your shop, as far as advanced troubleshooting techniques go.</p>
<p>The best example I can give to you here is this. After years as a production support DBA I started to get an idea as to when the issue was with a server, with code, or with a person. So if it was 3AM and I needed to figure out why something wasn&#8217;t working I could take a step back, assess the situation, and drill right into the most likely culprit (BTW, blaming code is usually a safe bet). Now, you aren&#8217;t going to find anyone writing a book about advanced troubleshooting that will say &#8220;anytime Fred deploys a DTS package he forgets to do x, and that is going to be what you need to fix at 3AM&#8221;. But it certainly is a technique, and one you need to be aware of as time goes on.</p>
<p>You can be handed a lot of technical techniques, but even a good mechanic gets by with a lot of touch and feel under the hood. You&#8217;ll need to do the same over time.</p>
<h3>msdb</h3>
<p>Here is where you need to be getting the job done, and you cannot get the job done unless you have a solution in place to help you gather details about your instances. It doesn&#8217;t really matter which solution you are using, just so long as that solution fills your needs. In my case what I needed at the time was a solution that allowed for me to answer the question &#8220;what happened at 2:03 last night that caused my batch load to run slower than normal?&#8221; Since I was usually asleep at that time I knew I needed something that would help me gather the necessary details to answer that exact question.</p>
<p>At first we had our own in-house solution, but it did not scale as we grew from a handful of instances to over 170 by the time I decided to <a href="http://thomaslarock.com/2010/06/what-are-you-waiting-for/">take my talents West to Boulder</a>. So we ended up purchasing a solution in order to help us provide better support. As good as the solution was for us initially, it was nothing more than a way for us to gather details, we still needed to do the forensics ourselves. And in time even that solution was not enough, we had to branch out in another direction eventually. We went with one tool for basic monitoring and used the other solution for gather performance metrics.</p>
<p>And why did we go that route? Well, because our shop is not the same as yours, that&#8217;s why.</p>
<h3>model</h3>
<p>At this level you have everything in place. You have a solution that is gathering performance metrics that allow for you to go back in time to answer questions such as &#8220;what happened&#8221;. But here is where you have to start your forensics career. While there are many solutions that allow for you to gather metrics, there are very few solutions that you would trust to perform analysis on those metrics and take action without human intervention. That&#8217;s where you come in; you&#8217;re the human.</p>
<p>You are going to need to understand the four major SQL Performance Food Groups: Disk, CPU, Memory, tempdb. Each one of those is a potential bottleneck for your queries. Starting looking for clues as to which one may have been the culprit. Was it Memory, in the server room, with a candlestick? Or perhaps this time it was CPU, in the library, with a rope? Or maybe there was some unknown, mysterious stranger that was blocking everyone else from trying to run away?</p>
<p>As you hone your detective skills you will need to work on your soft skills as well when conversing with your customers. No one wants to be told that they wrote a bad query, or if they made a mistake in general. Do your analysis, present your findings, and leave emotion out of your results. This will help give you an opportunity to continue to have people seek you out with their questions, which is vital to being at this level.</p>
<h3>master</h3>
<p>If you want to be a master of advanced troubleshooting then the answer is simple: become proactive. In most cases, the DBA is the last person to know that a problem exists. If a customer thinks an ad-hoc query is taking too long, or someone sees their batch ran ten minutes long in the middle of the night, or if a nic card has gone bad chances are you will not hear about it until after the problem has happened. And that puts you in a reactive mode, same as when you are handed a bad database design and are told it needs to go live tomorrow. Time is no longer a luxury for you as <em>someone</em> is waiting for you to fix <em>something</em> immediately. Worse yet, the issue may not even be anything you control, but you are being tasked with discovering the problem and having a solution in place.</p>
<p>At the master level you leave that world (mostly) behind. You will always have those reactive scenarios, but you can limit their occurrence by becoming proactive. The real trick, therefore, to becoming a master is to learn how to be proactive. You want to start troubleshooting issues (or, better yet, potential issues) before your customers are even aware of a problem on their end. This means that you start slicing and dicing your metrics and look for spikes and trends that can signal an possible issue.</p>
<p>The best part of being proactive? That would be the fact that if someone does your way and is yelling about the server performance you will be able to quickly rule out a handful of possible causes because (1) you have the data and (2) you know what to do with it. Why? Because when you are proactive then you will often have the time to thoroughly research the issue at hand. This often leads you to develop sound solutions to whatever issue popped up, and that sound solution helps to prevent other issues. Instead of the MacGyver approach where you keep your server running with duct tape, scissors, and a paper clip for the next 36 hours you get the opportunity to build something properly. And that research is really just extra training (or what many people just call <em>experience</em>), and that experience is what allows for you to become better at troubleshooting in general.</p>
<h3>resourcedb</h3>
<p>I could point you to the <a href="http://brentozar.com">blogs</a> and <a href="http://www.sqlskills.com/BLOGS/PAUL/">websites</a> of a lot of <a href="http://www.sqlskills.com/blogs/kimberly/">people</a> that <a href="http://sqlblog.com/blogs/andrew_kelly/">I consider</a> to be <a href="http://sqlblog.com/blogs/adam_machanic/">very</a> <a href="http://blogs.msdn.com/b/buckwoody">good</a> when it comes to <a href="http://sqlblog.com/blogs/jonathan_kehayias/">advanced</a> <a href="http://itknowledgeexchange.techtarget.com/sql-server/">troubleshooting</a>. I can also point you to <a href="http://thomaslarock.com/book-reviews/">more than a handful of books</a>. However, what you really need to do here is to build your own resource list. And you can get started on that right now. Start by documenting all your servers, and the people that use them (or own them, just think high level here), and then make room for you to keep track of any oddball things that exist. Is that server a different collation? Was that server recently rebuilt for some reason? Did that server blue screen last night? Keep track of these notes and over time you will see a story emerge, and that story is going to be crucial for you when it comes time to troubleshoot some odd behavior.</p>
<p>Advanced troubleshooting is really just a fancy way of saying &#8220;you can find out what is wrong very quickly&#8221;. The techniques for achieving this will differ from person to person, but in the end we all need sound information for us to make our decisions. Start gathering yours, in whatever way works best for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2010/07/sql-university-advanced-troubleshooting-week/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SQL University &#8211; Certification Week</title>
		<link>http://thomaslarock.com/2010/07/sql-university-certification-week/</link>
		<comments>http://thomaslarock.com/2010/07/sql-university-certification-week/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 16:41:55 +0000</pubDate>
		<dc:creator>Thomas LaRock</dc:creator>
				<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[SQL University]]></category>
		<category><![CDATA[SQLServerPedia Wiki]]></category>

		<guid isPermaLink="false">http://thomaslarock.com/?p=4493</guid>
		<description><![CDATA[Welcome back to the semester that never ends. Think of this as summer school. No, not because you need remedial training (well, some of you don&#8217;t, anyway), but because it is frakkin&#8217; July and we are still in session. Just consider that you are getting ahead for next year, like the students I had during [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome back to the semester that never ends. Think of this as summer school. No, not because you need remedial training (well, some of you don&#8217;t, anyway), but because it is frakkin&#8217; July and we are still in session. Just consider that you are getting ahead for next year, like the students I had during my last few months at Washington State. I had been a TA for two years but agreed to teach a summer course because (1) I was still in Pullman for the summer and (2) I needed the money. So, I was actually categorized as a faculty member for that class and I liked to tell people that I was once on the faculty at WSU.</p>
<p>Anyway, I was teaching mathematics, and it was summertime in Pullman. Think hot. Like 100 degrees every day. Nothing but sunshine and very low humidity. But still hot. I was also working basketball camp, so I would run across campus at lunch time and start teaching class while dripping sweat. My students knew I was slightly touched, and not because I wasn&#8217;t wearing any pants.</p>
<p>What&#8217;s my point for all of this? Well, it has to do with education. No really. I want to let you in on a secret. It has to do with those pieces of paper we call diplomas. Do you know what they represent?</p>
<p>They represent your ability to <em>do work</em>.</p>
<p>That&#8217;s all, nothing more. They help you show a possible employer the amount of work that you are able to perform (barring any relevant work experience, of course). If you finish school and head off to find a job and all you have is your diploma, then that diploma had better give a good indication of the level of work you are able to perform. Think about trying to find a job, with no work experience, and you have a GED, or a HS diploma, or a BA/BS, or a Master&#8217;s degree, or a PhD. That diploma had best be able to describe what you can do.</p>
<p>(And in a stunning upset, your college choice doesn&#8217;t really matter either, so choosing Hallowed Ivy over Bungalow State isn&#8217;t going to get you a better job by itself. All that choice will do is give you an opportunity to network with different people, which could be a benefit later, but usually isn&#8217;t. And don&#8217;t get me started on <a href="http://www.gradeinflation.com/">grade inflation</a>, either. The diploma is what counts, not your grades, sorry but better you hear this from me now, right?)</p>
<p>Back to the post, which is about certifications. Like a diploma, they will help you demonstrate your ability to do work. The &#8220;work&#8221; in most cases is simply prepping for the exam and often has little to do with your actual administration skills. But that is fine, because most people know what they represent, and as an added bonus they also represent that you are the type of person the looks to take a deeper dive than most.</p>
<p>OK, enough babbling, let&#8217;s get started!</p>
<h3>tempdb</h3>
<p>Did you even know that <a href="http://www.microsoft.com/learning/en/us/start/start-overview.aspx">certifications for SQL Server exist</a>? Well, now you do. The next thing you need to decide for yourself is if they are worth the effort. I have known DBAs with over 20 years experience and have zero certifications, and I have known DBAs with 1-2 years experience and a fistful of letters after their name. Some people think certifications give you instant credibility. Others think that your work experience counts for more. Guess what? They&#8217;re both right.</p>
<p>Work experience is a wonderful asset that no one can take from you. Certifications are also an asset that you get to keep forever. The real power comes when you are able to combine the two; years of experience + certifications = major win. Keep that in mind when you start to wonder if certifications are worth the effort, the answer is always going to be &#8220;yes&#8221;.</p>
<p>Lastly, we aren&#8217;t talking about a degree here, and we aren&#8217;t talking about taking a class. We are talking about an exam that is designed to measure your breadth (and often your depth) of a subject. Even a DBA with 20 years experience can take a few minutes to prep for  an exam and learn a few new things. Will it make a difference to their  billing rate, or bottom line? Maybe, but maybe not. But unless you are  named <a href="http://sqlskills.com/">Paul, Kimberly, Bob, Stacia, or Brent</a>, it will almost certainly increase your  breadth and depth of the SQL products.</p>
<h3>msdb</h3>
<p>At this level you will have taken one or two exams in order to either progress towards a specific certification or perhaps you just want to learn more about a particular subject matter. You could even take an exam in order to better demonstrate your ability to do work (sound familiar?) Bottom line, you will have moved past the whole &#8220;should I bother with a certification exam&#8221; stage and moved into the &#8220;I should take at least one exam and earn MCP status&#8221;.</p>
<h3>model</h3>
<p>To be at this level you will have completed a series of exams in order to earn a specific designation such as MCBDA or MCITP. If done correctly, you will key on exams that overlap into other certifications, which will minimize the number of exams you need to take overall. Go to the <a href="http://www.microsoft.com/learning/en/us/start/start-overview.aspx">MCP site</a> and map out a few of the certifications, look for exams that satisfy the core requirements for a handful of designations. Focus on those exams and you are well on your way to having multiple certifications while minimizing your study time.</p>
<p>Oh, and one other thing, once you get a certification, such as MCITP, there is usually an upgrade exam that is offered to you so that you can keep your certification current. So, instead of taking 3-4 exams you only need to take one. It&#8217;s a nice benefit to have and you only get it if you stay current. I recently had a choice between taking two exams for my SQL 2008 MCITP, or upgrading my MCDBA to SQL 2005, then to 2008. The upgrade path is always easier (well, for me it is easier at least).</p>
<h3>master</h3>
<p>OK, you&#8217;ve taken a dive into the world of certification exams, you have earned your MCITP. What&#8217;s next for the master level? Here is where you will go out of your way to earn extra certifications, perhaps even become a MCT. Another thing to do at this level is to help others to pass an exam, perhaps by helping to either participate in, or form, a study group. I was heading down this path a while back and was one or two exams away from an MCSE, MCSD, and MCAD. I stopped because I wanted to focus on things more SQL related, such as BI or database development and never went back to finish. I still might one day, but I am actually thinking I need to work on my Oracle certifications first.</p>
<h3>resourcedb</h3>
<p>Start with the link to the <a href="http://www.microsoft.com/learning/en/us/start/start-overview.aspx">MCP program</a>. But don&#8217;t stop there, do some additional digging and find out what others are saying <a href="http://itmanagement.earthweb.com/features/article.php/3870621/The-Top-10-IT-Certifications.htm">about IT certifications in general</a>. As recently as a few months ago I was still thinking about a Six Sigma certification. It would seem that many people <a href="http://www.infoworld.com/d/windows/how-make-sure-it-certifications-actually-matter-780">see the value in certifications these days</a>. But remember, don&#8217;t think that passing an exam is going to get you a job, or give you a raise. And don&#8217;t think that adding 27 letters in your email signature is going to impress anyone either. Treat your certifications like you were playing poker, only show them when necessary.</p>
]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2010/07/sql-university-certification-week/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>SQL University &#8211; Database Design/Development Week</title>
		<link>http://thomaslarock.com/2010/06/sql-university-database-designdevelopment-week/</link>
		<comments>http://thomaslarock.com/2010/06/sql-university-database-designdevelopment-week/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 19:11:51 +0000</pubDate>
		<dc:creator>Thomas LaRock</dc:creator>
				<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[PASS]]></category>
		<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[SQL University]]></category>
		<category><![CDATA[SQLServerPedia Wiki]]></category>

		<guid isPermaLink="false">http://thomaslarock.com/?p=4477</guid>
		<description><![CDATA[Welcome back to another installment of SQL University. This week we will be talking about a topic that is often overlooked: database design. On second thought, &#8220;overlooked&#8221; may not be the correct choice. I think a more accurate description would be NULL. That&#8217;s right, I just said that database design is an unknown entity to [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome back to another installment of SQL University. This week we will be talking about a topic that is often overlooked: database design. On second thought, &#8220;overlooked&#8221; may not be the correct choice. I think a more accurate description would be NULL. That&#8217;s right, I just said that database design is an unknown entity to many. Because it is so easy to create a database, and because CPU, memory, and disk I/O is often able to overcome horrendous database design, most people don&#8217;t have any concept of what it means to actually design a database.</p>
<p>And for those that have heard of the words &#8220;database design&#8221;, a majority of them simply think that it means nothing more than listing out the tables they will be using to store their data. The concept of a foreign key, for example, is quite, well, foreign to them. Never mind normalization, or constraints, or anything else for that matter. I wish more people understood how a good design up front can save a lot of time in support later on.</p>
<p>Let&#8217;s get started.</p>
<h3>temdb</h3>
<p>So many times I see a database &#8220;designed&#8221; by this method:</p>
<ol>
<li>Create table</li>
<li>Insert data into that table</li>
</ol>
<p>And that&#8217;s it. Sometimes the steps are repeated, and many tables are created and populated, but I have seen the case where there was one database, with one table, with no indexes (or key, or constraints), and a few hundred million rows. I came across this gem when I was asked to help find out why performance was so poor for the database. Luckily I had a LOT of options to explain why performance was less than optimal.</p>
<p>Another thing to be aware of at this level is the need to accurately define your datatypes. Don&#8217;t just go with nvarchar(50) for everything because some design tool chooses that by default. Be aware of the choices you are making when you create the table. If you have no idea what I am talking about then <a href="http://www.databasejournal.com/features/mssql/article.php/3718066/Disk-Space-Usage-and-SQL-Server-Performance.htm">go here and read this article by Greg Larsen</a>. I&#8217;ll wait for you to come back.</p>
<h3>msdb</h3>
<p>Now that you have a basic awareness of some of the value in a good database design, it is time for you to expand your horizons a bit more. You need to start mapping out relationships between the tables in your database. Start thinking about what columns in your table compose a unique combination of values. While at TechEd I was able to attend Buck Woody&#8217;s <a href="http://www.msteched.com/2010/NorthAmerica/DAT210">presentation on database design</a>. My favorite part of his talk, besides his comments about Brent Ozar&#8217;s sleeping habits, was how you can use nouns in order to help you design a better database. Buck starts his overview of his database design process at about the sixteen minute mark and it goes like this:</p>
<ol>
<li>Create and/or refine the business requirements</li>
<li>Break out your nouns</li>
<li>Refine nouns</li>
<li>Define relationships</li>
<li>Define datatypes</li>
</ol>
<p>Steps two through four are part of a process called <em>normalization</em>, which is something we will discuss more in the master level.</p>
<p>Another item you need at this level is the ability to find your way around an ER diagram. There are a handful of tools you can use to create an ER diagram, and I won&#8217;t recommend any particular one here. The important point to take away from this level is that you are familiar enough with ER diagrams so that you can understand them to some degree.</p>
<h3>model</h3>
<p>To be at this level you should have a database that has primary and foreign keys defined, perhaps even some unique constraints. You should be able to make changes to your database based upon the ever-changing business requirements (trust me, they will <em>always</em> change). To truly be a model database designer, however, you will need to be adept at communicating with your business end users. You need to understand the business as well as, or perhaps better than, the end user. Otherwise you will find yourselves repeating step one (create/define business requirements) over and over again. Knowing your business will allow for you to help streamline that part of the process, and by streamline what I really mean is &#8220;make it slightly less painful than chewing on a piece of aluminum foil&#8221;.</p>
<p>If you can speak the language of your end user, allowing you to better define and create the necessary business requirements, then you will be well on your way to being a model database designer.</p>
<h3>master</h3>
<p>If you want to be a master database designer then you need to understand normalization, what it means to normalize (or denormalize) a database, and how to apply techniques to move your database into and out of particular normalization forms. In short, you need to dream about normalization much the same way as I dream about the elusive quad-thick slice of peppered bacon wrapped around a sea scallop and dipped in bourbon.</p>
<p>If you are looking for a completely dry explanation of database normalization <a href="http://en.wikipedia.org/wiki/Database_normalization">then go here</a>. If you want a slightly more readable format covering the basics, <a href="http://databases.about.com/od/specificproducts/a/normalization.htm">then go here</a>. Personally, I like pictures, and <a href="http://www.mahipalreddy.com/images/Normalization.gif">here is a good one</a> to help you understand normalization, especially after you read a little bit about it.By now you may be asking yourself &#8220;Self, why isn&#8217;t every database normalized by default somehow?&#8221; That&#8217;s a fair question. After all, why not have tools like SSMS force the user to create everything necessary in order for every database to be in the third normal form (3NF)? It&#8217;s because that, as with anything in life, there is a trade off whenever you want something. In this case the trade off can be performance. It could very well be the case that you want to denormalize your database, or at least parts of your database, in order to maximize performance. But as a master database designer you already knew that!</p>
<h3>resourcedb</h3>
<p>The easiest thing to do is to tell you to go and get <a href="http://www.informatik.uni-trier.de/~ley/db/about/codd.html">every book Codd</a><img style="border: none !important; margin: 0px !important;" src="https://www.assoc-amazon.com/e/ir?t=sq0f-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" /> has ever written on the subject of database design and theory. But that would be rather shortsighted of me, considering how much of the world has changed since Codd did his most famous work. In today&#8217;s world we have &#8220;<a href="http://en.wikipedia.org/wiki/Eventual_consistency">eventual consistency</a>&#8220;, which can be viewed as a manner for which you remove the need to ever have a normalized database (or even transactions for that matter). Recently I had a person tell me that stored procedures are dying, which only served as a reminder to me that technology is always evolving. So, start with Codd, but don&#8217;t end there.</p>
<p>I have a section of <a href="http://thomaslarock.com/book-reviews/">my library</a> dedicated to database design books. I really like <a href="http://www.amazon.com/gp/product/1590597699?ie=UTF8&amp;tag=sq0f-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1590597699">Beginning  Database Design: From Novice to Professional</a>, and would recommend that highly for anyone that wants to get started by learning the fundamentals for database design. After that book, the rest is up to you.</p>
]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2010/06/sql-university-database-designdevelopment-week/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Timing Is Everything</title>
		<link>http://thomaslarock.com/2010/06/timing-is-everything/</link>
		<comments>http://thomaslarock.com/2010/06/timing-is-everything/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 18:12:34 +0000</pubDate>
		<dc:creator>Thomas LaRock</dc:creator>
				<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[SQLServerPedia Wiki]]></category>

		<guid isPermaLink="false">http://thomaslarock.com/?p=4484</guid>
		<description><![CDATA[Earlier this month I announced that I was leaving my former company in order to join Confio Software. Last week, Brent Ozar wrote a blog post where he mentioned my transition. Today, Brent announced that he, too, was changing jobs. Brent is giving up one dream job for another. And Brent has written about everything [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier this month I announced that I was leaving my former company in order to join Confio Software. Last week, <a href="http://www.brentozar.com/archive/2010/06/want-better-job/">Brent Ozar wrote a blog post</a> where he mentioned my transition. Today, Brent announced that he, too, was changing jobs. Brent is <a href="http://www.brentozar.com/archive/2010/06/im-joining-sqlskillscom/">giving up one dream job for another</a>. And Brent has written about everything that went into making this possible, both for himself as well as for me. None of this happened by accident. We didn&#8217;t respond to a job advertisement. We were offered positions where none existed, only the need for someone was there. I still don&#8217;t have a formal job description, and I doubt Brent has one at SQLSkills, either.</p>
<p><a href="http://thomaslarock.com/wp-content/uploads/2010/06/celebrity-pictures-kutcher-moore-laurie-talent-looks.jpg"><img class="alignleft size-medium wp-image-4486" style="margin-right: 5px;" title="celebrity-pictures-kutcher-moore-laurie-talent-looks" src="http://thomaslarock.com/wp-content/uploads/2010/06/celebrity-pictures-kutcher-moore-laurie-talent-looks-251x300.jpg" alt="" width="251" height="300" /></a>Despite the efforts that we took in order to put ourselves in the position to have such opportunities, there is still a luck factor involved. Well, some call it luck, but I still subscribe to the theory that luck is <a href="http://thomaslarock.com/2009/06/luck-preparation-and-opportunity/">nothing more than when preparation meets opportunity</a>. If anything, it is the opportunity part where people tend to focus their use of the word &#8220;luck&#8221;. But there is a part to the opportunity that people overlook, and that is the timing.</p>
<p>Timing is everything, no matter what you are doing. You need to be able to prepare yourself so that at the time the opportunity presents itself you are ready. If you do, some people will look at you and say &#8220;wow, how did you get so lucky?&#8221; Others, like myself, will say &#8220;wow, how can I prepare myself to be ready when the time comes?&#8221;</p>
<p>For Brent, the timing was right, and as a result he is joining SQLSkills. For me, the timing was perfect for me to join Confio.</p>
<p>If the opportunity presented itself tomorrow, would you be ready? If not, what would it take for you to get yourself ready? Even better, do you <em>want</em> the opportunity to present itself? If you don&#8217;t like where you are, and want to have a dream job like Brent (or myself), then what steps can you take to make it happen?</p>
<p>It is rare that success falls into someones lap without some measure of work. Unless you are Ashton Kutcher, it just isn&#8217;t going to happen.</p>
]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2010/06/timing-is-everything/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Community Communication</title>
		<link>http://thomaslarock.com/2010/06/community-communication/</link>
		<comments>http://thomaslarock.com/2010/06/community-communication/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 17:20:24 +0000</pubDate>
		<dc:creator>Thomas LaRock</dc:creator>
				<category><![CDATA[PASS]]></category>
		<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[SQLServerPedia Wiki]]></category>

		<guid isPermaLink="false">http://thomaslarock.com/?p=4436</guid>
		<description><![CDATA[During my last night in New Orleans for TechEd I was approached by a man who stopped me and said, essentially:
&#8220;What makes you guys so special?&#8221;

The man was Rob Collie (blog &#124; twitter), and he was asking about the SQL Community as a whole. And I really had no answer for Rob. We talked about [...]]]></description>
			<content:encoded><![CDATA[<p>During my last night in New Orleans for TechEd I was approached by a man who stopped me and said, essentially:</p>
<p>&#8220;<em>What makes you guys so special?</em>&#8221;</p>
<p><a href="http://thomaslarock.com/wp-content/uploads/2010/06/special-offer.jpg"><img class="size-medium  wp-image-4471 alignleft" style="margin-right: 5px;" title="I'll take four!" src="http://thomaslarock.com/wp-content/uploads/2010/06/special-offer-228x300.jpg" alt="I'll  take four!" width="228" height="300" /></a></p>
<p>The man was Rob Collie (<a href="http://powerpivotpro.com/">blog</a> | <a href="http://twitter.com/powerpivotpro">twitter</a>), and he was asking about the SQL Community as a whole. And I really had no answer for Rob. We talked about it for a while, trying to figure out why the SQL Community seems to be much more social, and much more willing to help one another than other technical communities. I had noticed that even in the MVP forums that the SQL forum was always one of the more heavily used forums when compared to others. But why?</p>
<p>In the time since Rob <span style="text-decoration: line-through;">accosted</span> approached me I have been able to reflect a bit. I think I understand a few of the reasons why our Community is so chock full of awesome. Feel free to correct me if I am wrong, or if I have missed anything.</p>
<h3>People Crave Shared Experiences</h3>
<p>This should not be a shocker to anyone, but we as humans tend to want to have shared experiences with one another. I really don&#8217;t know why that is the case, but it certainly seems to be true of most. It happens all the time in conversations when someone relates an experience and someone else responds by affirming that experience by sharing memories of their own. Something like:</p>
<p>&#8220;This one time, at band camp&#8230;&#8221;</p>
<p>&#8220;Yeah, I went to band camp once. It was full of awesome.&#8221;</p>
<p>Since DBAs are people too it makes sense that many of us already have the innate desire to share experiences. But so does everyone else, right? So clearly this is not enough to explain why we are special, but it does help explain why we all look to congregate and communicate.</p>
<h3>We Are Organized</h3>
<p>We, as database professionals, have a professional association (PASS), that allows for all of us to find ways to connect (and stay connected). I recently asked Rob if there was a user group or association for, say, Excel users. He didn&#8217;t know of any such groups, and I started thinking about all of those other MVP forums. What about the xbox MVPs? Is there a professional association for xbox users, for example? Or Zune?</p>
<p>For us DBAs <a href="http://sqlpass.org/">we have such an association in place</a>, and I think that is a contributing factor, no question. But other professional associations exist, so this is not enough to explain why we are so special. There must be something more.</p>
<h3>We Have Vehicles For Discussions</h3>
<p>Once we start to connect with each other at face-to-face events (user groups, <a href="http://www.sqlsaturday.com/">SQL Saturdays</a>, PASS Summit, etc.), we then need to have ways to stay connected once those meetings are over. We have that with Twitter (even have our own special hash tag for help, #sqlhelp, which we use when we have questions for one another), as well as Facebook, LinkedIn, and various public forums. We write articles for websites and try to find ways to help others learn something new.</p>
<p>None of these vehicles are for our use only, so this is not enough to explain why we are so special, there must be something more.</p>
<h3>We Form a Support Group</h3>
<p>Since most of us are in a production support role, a natural question is &#8220;who supports the support people?&#8221; Why, we do, of course! We need to be there for one another, because there are times when we know we need someone there for us as well. Many DBAs work alone in their shop; the lone voice of reason amidst a sea of madness and <span style="text-decoration: line-through;">sloppy</span> agile programming methods. Who else can understand the life of a DBA except for another DBA?</p>
<p>We tend to be very supportive of one another. We help each other when we have questions. We are allowed to make mistakes (especially if we learn from them and don&#8217;t repeat them very often). No one is scorned, or banished from the Community for not knowing something. About the only way to get yourself in trouble is to plagiarize our material. Stay clear of content theft and you are welcome to join in our conversations.</p>
<p>Other communities simply do not seem to act in the same manner. I think that what makes us so special is that, as a whole, we are made up of people that are not afraid of two things. First is that we are not afraid to ask for help. Second, we are not afraid to provide help.</p>
<h3>Add It Up</h3>
<p>And you get the SQL Community, which is indeed a very special Community to be a part of.</p>
]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2010/06/community-communication/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>SQL University &#8211; Women in Technology Week</title>
		<link>http://thomaslarock.com/2010/06/sql-university-women-in-technology-week/</link>
		<comments>http://thomaslarock.com/2010/06/sql-university-women-in-technology-week/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 05:15:11 +0000</pubDate>
		<dc:creator>Thomas LaRock</dc:creator>
				<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[SQL University]]></category>

		<guid isPermaLink="false">http://thomaslarock.com/?p=4445</guid>
		<description><![CDATA[Welcome back to SQL Univeristy. The topic this week will be on women in technology (WIT). I first heard about the WIT in general because of my involvement with PASS. My reaction to hearing about the WIT was something similar to &#8220;what about the men in technology?&#8221; (I had the same reaction to a &#8220;mothering [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome back to SQL Univeristy. The topic this week will be on women in technology (WIT). I first heard about the WIT in general because of my <a href="http://wit.sqlpass.org/">involvement with PASS</a>. My reaction to hearing about the WIT was something similar to &#8220;what about the men in technology?&#8221; (I had the same reaction to a &#8220;mothering group&#8221; being formed and had to ask &#8220;why not include fathers? call it a parenting group?&#8221; but i digress&#8230;)</p>
<p>Anyway, had it not been for the PASS WIT Virtual Chapter, I am not certain I would have heard about this group at all. And that&#8217;s a shame, really, because if there is one thing I have learned in my experience as an IT professional it is that there are many people who need to be made aware of the contributions of the women in their own office.</p>
<p>I recently admitted that writing a <a href="http://thomaslarock.com/2010/05/sql-university-ssis-design-and-development/">SQL University post on SSIS</a> was way outside my comfort zone. Well, you could extend that zone to the planet Venus for this topic, but here goes anyway.</p>
<h3>tempdb</h3>
<p>As always, awareness is the fundamental key to everything you do, and here is no different. For those of you working in an office right now, stand up and look around. See any women around you? Are there computers at their desks? Guess what? Chances are they either work in a technical field (perhaps even IT), or they have some technical acumen.</p>
<p>Know what else? They&#8217;re <a href="http://www.womenintechnology.org/index.asp">organized</a>. That&#8217;s right, a whole organization dedicated to &#8220;<a href="http://www.womenintechnology.org/content.asp?contentid=66">empowering women to be the architects of change in the technology industry</a>.&#8221; I&#8217;m not really sure what change they are trying to architect, but I&#8217;ll assume it is a change for the better. For someone. Probably not me.</p>
<h3>msdb</h3>
<p>At this level you should be actively participating in some WIT event. A great one would be the luncheon held each year during the PASS Summit. I have attended that luncheon in the past and have enjoyed the panel of speakers as well as the table conversations. Yeah, that&#8217;s right <em>men are allowed to attend the luncheon</em>. I know, I didn&#8217;t believe it at first either, but it&#8217;s true. We are allowed to attend, we just need to keep our mouths shut. OK, I made that last part up. We are allowed to open our mouths to eat lunch. But I wouldn&#8217;t even think about going <a href="http://www.youtube.com/watch?v=1z8gCZ7zpsQ">Kanye</a> during anyone&#8217;s panel time.</p>
<p>Also at this level you should be willing and able to increase awareness of WIT. The easiest way to achieve this is to invite others to participate in the WIT luncheon at the upcoming PASS Summit.</p>
<h3>model</h3>
<p>If you want to be at this level then you need to go out and make a difference. You can start right in your own office by being an advocate for a woman you work closely with. What I mean by that is to make certain her efforts are being recognized by the right people (managers, customers). When the time for a promotion comes around, make certain that her skills and efforts are brought to light.</p>
<p>Also, don&#8217;t be afraid to tell someone that their jokes that degrade or poke fun at women are not appropriate, no matter how funny they may happen to be. If you want to tell jokes then go be a stand up comic somewhere, just not at the water cooler in your office.</p>
<h3>master</h3>
<p>At this level you will look to influence the lives of others. I suggest that you start with your daughter, or perhaps a niece if either have taken any interest in things that are related to technology. Find ways to help them to learn more about whatever it is that interests them. Encourage them at every opportunity.</p>
<h3>resourcedb</h3>
<p>Start with these two sites:</p>
<p><a href="http://www.womenintechnology.org/">http://www.womenintechnology.org/</a></p>
<p><a href="http://wit.sqlpass.org/">http://wit.sqlpass.org/</a></p>
<p>And go from there. If you want to contact someone, start with Wendy Pastrick (<a href="http://wendyverse.blogspot.com/">blog</a> | <a href="http://twitter.com/wendy_dance">twitter</a>), she can help point you in the right direction.</p>
]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2010/06/sql-university-women-in-technology-week/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
