Brent Ozar - SQL Server DBA Rotating Header Image

NYC SQL Server event on September 9

Spend a Day with the Experts

Spend a Day with the Experts

Quest Software is throwing a free day-long seminar on Tuesday, September 9, 2008 at the Microsoft Technology Center in New York City.

The agenda focuses on getting the maximum amount of knowledge possible in the fastest time possible.

  • Hit The Ground Running with SQL 2008 (by me) - in 60-90 minutes, I’ll give a fast rundown of how and when to enable some of SQL Server 2008’s new features like the Resource Governor and Policy-Based Management.  My goal is to give you the scripts and the know-how to quickly set this stuff up with confidence and see the benefits.  For example, I’ll give you a few queries that you can use with the new Multi-Server Query feature of SQL Server Management Studio for auditing purposes to help get an inventory of your server configurations.
  • Demos of the Quest portfolio (by Jason Hall) - yes, it’s some marketing here, and you’ll have to sit through demos.  But lemme tell you, if you’re going to sit through any demos, Jason is the guy to watch.  He works with a lot of DBAs, hears a lot of customer pains, and he knows how to show you the real highlights of any of our products in a matter of minutes.  If this was going to be boring, I wouldn’t hype it up, but I’ll put my name on the line and say it’s going to be cool.  I haven’t talked to him about it, but he’ll probably be presenting the new LiteSpeed v5 and the new Toad v4 at least.
  • SQL 2008 Storage Changes: Encryption & Compression (by me) - I’ve seen a few small reviews and demos of these two features around the web, but I haven’t seen a good all-encompassing demo that shows how the two features work together.  (Here’s a hint: they don’t.)  I’ll show how to mix and match them, show how each one can be used effectively, and give you the scripts to go back and implement it on testbeds.
  • Microsoft System Center Operations Manager 2007 for DBAs (by Tom LaRock) - SCOM/MOM has a good reputation as a Wintel admin tool, but out of the box it doesn’t really monitor everything DBAs want to know.  Tom has put the time and effort into building his own set of monitors to really help DBAs take advantage of the SCOM infrastructure.  He’s a member of the Quest Association of SQL Server Experts, a DBA team lead for ING Investments by day, and by night he roams the streets of Gotham fighting bad T-SQL coders.  But more on that later.

The seminars are free, and breakfast and lunch will be provided.  You can register for it here: Become a SQL Server Rock Star with Quest in NYC.

If you can’t make it to the seminar, but you still want to meet up with one of the experts, some of us will be in town the day before & after for meetings.  Drop me an email and we’ll see if we can work out a meetup.  I’m also working in a field trip to Brooklyn Superhero Supply - I’ve wanted to visit that place ever since I read this article about it and saw these pictures.  I’d love to have some of this stuff to give away as swag.

LiteSpeed v5.0 is out!

Presto chango, version five.

This one was in the oven long before I arrived at Quest back in May, and I’ve been using it for the last couple of months.  Some of the big improvements are the ability to query backup files just like databases, the Backup Analyzer that automatically tests a bunch of compression & encryption methods for the best match on your server, much easier log shipping, the ability to read transaction logs to generate undo & redo scripts for transactions, and an all-new user interface from the ground up.

When I was working with the documentation team to tweak the v5 readme file, I had to pinch myself - I couldn’t believe I was actually working for Quest, actually a part of the team that makes this cool stuff.  As a DBA, this is about the best job you can have.  I’m really lucky.

I could just go on and on, but I won’t - for more info, hit the official Quest LiteSpeed v5.0 site.  If you have questions about 5.0, the best place to ask is on the Quest SQL Server Forums.

And now, if you’ll excuse me, I’m emailing back and forth with the LiteSpeed head honcho about what we should include in v5.1.  Time to go pinch myself again….

SQL Server on a SAN: Dedicated or Shared Drives?

A reader wrote in and asked:

We’re running SQL Server with blades and a NetApp SAN. We have a few hundred databases from 100mb to 200gb.  All data, logs, tempdb, etc. are located in the same 30-disk pool.

Apparently this was setup using NetApp’s guidelines. NetApp recommendations are to put everything in one aggregate, or a couple of aggregates with the caveat that performance will suffer if you don’t use all disks in the same aggregate. They actually recommend putting data and log files together!

Have you ever seen anything like this before? Is this a stable system or is it craziness?

By the way, your blog is absolute genius!  I love everything you’ve ever read, and your SQL Server expertise is surpassed only by your good looks!

(Okay, so maybe I added that last paragraph myself.)

First off, yeah, I’ve seen that before, and it’s not craziness.  There’s times when this is the right way to do a SAN configuration, and there’s times where it’s wrong.  Some SAN vendors (like EMC and NetApp) recommend this type of configuration as a default, and they only recommend changing it when you can justify better performance in a dedicated drive setup - meaning, physical drives are dedicated to specific tasks, like a six-disk raid 10 setup for your transaction logs.

Before I give an answer for this one specific scenario, let’s talk about the decision factors.

When you’re choosing between two things, you want to be as specific as possible about the options.  If someone asks you what’s better, a Chevy or a Mercedes, you can’t just say Mercedes.  They may be asking about a late-model Corvette versus a clapped-out 1970’s Mercedes wagon.  Or that Mercedes might be pristinely restored, whereas the Corvette’s been in an accident.  You get the idea.  If you were choosing between cars, you’d want to know the age, the mileage, and what the person wanted the car for - performance, family travel, reliability, etc.

When you’re choosing between SQL Server storage options, here’s what you need to know about each of your choices:

  • The number of drives - sounds simple, but try to get that information out of your SAN administrator in a shared-drive environment.  Then, just for laughs, ask them, “If I was going to take my drives out of the shared pool and switch to my own dedicated spindles, how many spindles will I get?”  It’s probably going to be a pretty small number, and you’ll need to know this before you decide to switch.
  • The RAID level - some SAN vendors will say that the RAID level doesn’t matter anymore, and in huge shared pools, that’s vaguely true.  A 30-drive RAID 5 and a 30-drive RAID 10 are going to overwhelm your HBAs anyway.  However, in dedicated drive setups, we’re probably talking about much lower numbers of drives, and then it starts to matter.
  • The peak load windows for other apps on those drives - if you’re sharing drives with a couple of tiny servers, and you’re the biggest load in the group, then this probably isn’t an issue.  On the other hand, if you’re sharing drives with a large ERP system with hundreds of users that all log in around 8am, you’re going to want to expect that.
  • The backup method - if you’re using SAN snapshots, you want as many spindles as possible to make your backups less invasive.  I’m not saying SAN snapshot backups are invasive, but if you suddenly present that snapshot to another server on the SAN, your load on those hard drives just doubled.  That changes your SAN bottleneck, and for this, you’ll want shared spindles.
  • The current performance bottleneck - I could write a whole session just on finding your current SAN bottleneck.  Oh wait - I did, and I’m delivering it via videoconference soon!  Well, to condense it into a single bullet point, you need to find out where your performance bottleneck is, because it may not be your hard drives.  You want to focus on your bottleneck first, eliminate it, and then move on to the next bottleneck.  If the current one is the drive arrays, then even moving to dedicated spindles may not be the answer if we don’t get enough of them (see our first bullet point).
  • And there’s more - like the amount of time you want to spend managing the SAN, whether you want to use SQL Server partitioning, and so on - but these are a good start.

Now that we know the questions, let’s look at some of the answers for this one scenario.

The number of drives - right now you’ve got 30 drives in a single pool for a cluster.  If you carved it up into dedicated drives, you might do something like this:

  • 12 drives in a raid 10 for data
  • 10 drives in a raid 10 for logs
  • 8 drives in a raid 10 for TempDB

I’m just pulling these out of the air to illustrate that you’ve got a lot of drives, and you can play around with the config here.  To make a good design decision, you’d want to know the read/write mix and the activity on TempDB.  Bottom line, you’ve got enough drives that you could get some performance with dedicated drives instead of shared.  If you were running, say, 10 drives altogether in the pool, then the decision changes.

The backup method - NetApp’s snapshot solution has some great SQL Server integration, so just generally, if you’re using NetApp, I would use a shared drive config.  You may not be using their snapshots now, but as your databases get bigger, it’s nice to have the snapshot option available.  If your backup window gets out of control, call your NetApp guys about getting a demo.

The current performance bottleneck - it takes a lot of work to figure this out, but the key word in the question was “blades”.  I love blades, but I’ve seen a few implementations where people have shoved a bunch of SQL Servers in a single blade chassis, only put two HBAs in each blade, and only used two fiber cables to connect the entire blade chassis to the SAN.  That means all of the servers are choking on a small amount of bandwidth.

When we look at these answers together, I’d say that the shared drives are not holding back this server’s performance.  Before changing from shared to dedicated drives, I’d add HBAs in each SQL Server, enable & test multipathing software, and connect the blade chassis to the SAN infrastructure with as many fiber cables as feasible.  Otherwise, changing from shared to dedicated spindles for this setup won’t make a performance difference.

At the same time, I would only make these changes if you’re seeing disk performance bottlenecks on the SQL Server.  (This reader mentioned that he used Quest Spotlight, and it’s easy to see this in Spotlight.)

Does that mean NetApp’s original recommendation was right?  Not necessarily, but here’s why they do it: most people have setups just like this.  People will throw hundreds of thousands of dollars into a storage controller and a bunch of drive enclosures, only to kill the performance by not giving it any bandwidth.  The more time and effort you put into the setup around the edges, the more it’ll pay off in performance.

Twitter 101

So somebody talked you into using Twitter, and now you’ve got a few questions.  Here’s a few answers in no particular order:

RT = ReTweet

ReTweet

ReTweet

It’s like forwarding, but for Twitters instead of emails.  If you see something really cool from one of the people you follow, you may want to ReTweet it so that the people following YOU (and not the original person) can see it.

In the example above, amateria is repeating something from kfoxaz about a new music service.

Note that this is only useful if you have followers that the original person doesn’t have - meaning, if you’ve only got a couple of followers, you probably shouldn’t bother with ReTweets.

This is slang, not a system function.  Twitter doesn’t do anything special if you put in the RT.

OH = OverHeard

OverHeard

OverHeard

If you hear something funny or insightful with your ears (as opposed to reading it on Twitter) and you want to repeat it, you can prefix it with OH.  Generally, this is used anonymously, not for quoting people,  so you tend to read things that might be personally embarrassing to whoever actually said it.

In the example above, nmyra overheard a funny slam, but she’s being polite and not telling us who slammed who.  It’s enjoyable to try to reverse-engineer who she’s around at the moment, but that is left as an exercise for the reader.

This is slang, not a system function.  Twitter doesn’t do anything special if you put in the OH.

@ Replies

Reply

Reply

If you start a Twitter with a user’s name, like @imelda, the message is considered a “reply” to that user.  The reply shows up in the user’s Replies page on Twitter.

In the example above, TheFuzzball is telling Imelda about a place with a great veggie burger.

Here’s an interesting side effect: this reply will only show up in your Twitter page if you follow both TheFuzzball AND Imelda.  If you follow just one or the other, this conversation won’t clutter your incoming Twitter stream.  This is Twitter’s way of keeping “personal” Twitter conversations out of the mainstream.  You probably wouldn’t find this conversation interesting unless you could hear both sides of it - for example, if I was only following TheFuzzball (not Imelda) and this Twitter came into my list, I’d have no idea what restaurant they were talking about.  But since I follow both of them, this remark is useful to me, because I can see what Imelda was talking about before TheFuzzball replied.

Otherwise, if TheFuzzball had just put @imelda anywhere else in her tweet other than the beginning, the tweet would be visible to all of TheFuzzball’s followers, not just those who follow both TheFuzzball and Imelda.

In the example below, since KeviKev started his post with something other than a username (”Hey”), everyone who follows him will see his post - not just people who follow both him and amateria:

Name Dropping

Name Dropping

This is a real system function, not slang.

Links From TinyURL.com, Bit.ly, Ping.FM, BKite.com, etc

Short Link

Short Link

Twitter posts can only be 140 characters long, and sometimes we want to post longer URLs or post URLs along with a long description.  You can shorten long URLs with a service like TinyURL.com or Bit.ly.

People aren’t trying to hide or obfuscate their links (usually, anyway) - they’re just trying to cram more info into 140 characters.

When posting links with these services, please be polite and include a description along with your tweet.  Your followers may get hundreds of tweets per day, and before they click on a link, they want more information than just “Check this out!” or “Wowsers!”

In the example above, alexknowshtml is telling his followers about some improvements to Anthillz.  He did a great job of explaining what he’s linking to and why he’s linking to it - plus the link - all in 140 characters or less.

“I’m at” Posts From BKite.com

BrightKite Location Post

BrightKite Location Post

BrightKite is a location-based social networking site where you can “check in” at a physical location, see who else has been there, and get alerts when other users check in.

In the example above, Jeremey is checking in outside of Houston.  When you see something like this, you can click on the bkite.com link to see a map of where he’s at and what else is going on near him.

To use this integration, you have to sign up for a free BrightKite account and set it up to post to Twitter.

Time Posts at 11:11, 3:33, 4:44, etc

11:11

11:11

When all the numbers match up on the digital clock, it’s time to make a wish.  Or Tweet.  Or drink a shot.  Or all of the above.

Looking for good people to follow?

On the Twitter.com web site, click on the name of a person whose updates you find interesting.  You’ll be taken to their Twitter page, and on the right hand side, you can click on “Following”.  That gives you the list of people THEY follow.  Sometimes (but definitely not always) you’ll find them interesting too.

For example, if you’re following me on Twitter, and you like the stuff I say, well, you’re crazy.  But even crazy people like to find other crazy people, so you could click on the Twitter people I follow, and see if any of those people strike your fancy.

The problem is that Twitter doesn’t have a “groups” function, so when you’re looking at the 100+ people I follow, you can’t tell why I’m following them.  I follow some people because they live near me, some people because they work at the Caroline Collective, and some people just because they’re drop-dead funny.

If you’re into Microsoft SQL Server, Jason Massie maintains a great list of SQL Server people who Twitter, and I’m not just sayin’ that because I’m the first guy on the list.

Got More Questions?

Check out help.twitter.com or the Twitter Fan Wiki, or post your questions here and I’ll expand the post.

Quest partnering with Solid Quality Mentors

The DBA job market is tight all over the country.  Everybody’s having a hard time finding good database administrators at the price they’re allowed to pay.  (I can personally vouch for this because I get a handful of recruiter calls every day asking me to relocate to every state in the country.)

At the same time, the role of the DBA keeps expanding.  We’re being asked to manage more servers - not just database servers, but related applications like Sharepoint.  (The data goes in SQL, right?  Give it to the DBA, she’ll manage it.)

Compounding the problem is that DBA training is just as hard to find as a good DBA, so it’s hard to take a junior DBA or a developer and simply send them to training to become a full-fledged DBA.  The attendees lamented the lack of quality DBA classes - boot camps taught by non-DBAs just don’t cut it.  The attendees asked Quest to make it easier to take junior DBAs, put them in more challenging roles, and equip them with tools and knowledge to get the job done faster.

Even good DBAs don’t have the luxury of doing constant performance tuning on a wide array of servers and applications, finding out what methods work best, and staying on top of changes in the engine itself.  That is a full time job, and it’s even tougher to find people who are good at that.

So how does a software company help?

Quest is partnering with Solid Quality Mentors to build more know-how into Quest products and offer more services.  SolidQ is a well-known and well-respected group of seriously smart SQL gurus, especially in the field of performance tuning.

What this means for DBAs is that Quest’s SQL Server tools will start including features specific to SolidQ’s tuning and monitoring advice.  Quest isn’t just slapping a SolidQ label on the software: SolidQ is giving valuable feedback about new features, new counters to monitor, and how to interpret those counters.

Why should you care?  Because this is another example of how Quest is out to make you, the DBA, look a rock star.  They’re not just monitoring a bunch of outdated statistics and saying it’s good enough - they’re bundling high-end SQL Server knowledge straight into the tools.

For more info about how the partnership came about, check out this Quest-SolidQ podcast with Douglas Chrystall, Heather Eichman and Brian Moran.

(Disclaimer: this is my personal opinion, not vetted by anybody at Quest.  Your mileage may vary.  Purchase not necessary to win.  It’s log, it’s log, it’s better than bad - it’s good.)

SQL P2V: What Really Killed the Dinosaurs

Say we have a physical database server sitting over there in the rack.  For the sake of discussion, let’s pretend it’s a slightly older model, a HP DL380 G2 with a couple of P3 CPUs, 4gb of ram, and six local 36gb drives.  The storage is broken up into a mirrored pair of drives for C (the OS), and a four-disk raid 5 for the data and the logs.  (No, that’s not best practices, but it was built before we came to work here, and you know how that last DBA was.)

It serves the databases for our help desk software.  It’s a dedicated machine with no high availability solution: not only is it not clustered, but we don’t even have another DL380 G4 in the shop that we could replace it with if we had a hardware failure.  If this box goes, we’re in trouble: we have to drop everything and rebuild it with whatever hardware is lying around the shop at the time.

To make matters worse, it’s SQL 2000, and it has some applications installed on it.  It’s got some kind of help desk service on it that does something to the database, and nobody knows exactly how it works.  We try not to look directly at it, because we’re afraid it will crash, and we’ll be out of luck.

It’s a dinosaur, and we need it to go away.

In A Perfect World, The Dinosaurs Don’t Fight Back

In a perfect world, we’d buy a new server, transition everything to SQL 2008, get the help desk vendor to do the installations, get the help desk group to test the application, and have a controlled, orderly migration over to the new platform.

How often does that happen?

All that costs money, and all that takes time - two things we can never seem to keep around the shop.

The help desk department won’t put any money in the budget because they’re happy with the performance.  They don’t need it to go faster, they don’t need high availability (because SQL just works, right?) and they don’t want you to touch it because it might break.

We DBAs want to make sure that if the hardware fails (because sooner or later it will) we’ll be okay, and we won’t have to drop everything to rebuild something we don’t really understand.  Unfortunately, we can’t get the budget money either, and even if we get the money, we don’t always get the time.  We need the process to be seamless and fast, and maybe even nearly free.

Enter the Physical to Virtual (P2V) Process

If you haven’t done a P2V migration before, you’re going to think I’m crazy.  You’re going to call this stuff a big fat lie, a bunch of vaporware that can’t possibly work.  I know: I thought the same exact thing before I started doing it a few years ago.  I still get a big grin on my face every time it works, because it’s such cool technology.  As you read through the next couple of paragraphs, just bear with me and trust me - it really does work.

The process goes like this:

  • Take a backup of the dinosaur
  • Shut the dinosaur down
  • Create a new virtual machine in a VMware ESX or Windows 2008 Hyper-V farm
  • Restore the dinosaur’s OS and data to it
  • Power on the new virtual dinosaur

By now, probably half of you have called BS.  The other half of you are about to call BS when you read this next sentence: the new virtual dinosaur is going to need a completely different set of drivers for the virtual server’s storage, networking and video.  Wow.  How often have you been able to pull hard drives out of one model of server, slide them into a completely different model of server, and have everything work correctly?

Back in 2005 when I started doing this, it was rocket science, and it was scary.  It went wrong more often than it went right, and I earned a lot of my gray hairs on lonely weekend nights in the datacenter.  However, even when it goes wrong, it’s still not that bad, because we have our original physical server standing by.  If the P2V process doesn’t work, we just power the physical server back on, and the data is untouched!  Things keep chugging along the way they were, and we can try the P2V process again in a couple of weeks after we’ve recovered.

You, dear reader, are lucky.  You have the good fortune to not be an early adopter the way I was, and you can buy a package off the shelf to do this stuff - or just download one, because there’s good free ones out there too.  Search for P2V, and you’ll find a ton of reviews.  (Disclaimer: the company I work for makes one of the products, but I’m not doing marketing today - just talking about your options.)

These solutions take P2V to the next level.  Here’s how easy they make the process:

  • Create a new virtual machine in a VMware ESX or Windows 2008 Hyper-V farm
  • Install the agent on the current physical dinosaur
  • Shut down SQL Server (but leave the OS running)
  • Take a VSS snapshot of the dinosaur’s drives
  • Copy the data over the network to the new virtual server
  • Shut down the old physical dinosaur
  • Power on the new virtual dinosaur

The cool part is that since they’re installed while Windows is running, and since they work while Windows is running, you avoid a lot of the hardware-specific driver issues.

SQL Server in Virtual Machines?  Are You Crazy?

I know: I talk to you folks out there, and you hate the idea of virtual SQL Servers.  I feel your pain.  But before you throw this idea out the window, stop and think about the alternative.  Our options are:

  • Keep the old physical dinosaur up, wait for it to die, and then run around in a panic
  • Wait for budget money we’re never going to get
  • Virtualize the server and have it perform better than the original hardware

Remember, even though it’s a virtual server and it may have some performance penalties, we’re still talking about virtualizing hardware that has already outlived its usefulness.  When you move a SQL Server from an old P3-based system and a few gigs of ram onto a new Xeon-based system and maybe crank up the ram a little, performance will go up - not down - as long as you’re not heavily oversubscribing your virtual server farm.  (That’s a separate discussion.)

Running virtual SQL Servers isn’t the best solution.  The best solution is for me to be driving a Porsche 911 Targa while my army of junior DBAs manage my crisp, newly installed SQL Server 2008 boxes.  But stop getting distracted from ideals that will never happen, stop trying to kill the dinosaurs with a cardboard sword, and do what you can with the tools you have.

Recommended Books for SQL Server DBAs

There’s a ton of SQL Server books out there to help get you started on the road to becoming a database administrator.  For the SSWUG SQL Server Virtual Conference, the presenters were asked to put together their list of recommended books.  My list is going to sound absolutely crazy, and they’re not going to put the speaker’s notes next to why they recommended the books, so I gotta break down my list here so you folks don’t think I’m an idiot.

I’m going to start at the start of your career, and go forward:

SQL For Dummies by Allen G. Taylor.  Seriously, start here.  Notice that I didn’t say Microsoft SQL Server for Dummies, which also exists and may be a great book, but here’s the thing: you need to start by learning the real basics of SQL, the language, not the product.  As a database administrator, you’re going to be interacting with people who started in Oracle or Access, not just SQL Server, and they may be using slightly different ways of writing SQL code.  If you get started by writing SQL in the ANSI style the way this book teaches you, and if you start by thinking about the language instead of the boxed product, you’ll be better equipped to deal with all of your different customers.

After that one, go to your bookstore and pick up whatever Microsoft SQL Server book is current.  I gotta be honest: once you’ve been a DBA for a while, you don’t read books at this particular tier.  For example, right now I’m knee-deep in SQL Server 2008, and the relevant books aren’t out yet.  By the time the books come out, I’m going to know what I need to know, and I won’t be reading those books.  Instead, I’ll be digging into books like the next one in the list, but don’t pick up this next one until you’ve been working with SQL Server for a year.

Inside Microsoft SQL Server 2005: The Storage Engine by Kalen Delaney.  You waited a year into your career before reading this, right?  If you don’t, this book is going to scare the pants off you.  It’s seriously good, but it’s seriously technical.  If you find yourself devouring the information in this book, then you’re going to be a fantastic DBA.  If you groan and close the book, then you want to modify your career path and go down a slightly different road - still with SQL Server, but not as a hard-core DBA.  Instead, think about becoming a SQL Server developer (concentrating on stored procs, views, etc), an SSIS or SSRS developer, or maybe a developer DBA (working with developers to manage their models & designs.)

SQL in a Nutshell by Kevin Kline, Daniel Kline and Brand Hunt.  After conquering that last book which was specific to Microsoft SQL Server, head back into the multicultural direction with this monster.  The Nutshell name is pretty deceiving - this is one thick read - but it gives answers for multiple database platforms.  As a SQL Server DBA, sooner or later you’ll get asked to work on an Oracle or MySQL box, and this book will help you relate concepts across platforms.

How to Become CEO by Jeffrey J. Fox.  DBA and CEO have more in common than just their letter count.  This is a thin, easy-to-read book that preaches great ideas about how to work with integrity, how to make things happen, and how to actively manage your relationships.  Being a DBA is a lot like running a company: some of your databases are going to “lose money”, and some of them are going to be really successful.  Your job is to minimize the losers and maximize the winners.

Had a photo shoot by Tracy Manford

I had a photo shoot yesterday by Tracy Manford to get some new head shots for presentations and whatnot, and I’m absolutely thrilled with how they came out.  Hopefully you, dear reader, have never seen me before, because her photos make me look gooood.  I’ll write more about this later (I’m on a short trip through Michigan at the moment) but I had to post a link up.  These photos are so darned good that I’m going to redo the theme on my blog just to blend in with the color scheme of my new head shots.

Check out Tracy Manford’s photos of me, or check out Tracy’s blog or her Twitter feed.  If you’re in the Houston area and you need gorgeous photos done, you need to talk to her.  She’s absolutely hilarious, makes the whole photo shoot fun and enjoyable, and she’s just a great person to know.

New Kevin Kline video blog on efficiency & effectiveness

Kevin Kline posted a new video blog entry on efficiency & effectiveness.  One of the things he talks about is limiting the number of things on your plate.

This is so important for DBAs because people are always running into our corner offices (okay, cubicles) and begging (okay, demanding) that we drop everything and focus on their problem.  Everything’s always urgent, and everybody’s always important.

Kevin mentions a tactic I’ve used for years, and I’ve even already used a few times at Quest!  Simply agree with the person - no matter how ludicrous their request - and say, “Absolutely, I’ll work on that right now.  I need your help, though: I’ve got these other two things that I was supposed to finish ASAP.  Which one of these things should I drop to focus on yours?”

Don’t say it in a cocky way, don’t be a jerk, and be serious.  It’s possible that this new customer is making demands because the CEO is coming around the corner behind them (I’ve had that happen) and their request really is urgent.  As a DBA, you work for everybody in the company, and we need everybody’s help to prioritize our work.

When the customer sees what you’re working on, they may stumble and realize that theirs isn’t urgent.  Offer them two options: either help them find somebody else to do the work, or put it in your queue at a lower priority.  If they choose the first option, your work is done, but if they choose the second option, you can’t let the ball drop.

The better you are, the more work people will give you, and the longer your queue gets.  I use the GTD philosophy to manage this, and I use RememberTheMilk.com to handle the execution.  Whenever anyone gives me something to do, it goes straight into RememberTheMilk with a priority.  I will literally turn the screen around and show the customer my list of to-doos, and say, “Alright, where does yours fit in here?”

Again, don’t be a jerk when you say that.  I really don’t care what I do first.  I’m a good employee, and I’m going to be busy until the day I retire.  I don’t choose tasks based on what I think is cool - I choose tasks based on what my customers want.

When they see the avalanche of to-doos, they’ll slow down with the urgency, and they’ll help make a better decision on what the real priority is.  And even if they don’t, just agree at the time, put it into your task list, and then review your task list with your manager every week.  If there’s a disagreement in priorities between your manager and the customer, don’t worry, because it’s not your problem.  Simply arrange an email, meeting or call between the two, let them hammer it out, and let them come to an agreement.  You will be AMAZED at how many managers love to play the bad cop to protect their employee priorities.  (Not all of ‘em, but you would be surprised.)  Plus, sometimes managers need to do this because they want to justify more staff, and by showing the customers there’s too much work, they can get more help in building a budget.  You do want help, right?

Finally, once something is in your to-do list for a customer, you have to follow up.  Every week, I review everything in my to-do list, and if somebody’s actively waiting on something, I’ll drop them an email to explain what’s ahead of them in the queue.  Your goal is to email them before they email you, because then you’ll look proactive.  It only takes a few minutes to go through your list and send a copy/paste email to each person, and CC your manager on each email.

Sound like a lot of work?  Once you get into the hang of it, it’s not bad, and it makes your job - and your entire career - a lot easier.  If it sounds interesting, check out GTD:

SQL Server Virtual Conference: A $100 Bargain

Lemme play psychic for a minute.  Put your hands on the monitor, and I’ll tell your future.

It’s coming to me…wait…I see.  Your boss is cutting your budgets.  You know those conferences you wanted to attend?  Those ones that were going to require expensive airfare and hotels?  It ain’t happening.  Sure, the boss might not have told you yet, but it’s coming.

You need a plan B, and I know just what it is: the SQL Server Virtual Conference.  For just $100, you get to watch me and a whole bunch of other people give video presentations on topics.

This $100 conference isn’t just a way to cut conference costs: here’s how  you sell it to the boss. “Boss, while I was washing your car, I got to thinking.  For $100, I can get access to this virtual conference, and they’re going to cover a bunch of topics that would take me weeks to research on my own.  The SSWUG presenters are really good, and here’s the best part: they have Q&A sessions.  I can ask them questions about issues that we’d normally have to call consultants for.  The Q&A sessions are like picking the best brains around - and I don’t even want to think about how much it’d cost to ask Stephen Wynkoop or Paul Neilson a question.  Heck, I bet they bill out at $100/hour by themselves - and for $100, I get hours and hours of sessions with these folks!”

Looking deeper into my crystal ball, I can tell you that I’ll be doing a few presentations:

Dealing with Virtual Database Servers (400 Level)

So the sysadmins told you they’re virtualizing your servers, and they told you to just get over your fears.  In this session, we’ll talk about real-world experiences with virtual SQL Servers and discuss how to help your sysadmins avoid implementation mistakes that will kill SQL Server performance.  You’ll learn:

  1. Why a virtual disk drive isn’t a normal disk drive
  2. How virtual server resource allocation works, and how it impacts SQL Server
  3. Why performance monitoring works differently for virtual servers

Attendees should be familiar with performance tuning concepts like using Perfmon and selecting RAID levels, but don’t need any familiarity with virtualization software like VMware or Hyper-V.

SAN Tips for First-Time Users (300 Level)

Considering moving your databases from local disk to a SAN?  This session will cover some of the risks and rewards, as well as tips and tricks that the sales folks don’t cover.  We’ll talk about how to get the most out of your SAN from the beginning with a good initial design.  The session goals will include:

  1. The difference between shared drives and dedicated drive allocations
  2. Weigh the pros and cons of SAN snapshot backups
  3. The iSCSI versus Fibre Channel decision process

Attendees should be DBAs or managers thinking about SAN storage, but no SAN experience is required.

Finding your Storage Bottlenecks with SQLIO (500 Level)

This session will explain common storage bottlenecks with real-world examples.  I’ll explain how to use Microsoft’s free command-line tool, SQLIO, to probe your environment for these bottlenecks.  Finally, I’ll talk about how to share these results with your SAN team to work together on improvements.  I’ll talk about:

  • Speed limits at the HBA, SAN switch, multipath and SAN controller levels
  • Show how to probe those limits with SQLIO
  • Explain how to compile SQLIO results into a database for reporting and comparison

Attendees should be senior DBAs with a few SAN-connected servers that want to understand why performance isn’t what they expect.

Virtualized Storage Pros & Cons (300 Level)

I’ll talk about the advantages for database administrators and some common implementation pitfalls.  You’ll walk away with at least 3 pieces of knowledge:

  1. What virtualized storage is, and how it’s different from the SANs of old
  2. How virtualized storage can help with new servers
  3. How to plan to migrate existing servers to virtual storage

Attendees should be familiar with basic storage concepts like arrays, luns and RAID levels.

Why You Should Attend My Sessions

SAN gear costs hundreds of thousands of dollars.  Wanna know what happens when you make the wrong buying decision?  Here are your options:

  • Blow a few hundred grand on SAN gear
  • Burn through tens of thousands on SAN consultants
  • Hear my horror stories for just $100

I’m biased because these are my sessions, but I tell ya, if you’re even considering SAN storage or virtualization as part of your database strategy, my seminars alone are worth the $100 entry fee.  Go talk to your boss, and then register for the SQL Server Virtual Conference.

Now take your hands off the monitor.  Ah, I see Windex in your future too.