Monthly Archives: October 2009

Wiki Article of the Month Winner – Sankar Reddy!

Sankar Reddy (BlogTwitter) put a ton of work into SQLServerPedia over the last couple of months, banging out some great wiki articles:

A group of SQL Server DBAs and bloggers voted the DBCC CHECKDB date article as the Wiki Article of the Month!

The winner of the Article of the Month gets perks big time. They get a Box O’ Swag, and they’re invited to join the Quest Experts Community. The Experts get licensing & support for the Quest SQL Server portfolio (LiteSpeed, Spotlight, Performance Analysis, Capacity Manager, Change Director, Toad, etc.), early downloads of betas, inside access to Product Managers, and more. (Coincidentally, Microsoft MVPs get this same access – if you’re an MVP and you didn’t know about this, go register for the community now.)

If you’d like to see your name in lights, check out the How to Contribute page at SQLServerPedia. If you’re not sure what to write about, check out the article requests by section. These are topics our readers have found interesting or would like to learn about. When you’ve picked a topic, shoot me an email and I’d be glad to help you get started. You can use material you’ve written for other sites, too, like your own blog.

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

How to Use Twitter Lists

The Simple Twitter Book

Download My Free Twitter Book

Twitter’s newest feature, Twitter Lists, let you do two things:

  • Follow people without really “following” them
  • Follow topics, not individual people

For example, I do a lot of database work, so I’ve built a SQL Server Twitter list.  It’s got over 300 people who are active in the SQL Server community, but I don’t need to hear their every tweet.  I just want to be able to stick my head in the SQL Server world every now and then and see what’s going on.

When I go to my home page, I see a list of Lists on the right hand side.  I can click on these lists and see what the group of people is up to – but I don’t actually have to be following those people.

The first question you probably want to ask is, “So Brent, how do I make a list?”  Well, hold up – lemme show you something else slick first, because you might not want to make your own.

How to Follow Someone’s List

Lists on My Twitter Home Page
Lists on My Twitter Home Page

Go to http://twitter.com/BrentO/lists and you can see my lists.  Click on any list, and you’ll see the current activity in that list.  Click the Follow button, and the list will be added to your home page.

Here’s the best part – you’re not actually following the people on that list.  It doesn’t clutter up your home page, and you don’t have to keep on track of new group members or keep it clean from spam.  Somebody else is doing the work for you!

Here’s my lists:

How to Find More Lists

Listorious is a Twitter list directory with a list of their Top 100 Lists, plus some fun ones like:

How to Create and Manage Twitter Lists

Twitter Lists button

Twitter Lists button

Even with the abundance of great lists out there, you’re still going to want to create your own family, friends, and coworkers lists.  When you’re viewing anyone’s Twitter profile as shown here, click on the Lists button.  You can add them to any of your existing lists (only the ones you manage, not the ones other people started) or create a new list at the bottom.

The best part is that you don’t have to follow someone in order to add them to a list!  I’ve got dozens of people in my SQL Server list that I’m not actually following day-to-day.

A faster way to add multiple people is to go to your friends page, and click on the Lists icon next to each person – but of course this only works for the folks you’re following.

This is still painful, but good news is coming.  Twitter clients like TweetDeck are already hard at work converting their group features into lists instead, because lists are accessible via the Twitter API.  In the near future, you’ll be able to manage your Twitter lists from inside TweetDeck without bailing out to the clunky Twitter web user interface.

If used right, this will help you stay in touch with more people without cluttering up your Twitter stream.  For example, I can see myself following more Microsoft employees, more Chicago area news sites, or folks from my hometown – without actually having to follow their every word.  If you see someone unfollow you, it might not be personal – they might just be following you through a list instead.

Wonder Who’s Got You In a List?

Lists You Show Up In

Lists You Show Up In

On your Twitter home page in the right side, under Lists, click View All.  After the page loads, click the Lists Following You tab.  You’ll see the lists of lists you appear in.

I find this hilarious, because I can see what kinds of lists other people are building, and how they name ‘em.  At the moment, I’m in lists like “engaging” and “all-things-geek.”  Can’t argue with that.  You can also see the number of people following that particular list, and how many people you’re matched up with.  It’s a neat way to find friends you might not have otherwise stumbled across.

More of My Twitter Articles

Want More Blogging & Twitter Tips? Follow me on Twitter. I tweet whenever I post a new blog entry, so you’ll always know when I’ve got new stuff. See you online!

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

My Weekly Bookmarks for October 30th

Here’s my bookmarked links for October 26th through October 30th:

SQL Server Links

#SQLPASS Links

Tech Links

The Junk Drawer

These bookmarks are automatically imported from my bookmarks at Delicious.com. If you’d like to get up-to-the-minute updates on what I’m bookmarking, you can subscribe to my bookmark RSS feed.

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

What Community Means to Me

The recent PASS Board of Directors election and the PASS Summit made me stop to think about what community means to me.

Community Means Connecting, not Credentials

You don’t have to do the secret handshake to comment on my blog, to ask me questions at the PASS Summit, to answer questions on StackOverflow, or to write articles at SQLServerPedia. The simple fact that you found these places means you’re in the club. You connected.

From the point you stumbled in here, you’re judged on the contributions you make, not the certificates on your wall. We have no clue who’s got their MCITP or who finished college, and even if we did, it wouldn’t matter because I haven’t done either of those. You don’t have to prove yourself here. Just be yourself, and talk to the rest of us.

Community Means Constantly Congregating and Chatting

People bond by being in the same place and doing something together. On the net, that usually means talking. The intertubes are rife with chatrooms, forums, and messaging technologies, yet new ones still keep popping up out of nowhere.

Last week during the PASS Board of Directors election, people suddenly found themselves with a hot topic – yet nowhere to discuss it. They talked a little on Twitter, but because there wasn’t a hash tag or an easy way to follow the conversation, the talk moved over to the comments on Matt Morollo’s interview page. My blog is by no means an official PASS meeting place, but since PASS doesn’t have chat rooms or an election forum, my blog’s comments were the next best thing. Make no mistake – nobody deliberately said, “Come discuss the PASS Board election on Brent’s web site.” It just happened that way by accident.

Several weeks ago, when SQLServerPedia started distributing t-shirts with a derogatory quote about Microsoft Access, people needed a place to talk.  There was no official SQLServerPedia T-Shirt Forum because we didn’t expect we’d need it, but we ended up with a lively discussion in the blog comments.

When StackOverflow.com started, Jeff Atwood (the founder) fought against having any kind of discussion forum. He hated “meta” discussions, discussions about the site itself. He wanted people to focus on answering programming questions and not spend their time talking about people doing the answering. He lost – underground discussion groups sprung up all over the place. Eventually he gave in and started Meta.StackOverflow.com, a place where people could talk about StackOverflow.

I could go on and on, but the point is that unsanctioned spontaneous conversations will always happen. People are desperate to connect.

Community Means Crazy Chaos, Not Calm Continuity

At any given moment, I can open up Twitter and be surprised by something that’s going on out there. You folks find all kinds of wacko links, neat ideas, new companies, and other things that make my job easier.

My job at Quest is to empower the community to do amazing things. If I tried to be some kind of project manager for the webernets, nobody would ever listen to me. All I can do is watch all the cool things going on, identify the best ideas, and figure out how to make them happen.

Perfect example – several months ago, I started building out a set of pages in SQLServerPedia’s wikis that would lay out an educational track for new database administrators. I tried carefully planning out the subjects I wanted to cover, organize them in a way that would flow well, and prune the content. It wasn’t the top thing on my agenda, so I didn’t make much progress.

Then out of nowhere, Jorge Segarra announced SQL University – a series of blog posts to do exactly the same thing. Instead of trying to take it on himself or project-manage it, he simply contacted the best bloggers and people who get ‘er done. He said he’d put together a Google Docs spreadsheet with a list of topics, and invited people to blog about them in some kind of orderly fashion. In a matter of days, people lined up the content, posted blog entries, and wrote some hilariously good stuff.

Jorge embraced the chaos, and it paid off. I’d tried The Old Way, but it just doesn’t work as well anymore. As soon as I saw Jorge’s effort, I knew it would succeed where mine had failed, and I was completely okay with that. My end goal is to help the community, and I can’t do that by keeping them under my thumb.

Community Means Creativity, Not Coordination and Control

The more people that participate in any community, the less likely it is that you’ve got the best ideas or the best execution.

Even if you think you run the joint.

You might be smart, but you’re no match for a dozen, a hundred, or a thousand other people. You’re going up against the proverbial monkeys with typewriters, and some of those chimps are banging out some pretty good stuff.

I work in the marketing department at Quest, and I work with people who do marketing full time. They went to college for marketing, they’ve been trained on marketing, and they’ve forgotten more about marketing than I’ll ever know. But check out some of the things we’re doing at the PASS Summit this year:

  • Twitter testimonials in the SQLServerPedia booth – we needed stuff to put on the wall of the SQLServerPedia booth, so I posted a tweet asking you if you had anything to say. I gathered some pretty funny quotes, and you’ll see ‘em in the booth. Some old-school members of the marketing department wanted to clean up the quotes, but I put my foot down. You guys were more creative than we would have been, and we would have only made the tweets worse.
  • Did You Know campaign in the Quest boothTom LaRock came to us with an idea for a marketing campaign and slogans. We loved it, and we asked him to keep going. His work turned into a video that’ll run in the booth.
  • Twitter bingoStuart Ainsworth came up with a killer idea to get people to mingle, and we threw resources behind it to make it happen. We never would have come up with that, and we love it.

None of these things came from us – they came from the community. We embraced them because all of you collectively are wittier than the handful of us in marketing. We’re wildly open to ideas from outsiders, and we do our best to deliver those babies. I believe that I can serve the community by being an enabler – connecting ideas with resources.

Community Means Concepts, Not Contracts

When Stuart approached me with the Twitter Bingo idea, he didn’t give me a rigid set of specs and ask for an exclusivity agreement. He gave me a concept idea and asked what it would take to make it work.

I went straight to Brett Epps, the PHP mind behind SQLServerPedia, and asked him to whip together a Bingo-card-generator. I think I gave him maybe two sentences of specs, tops, and let him loose. His execution was amazing.

I then went to Stephanie McCulloch, who makes everything in the Quest and SQLServerPedia exhibit booths happen. I think I might have said “we wanna do Twitter Bingo,” nothing more, and she came up with all of the logistics. She got the prizes, worked with legal to get the rules, got a raffle drum, set up the drawing times, etc., etc.

We went to Blythe Morrow, who coordinates the PASS both.  She picked up the torch and kept running with it, making sure the details got taken care of and that everybody would have a great experience.

The whole thing was great because it happened so fast. If Stuart or I would have tried to control the whole thing, it would have taken us forever. Instead, all we did was pass ideas on to the people who would actually do work, and trusted them to do their jobs. That’s community at its best: lightning-fast execution, low-cost, and no status meetings.

Problem was, I acted a little too fast. I didn’t know Quest’s sponsorship contract with PASS didn’t allow us to run contests at the PASS Summit without paying PASS an additional fee. I’d gotten a little too caught up in turning Stuart’s idea into reality, and we had to hit the brakes until we could get the legalities sorted out. Sometimes it’s tough for me to draw the line between where my help with the community ends, and my work as a Quest employee begins. I have to be more careful about volunteering Quest resources to help community members, even though Quest doesn’t have a problem with helping the community for free.

Community Means Crediting Contributors

You’ve worked for that slimy boss who steals all your good ideas and tries to pass them off as his own. He never invites you to the meetings with management, never gives your name to the customers, and never invites you to the launch party. You just turn around one day, and there it is, with your name nowhere in sight.

I believe that the community needs to know exactly who came up with every gem of an idea. Brilliant ideas don’t come out of committees – they come out of people. When I have a great idea, I’m proud as hell, and I know you are too. I want to give you every single minute in the spotlight that I possibly can, because I know how your job is. I’ve been a DBA. I’ve got plenty of shirts in my closet that have treadmarks from the bus. I do my best to keep pointing out the people who come up with the great ideas and who do great work.

Community Means Choices, Not Clear-Cut Consensus

We’re not always going to agree. There’s people out there right now who don’t agree with what I’ve written above. Some folks want the SQL Server community to be a corporate environment that’s organized from the top down and managed like a project. If you don’t stand up and participate in the community, these people will be happy to plan out the community for you, decide how your community will work, and decide how much say you get in your community interactions.

That’s not necessarily a bad thing – I know a lot of people who choose to live in planned communities in real life. They’re well-organized areas that are safe, clean, and quiet. Me, I like living in a vibrant downtown with lots of restaurants, museums, and shops within walking distance, but it has drawbacks. I wouldn’t use the words clean or quiet to describe my neighborhood, and I wouldn’t leave my car unlocked at night. But the great thing about communities is that I’ve got a choice to live, work, and play wherever I want.

I posted interviews with the PASS Board of Directors candidates because I wanted you to make informed choices.

Now I’m going to toss out some more choices:

  • Where do you want the next Summit to happen? – Do you want it in Seattle again next year, or would you like to see it move around?
  • Would you like to vote on sessions? – Some events like SQLBits let the attendees vote on which sessions are presented. If attendees decide they want 2/3 of the sessions to be about, say, BI, then that’s what they get. If not, they get more sessions about something else.
  • Would you like a bigger say in who leads the community? Do you think we should have more Board candidates during an election?  Should we have minimum qualifications for Board members?  Should we make our Board look more like traditional Boards of Directors where members are pulled from outside the community?
  • Would you like a place to talk about this stuff? – Doesn’t it strike you as odd that a community doesn’t even have a forum? That a blogger’s interviews with the BoD candidates was the only place to talk about them?

Community Requires Championing Choices

Just because somebody isn’t asking you a question doesn’t mean you don’t have a choice.

At next week’s PASS Summit in Seattle, take a moment to get to know the people at PASS who are making the choices that build your community. Talk to the members of the PASS Board of Directors about what you like and don’t like about the community. Talk to the volunteers who help make the Summit happen, and talk to them about what you’d like to see next year.

Talk to me and the folks at Quest Software who build community sites and events for you.  We all have choices to make, and even if you don’t have the time to volunteer, we do have the time, and we’ll champion your ideas.  I was completely honored and humbled when Stuart came to me about the Twitter Bingo, for example, because I got the chance to go to bat for him and build something really cool.  Twitter Bingo came thisclose to not happening at all, and it took a lot of effort from a lot of people to drag it over the finish line.  There was a lot of backslapping when we all pulled it off.

The community is made up of choices, and your choices matter.

Your ultimate choice is deciding whether or not to return to the PASS Summit next year.

I want you to come back because I want to see you next year.  The only way I can make sure that happens is to make sure you’re active about what you like – and don’t like – about the community.  I want you to get off your lazy duff and help make the choices that define our community.

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

Cloud-based database thoughts before #SQLPass

Next week at the PASS Summit, I’m presenting a session called “Yes, I’m Actually Using The Cloud.” I’ll be talking about what’s out there, why I use it, and why you might want to use it too.

Brendan Cournoyer of SearchSQLServer.com interviewed me recently about the topic and asked questions like:

  • For those who are relatively unfamiliar with cloud computing, what is the case for cloud-based databases? Is it all about performance?
  • Aside from questions about security, what are some other reasons why folks might be hesitant to deploy cloud databases?
  • What about other cloud database options? Relational databases in the cloud are rare. From a SQL Server perspective, how does Azure compare to the other options that are available?

You can read my answers in the interview at SearchSQLServer.

Amazon RDS: New Azure Competitor

Today, Amazon announced a new competitor to SQL Azure: Amazon Relational Database Service.  It’s got some compelling advantages:

  • It’s basically MySQL with some added goodies. If you already know and love MySQL (I don’t know it well, so I don’t love it – yet), it’s easy to love RDS.
  • Amazon handles basic management. They do patch management, backups, restores, and export performance statistics to Amazon CloudWatch for free.  To some extent, they’re providing production database administration as part of the cost.
  • It leverages Amazon’s storage for snapshots. You just tell Amazon how many days of history you want to keep, and they handle it for you without you understanding anything about recovery.
  • Coming soon: high availability with replication. You’ll be able to replicate your MySQL databases between Amazon’s different datacenters without a fancypants database administrator.

If I was a MySQL production DBA, you’d hear my eyebrows raising.  I’d be worried about my long-term job prospects.  From here, it’s a race to the bottom.  Suddenly there’s a service out there that provides some of the same functionality that production DBAs provide, except it’s available by the hour.

What’s the Cheapest Way to Solve a Problem?

How Low Can You Go?

How Low Can You Go?

If I was the project manager for an app with a MySQL back end, you’d hear my sigh of relief.  If I could move my app to Amazon RDS, suddenly performance issues have a completely different solution.  I could either pay a MySQL DBA to find the root cause, or I could simply choose a faster/stronger/better Amazon instance size.

A “small” instance is 1 core with 1.7GB of memory.

A “quadruple extra large” instance is 8 cores with 68GB of memory.

The price difference between these two is roughly $3 per hour.

How much do you think a MySQL DBA costs?  It’s gotta be more than that.  Why would you pay a DBA if you can simply ramp up hardware capacity?  Now, of course as DBAs, we know that model doesn’t scale forever.  You can still run into performance problems at the Quadruple Extra Large instance level, but project managers will gamble that their apps will still survive long enough for Amazon to introduce faster instance power.

The Best Kind of Cloud Service

This is my favorite kind of cloud service.  It’s not vendor-specific, so you can build your app with a MySQL back end without committing to using Amazon RDS.  If Amazon pulls the plug on RDS next year, no biggie – you can still run it on any hosted MySQL service.  You can’t do that with Amazon SimpleDB, which is proprietary. Even better, Amazon RDS is full-blown MySQL, not hobbled in any way.

SQL Azure falls into an odd niche, because you can develop for it without worry.  If Microsoft pulls the plug on Azure, you can still use your app with “real” SQL Servers, because Azure is just a crippled SQL Server implementation. (That’s a good thing and a bad thing.)  However, if Azure dies off, you’re stuck with moving to SQL Server, not exactly the cheapest solution around.  Microsoft offers free-for-a-while licensing with BizSpark and WebSpark, so you can at least buy time, but sooner or later you’re going to face licensing costs.

I love announcements like this because I see it as an exciting time to be a solutions provider.  Like I blogged yesterday, DBAs are always consultants, and we need to view ourselves as providing a service.  Amazon RDS, like other tools, is something that can either compete with us or be part of our toolset.  Figure out how to use it as part of your skillset, or else you risk getting displaced by it.

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

Bottlenecks and Bank Balances

Pop quiz: should you be worried if your SQL Server’s page life expectancy is averaging 214?

There’s only one correct answer: it depends.  Successful performance tuning boils down to a simple cycle:

  • Measure the application’s performance
  • Find the current bottleneck
  • Improve that bottleneck so that it’s not the bottleneck anymore
  • Measure to find out how much your application performance improved
  • Ask the application owner if it’s good enough now. If so, move on to the next application. If not, go back to step 2.

And every one of those steps is equally important.

If You Don’t Find the Right Bottleneck

The Bottleneck Is Plenty Big Enough for You

This Bottleneck Is Plenty Big Enough for You

Performance tuning isn’t about zooming in and focusing on a single number in incredible detail; rather, it’s about stepping away and getting the full picture. Time and again, I get emails asking about whether a single metric is OK, but upon questioning, the DBA has leapt to a conclusion without surveying the environment as a whole. If you spend your tuning time closely examining a single metric, trying to figure out how to improve that one metric, you might not improve the performance of your application.

Sure, your page life expectancy might be pretty bad – but is that the one thing keeping your application from performing faster?

Take a step back and gather a complete set of Perfmon metrics. Look at CPU, memory, disk, and network performance as a whole. Find the thing that’s in the absolute worst shape possible. In that link, I explain the order that I look at metrics to find which one looks like the most likely bottleneck.

If You Don’t Focus on Improving the Bottleneck

I was recently working with a client frustrated with their application performance. I found two issues:

  • CPU-intensive user-defined functions were being called thousands of times per query
  • The storage subsystem was nowhere near as fast in practice as the vendor had claimed

The application’s bottleneck was the CPU-intensive UDFs. The server was frequently pegged at 100% CPU, and queries just couldn’t run any faster until they were rewritten to rip out the UDFs. I put together a recommended plan of action to take those UDFs out, which would make the application an order of magnitude faster. I noted that they should probably start working on the storage performance in a second track, because the instant the UDFs were removed, storage was going to become a problem. With the CPU-burning UDFs out of the way, the server would be able to churn through more records faster, but the storage subsystem wouldn’t be able to deliver records fast enough to satisfy the users.

On our next status update call, they said they’d reworked the storage subsystem. SQLIO reported dramatically faster storage throughput, but they were only seeing a minor improvement in application performance. I had to break the bad news to them that they’d focused on the wrong problem first. After we revisited my report together, they pursued the UDFs with renewed vigor, and suddenly the application was blazing fast. Thankfully I’d documented my findings in writing, but if I’d have been an internal employee, I might have communicated that in verbal form instead. I might have lost the ensuing battle to fix the UDFs because the manager would have thought my advice was bogus.

If You Don’t Measure Your Improvements

You Get What You Measure

You Get What You Measure

All DBAs are consultants.

Some of us think we’re full time company employees, but in reality, we’re delivering a service. Whether they’re developers, project managers, end users, or other DBAs, they’re looking at you just as if you were an outsider. You’re expected to stride in, identify the problem, mitigate it, and show that your work delivered a return on investment. The investment, in case you’re not following, is your paycheck.

Don’t believe me? Poke around in an application and then throw up your hands, saying you can’t find a way to make it go faster. The next phone call the project manager makes will be to an external consultant, and the project manager probably won’t call you first next time. (Sometimes, that’s not a bad thing.)

If you put in a lot of hard work to make an application go faster, but you don’t measure the before-and-after effects of your work, someone else is going to take credit. The developers will say the improvements were due to a new version of their code, because they’re working on the code at the same time you’re working on the database. The sysadmins will say they defragged the muffler bearings. The SAN guy will say he tweaked the flux capacitor. The project manager will say he made everybody worked long hours and that did the trick. The only way, the ONLY way that the DBA can ever take credit is to take clear before-and-after measurements for proof. Run the same code base before & after your tweaks, and measure application performance. Follow up with a written report, even if it’s a one-paragraph email, summing up your changes and the performance improvements, and copy your manager on it.

If You Don’t Ask the App Owner If It’s Good Enough

Never confuse what YOU think about a metric with what the BUSINESS thinks about a metric. Your CEO doesn’t care about page life expectancy. (Your CEO probably doesn’t even care about the DBA’s life expectancy.) Before you spend time or money improving an application, you have to find out whether it’s the most important thing to your business right now.

Say hello to the most important metric you will ever calculate: opportunity cost.

A Long Night at Zig Zag Has Its Own Opportunity Cost

A Long Night at Zig Zag Has Its Own Opportunity Cost

Opportunity cost is the cost of doing something as compared to the cost of doing something else. If you spend eight hours today improving the page life expectancy of a particular server, is that worth more to the business than anything else you could be doing in those eight hours? Could you spend eight hours doing something more valuable?

I use opportunity cost whenever anyone asks me to do something.

As an employee, if a project manager asks me to tune a particular application, I bring them into my manager’s office and say, “It will take me three days to make that application faster. I’ll probably make it an order of magnitude faster, because I’ve never tuned that server before. However, if I take those three days to do it, I won’t make the deadline for Project Snazzywidget. Which one is worth more to you?” At that point, it’s a political decision and a business decision, not a technical decision. If you’re doing the best job of any employee he has, your manager will put you on the most valuable project – which in turn increases your worth again.

As a consultant, I approach the problem differently: “Here’s the thing – I could spend another three days working on this application, but from this point forward, I’m only going to be able to achieve incremental improvements, not the order-of-magnitude improvements we saw in the first few rounds of tuning. I hate to make you guys go through that for a small gain – but is there another application in-house that isn’t delivering the performance you want?” This resets the client’s expectations, and they start seeing you as a weapon that they can point at slow applications. They’ll cherish your time and focus you where your effort will pay off the most. This keeps your perceived ROI high. If you deliver jawdropping results each time you tune an application, you can justify higher billable rates.

After all – isn’t your bank balance the one metric you really want to improve?

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

Travel Tips for Non-Frequent Flyers

If you’re traveling to one of the upcoming fall conferences, here’s a few of my favorite travel tips – as inspired by Kevin Kline’s recent travel tips post.  (If some of these familiar, it’s because I originally ran parts of it last fall before the conference season.)

Use SeatGuru.com or SeatExpert.com to get the best seat.

I’m not talking about first class versus coach – even in coach, not all seats are created equal.  Every plane has some surprise seats that have more room or awkward armrest setups.

SeatGuru and SeatExpert have maps of every plane flown by every airline.  Call your airline or check online to find out the exact make & model of plane you’re flying and then pull up the SeatGuru or SeatExpert map.  The seats are color-coded by comfort level.  Hover your mouse over your seat, and you’ll see detailed notes about the comfort level of that particular seat.  Then, with that map up on your screen, call your travel agent or go to your airline’s web site to change your seat.  You can sometimes do this online even when it’s too early to check in for your flight, and the earlier you do this, the better your chances are for getting a good seat.

I’m typing this from the comfort of a Continental Embraer RJ-135, seat 12A.  It’s an exit row seat with no seat on either side of me, so I have plenty of space in front of me for my legs, and plenty of space on either side for my arms.  It didn’t cost me any extra – I just went to Continental.com and tweaked the seat on my reservation.

For long flights, I recommend the aisle seats because it’s easier to get up and go to the bathroom and the bar.  What?  You didn’t know about the bar?  Anytime you’re thirsty, just head to the flight attendant area, and they’ve usually got water, soda, and snacks available for self-service customers.  If you’re right-handed, get the aisle seat on the left side of the plane so that you’ve got room to maneuver; I find it easier to type, move the touchpad around, and so on when I’ve got room for my right elbow.

If you don’t find a better seat, don’t give up: check again exactly 3 days and 2 days before departure.  Airlines automatically upgrade their elite frequent fliers to first class for free at those times, and guess what – that means their seats in coach are suddenly empty.  These people are exactly the kinds of people who usually know to grab exit row seats and those “special” seats with more room, so you’ll find these seats opening up again.

No assigned seat?  Check in online ASAP.

If your airline reservation doesn’t show an exact seat number, your flight may be overbooked.  Airlines routinely overbook flights because not everybody shows up for a flight.

Go to your airline’s web site and try to check in right now.  You won’t be able to, but it will tell you when the flight checkin will open up.  Set yourself a reminder to check in at that date/time.  The earlier you check in, the more likely that you’ll get an assigned seat.  The later you check in – well, let’s just say you don’t want to get a miserable $100 air travel voucher in exchange for missing the first day of PASS.

Knock yourself out on long flights.

Drool Not Shown

Drool Not Shown

Forget paying extra for a first class upgrade.  Get a travel pillow for under $10.  The one shown here is an inflatable model, which is nice because you can deflate it and stick it in a laptop bag.  If you don’t want to carry one around, you can usually pick up the non-inflatable ones in airport gift shops for around $20.

Now, I know what you’re thinking – you’re thinking that wearing an inflatable toilet seat around your neck will make you look stupid.  You’re wrong.  The drool coming out of your mouth is what’s going to make you look stupid.

As you’re boarding, take a sleeping pill.  Settle into your seat.  If you want a blanket, buckle your seatbelt on the outside of your blanket so that the flight attendant won’t have to wake you up to make sure you’re wearing it.  You’ll be out like a light in no time.

Conquer time zone changes with vitamin B12.

This tip comes from Douglas McDowell of SolidQ, and it’s saved my bacon more than a few times now.  Pick up some vitamin B12 pills at your local drugstore and keep ‘em in your laptop bag.  I prefer blister-packed sublingual pills – the sublingual ones that come in a bottle break up pretty quickly if they bang around.  Take one, and you’ll be comfortably awake for a couple of hours, but not wired or jittery.

Caffeine is the wrong answer – it dehydrates you, makes you jittery, and has other side effects that you want to avoid when traveling.

Be wary of taking late flights for travel vouchers.

Those travel vouchers sometimes have blackout dates, and the blackout dates are like “Valid only for trips with a Saturday stay on the third week of the month.”  If you really want to risk it, then talk to the airline staff before you volunteer the seat.  Ask whether the voucher has any restrictions at all, and ask them to show you one of the vouchers.  If it says anything about “Only valid for fare code X”, there’s a catch.

Oh, and whether you’re delayed by weather or you take a late flight by choice, call your hotel to let them know.  If you don’t show up by midnight, they have a tendency to give away your room to somebody else when they’re booked solid.  Don’t expect to be able to waltz in the next day thinking your room will still be held for you.  If you don’t show up on the day of your reservation, they might charge you for one night’s stay, but they won’t hold the room for your entire stay.

Leave a tip for the hotel maid on your pillow.

The Wrong Kind of Rock Star Behavior

The Wrong Kind of Rock Star Behavior

Hotel maids make minimum wage, and it’s common to leave them tips.  Some folks only leave the tip on the day of checkout, but I prefer to leave a tip daily because the same maid may not clean your room the entire time – they do get days off, ya know.

Also, make it as easy as possible for the maid.  Use just one trash can if you can, and dump your used towels in a single pile on the toilet seat (with the seat closed, speedy).  It’s less bending over for them.

Plan questions for vendors and peers.

Ahead of time, make a list of projects you’re working on, new products you want to implement, or large challenges that you’re facing.  Write this stuff down now, because you won’t remember it when somebody asks, “Do you have any questions?”  Us humans are terrible at that.

This is just my personal opinion, but I say do NOT ask tech support questions at a conference.  Tech support people aren’t usually the ones sent to conferences.  If you want support, call the support line.  If you have large architecture questions, implementation ideas, or tips and tricks, then you’ll find good answers at a conference.  If you’re getting error 0×8004005,search the web.

Make a list of things to bring to the conference.

Here’s a list of things you may not think to bring along:

  • A small, light extension cord or surge strip. There’s never enough outlets, especially at tech conferences.  If your laptop has a two-prong electric adapter, bring a two-prong extension cord too, because not all outlets have three prongs.  A 2-prong extension cord will get you into places other people can’t go.
  • An extra laptop battery. It ain’t cheap, but if you want to take notes during the sessions, it’s easier if you don’t have to fight over power outlets.
  • Business cards. If you have a personal web site you want to promote, or if you use Twitter, order business cards now.  They’re surprisingly inexpensive if you’re doing simple text with no logos – like $10 for 250-500.  I order a set just for conferences that have conference-relevant information like my work email, personal email, Twitter link, web site links, etc, but not mailing address.  (Nobody at a conference wants your snail mail address, although you can put city & state if you want an icebreaker.)  For ultra-personal cards, check out Moo.com.

Don’t feel guilty about skipping sessions to mingle.

I make a list of sessions that I absolutely can’t miss, but the rest of the time, I wing it.  If I get the chance to have a one-on-one impromptu chat session with somebody really brilliant, I’ll go for that, because frankly, that’s worth way more than a session.

For example, I got the chance last year to sit in the hallway during a session and do some impromptu data mining with Donald Farmer, and that’s one of my favorite memories from the Summit.  Did I miss a session?  Yep.  Did I feel guilty?  Only for about the first five minutes.

Leave the support calls at home, or bring your evidence.

PASS is a great place to get access to some of the brightest minds in the database business.

It’s a really crappy place to open a support case.

If you’re struggling with a problem that you just can’t fix, and you’ve opened a support case with Microsoft (or in my case, Quest), it can be tempting to approach Microsoft employees and ask for insight.  You know how when the doctor bangs your knee, your leg jerks up?  I have a really similar reaction.  When someone says they’re having a problem, I blurt out, “I need your Windows event logs – both system and application – plus the results from sp_configure and dbcc tracestatus.”

If you’re going to ask support questions, be fair – bring along your support case number, a folder with all of the evidence you’ve gathered so far in the case, and a laptop that can access the system remotely right now.  Armed with that, you stand a great chance of getting great minds to ponder your problem and cooperate with you pronto.  Without that, you’re probably going to get a polite smile-and-nod-I-feel-your-pain.

Never eat or drink alone – tweet with #SQLPass.

If you’re going to an upcoming conference, bookmark these two links now on your phone or your PDA:

During the conference, I’ll tweet whenever I find out about after-hours events, dinners, meetups, or spontaneous meetings during the day.

I remember what it was like going to PASS 2007 as an attendee who didn’t know anybody – man, it was tough to find out what was going on!  I ate lunch and dinner by myself most of the time.  Let’s face it, us DBAs aren’t always the best party people.  (Except for the PASSCamp Germany guys, they know how to put on a party!)  Now that I’m an insider (woohoo!) I’ll share the knowledge to get you folks into the action.

A lot of us will be roaming around downtown Seattle with our handheld gadgets, monitoring the Twittersphere for the phrase #SQLPASS in much the same way that truckers use their CB radios to monitor channel 19 looking for bears.  When you’re bored, get on Twitter and say so, but make sure to include the phrase #SQLPass.  Someone will hear your pain and tell you where the party’s at.

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

Poll: When do you plan to use SQL Server 2008 in production?

I asked this question last year around this time, and I’m curious to see what the changes have been.  This doesn’t refer to the upcoming SQL Server 2008 R2, but just SQL Server 2008:

[poll id="5"]

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

My Weekly Bookmarks for October 23rd

Here’s my bookmarked links for October 17th through October 23rd:

SQL Server Links

PASS Links

Tech Links

The Junk Drawer

These bookmarks are automatically imported from my bookmarks at Delicious.com. If you’d like to get up-to-the-minute updates on what I’m bookmarking, you can subscribe to my bookmark RSS feed.

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

#SQLPASS Referral Contest

The past couple of years have been a time of upheaval for communities.  Even just the definition of the word community has started to evolve.

Think about how well you know each group of people:

  • People on Twitter and FaceBook
  • Your coworkers
  • Your local computer user group (SQL, .NET, whatever)
  • Your neighbors

For me, it breaks down in that exact order: I know some people on Twitter better than I know my coworkers, and I know all of those groups better than I know the people living next door to me.  It’s not that I don’t want to know my neighbors – it’s just that we never have time to interact.

The physical meatspace user groups mean less and less to me because I only talk to those folks one day per month, whereas I talk to people on Twitter every single day.

And That Means the PASS Summit Is……

Summit 2009

Summit 2009

You might think I’m about to say that physical meetings are irrelevant in the age of social networking.  After all, the PASS Summit isn’t cheap – with travel, hotel, and registration costs, you can easily burn through a few thousand dollars.  Toss in the time away from work, and you’re talking real money.

Wrong-o.

The PASS Summit is even more relevant because it’s your one chance to meet a ton of people that are more than just small avatars in TweetDeck.  These are real, living, breathing, bacon-eating, Jager-drinking human beings who are even more fun in person than they are on the screen.

But the Way We Interact is Changing

In the old days, at big meetings like the PASS Summit, people would walk around and try to meet new friends for the first time with awkward icebreakers like, “So, you come here often?”  We stumbled around in a sea of strangers trying to find common ground.  Meetings like the Birds of a Feather lunch were our one chance to quickly establish a bond with someone who shared similar work challenges.

More often than not, though, we ended up bonding with people who picked the same bar we picked.

Next week, when I step into the Seattle Convention Center, I’m going to run into dozens, maybe hundreds of people that I’ve never met – yet I already know them really well.  I’ve talked to them on Twitter for months, day in and day out.  I know their pains, I know their challenges, and I know their favorite breakfast meat. From the moment we clasp hands, it’s going to be a time of excitement and interaction.

It’s Not Too Late – And I’ll Throw In More.

PASS is running a referral promotion.  Register for the PASS Summit for $1,595 (or get another $100 off by using promo code SSC3D) by November 1st using this information:

  • Answer Yes to the following registration question: “Did you hear about PASS Summit 2009 through our Friend Referral program?”
  • Referrer name: Brent Ozar
  • Referrer email: BrentO@BrentOzar.com

For every 3 people I refer, I get a free pre-conference or post-conference registration, but I want you to have it.  I’ll hold a drawing for everyone who PASS says used my referral code, and I’ll give the winner the pre-conf or post-conf registration.  (The contest also includes a netbook, but I’ll be keepin’ that, baby.)  If I win multiple pre/post conference registrations from PASS, I’ll draw a winner for each registration.  Only one registration per entrant, though.

You can read the full PASS contest rules, and then register for the PASS Summit using the instructions above.

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube