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.
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
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:
- SQL Server – database administrators and developers that add themselves on the SQLServerPedia Twitter directory
- Microsoft MVPs – right now, just SQL Server MVPs from the Twitter directory, but as I find more I’ll add ‘em.
- Comedy – teh funny, but often not safe for work.
- Quest Software – my peeps.
- PASS Board – this is actually Jorge Segarra‘s list, but it’s a great idea. Which brings me to…
How to Find More Lists
- Onion Editorial Staff – surprisingly, I’m not that impressed by their tweets.
- Employers Recruiting – good idea, but it gets overwhelming pretty quickly. Too many jobs of all kinds.
- Top-50-Funny – and yes, they are pretty funny.
- TechCrunch team – if you’re addicted to dot-com news.
How to Create and Manage Twitter Lists
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?
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
- Top 10 Reasons I’m Not Following You On Twitter – wondering why nobody’s following you back?
- Top 10 Reasons I *AM* Following You – how I pick who gets past my virtual bouncer.
- Twitter RT, OH, HT: The Slang Explained – I talk about what these cryptic terms mean and how to use them correctly.
- Twitter Client Demo Video – I show you TweetDeck, Seesmic Desktop and Orsiso, three different Twitter clients.
- How to Make a Bigger Twitter Profile – when people glance at your Twitter profile, they make a snap decision about whether to follow you. Give them the information they need to make a good decision.
- Browse All Posts Tagged “Twitter”
- How To Start a Blog – decide why you’re blogging, because that’ll affect the type of blog you start and how you build it.
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!
Here’s my bookmarked links for October 26th through October 30th:
SQL Server Links
- Windows Azure Platform Launch Update – The blog notes that “a number of new features in Windows Azure will be made available for the first time” – but it’s at PDC, not the Professional Association for SQL Server Summit. This should be your clue that cloud-based SQL Server isn’t targeted at DBAs, folks – it’s targeted at developers.
- Don’t be a DBA – Be a Data Professional – Buck Woody explains that your real job isn’t tied to the exact version/edition/brand you’re using – it’s tied to the value you provide.
- SQL University: Diving into Authorization – Do you understand the differences between GRANT, REVOKE and DENY? K. Brian Kelley dives in for SQL University.
- SQL Server with NetApp SAN – Collection of best practices documents from NetApp.
- Checklist for installing SQL Server 2005 as a clustered instance – Your first cluster is painful – get help from Cindy Gross’s simplified checklist.
- How People Abuse Their SQL Server Transaction Log – Things NOT to Do – A laundry list of SQL Server abuses.
- Merrill Aldrich : Using Historical Perf Counter Data For Storage Planning – Dives into some of the cool metrics you can get from the Quest Spotlight repositories.
- Suggested Max Memory Settings for SQL Server 2005/2008 – I like hard-coding the maximum memory size for SQL Server whenever it’s not being shared with multiple applications. Glenn shows you some guidelines for the right numbers.
- SQL University: Authentication and Authorization – K. Brian Kelly talks about his specialty – making sure your data stays yours.
- Amazon EC2 – Now an Even Better Value – Amazon’s prices are lower now for SQL Server in the cloud.
- SSMS Tools Pack 1.7 is out! New feature: SQL Snippets – Great free tool.
- Deterministic Functions – Steve Jones talks about how to determine whether something’s deterministic – it affects caching of execution plans, too.
- Developing Data-tier Applications Using Visual Studio 2010 – Video showing off what’s coming for DBAs long term.
- Templates for New Query Window – Buck Woody shows how to force yourself into commenting your code better.
- High Availability Improvements in SharePoint 2010 – Woohoo! It’ll support SQL Server database mirroring out of the box.
- Introducing Amazon RDS – The Amazon Relational Database Service – MySQL in the cloud, cheap.
- Starting the Travel Tips Meme – Great tips from Kevin Kline for the upcoming PASS summit.
- What Should PASS Strive To Be? – Jack Corbett’s thoughts on #SQLPASS’s directions.
- A Rendezvous With Destiny: PASS 2009 (#sqlpass) – If you’re going to the PASS Summit, you need to watch Jimmy May speak.
- Losing Net Neutrality: The Worst Case Scenario [Net Neutrality] – If you don’t understand the talk around “net neutrality”, this post will illustrate how the net will look like if we don’t have net neutrality.
- VCE-101 Thin Provisioning Part 1 – The Basics – Thin provisioning involves creating storage arrays without actually having as much storage as you think. Doing it right requires some awareness at the OS level.
- ScreenFlow 2.0: top Mac screen recording app gets even better – This is the tool I use for my podcasts and screencasts.
- Motorola DROID review – Engadget’s review of the highly awaited Android headset. Comes out with more cons than I’d have expected.
- Free Public Careers CVs – This is going to change the way geeks get hired.
- Announcing Google Maps Navigation for Android 2.0 – Free turn-by-turn navigation for Android phones. Interesting because Google is basically competing against the iPhone on price now – rather than paying for turn-by-turn nav, you can get an Android phone and get that for free.
- Dunbar’s Number isn’t just a number, it’s the law – Humans can’t handle having more than 150 friends.
- Now Available: The Virtual Storage Console vSphere Plug-in – If you manage VMware and you have a NetApp SAN, this lets you get better insight into your virtual server storage from inside VMware tools.
The Junk Drawer
- Newspaper circulation chart over the last 20 years – What a cliff. Scroll down.
- I Got Nowhere To Go – Tom LaRock questions why people are starting up all kinds of new sites that do the same thing as ones that are already popular & successful.
- Best Buy drops the price on the Netflix-streaming, Blu-ray playing Insignia Blu-ray player – $100 for a Blu-ray player is one heck of a breakthrough price.
- Book Review: Twitter Wit – Tom LaRock reviews a book with tweets.
- The Power of Being Personal on Your Blog – Wanna know why you should be personal? Ask a blogger who’s already been wildly successful.
- Which Religion Should I Follow? – Flowchart to pick your Jeebus.
- Caffeine & Edibles : Baconnaise – Man, if only there was some way I could get both bacon and mayo on my sandwich faster….ah-ha!
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 booth – Tom 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 bingo – Stuart 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.
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?
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?
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.
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
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
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.
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?
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.
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.
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.
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:
Here’s my bookmarked links for October 17th through October 23rd:
SQL Server Links
- Series of “Bad habits to kick” by Aaron Bertrand – There were a ton of great tips in this series, and I’m glad to see it getting press.
- Which Visual Studio 2010 is Team Suite? – Both Premium and Ultimate versions come with Data Dude features, and all versions come with Windows Azure access.
- How to use SP_CONFIGURE in SQL Server – Great summary by Mike Walsh of this basic tool.
- An Introduction to SQL Server System Databases – Good beginner/101 article for new database administrators.
- TIP: How to Run Programs as a Domain User from a Non-domain Computer – How to run SQL Server Management Studio as a different Windows domain user. Awesome for consultants.
- Meet the MCM’s and MCA’s! – Only 8 people outside of Microsoft have achieved the Microsoft Certified Master status in SQL Server. 8.
- MSDN Premium Subscribers and BizSpark Members to Receive Windows Azure and SQL Azure Benefits – Woohoo! Developers will have access to Microsoft’s cloud services.
- The patching game. – Test before you apply even the smallest patches to your SQL Server infrastructure.
- SQL Server Reporting Services Disaster Recovery Case Study – I often hear from folks who want to build DRP solutions for SSRS. This post lays out how to do it.
- Should I have a SNAC with my cumulative update? – When SQL Server patches and updates come out, we don’t always think to upgrade our clients, but there’s important fixes in there.
- Virtualisation for the DBA part 3 – SQL Server Performance – Andrew Fryer explains why a lot of servers work just fine under virtualization, and how to make ‘em work even better with data compression.
- What Direction Do You Choose? – Kevin Kline talks about how the PASS Nomination Committee works.
- PASS Update #16 – Andy Warren talks about his vision for PASS in the future. Great ideas.
- PASS Board Candidates – Andy Leonard explains why we should check managers for calluses.
- PASS Summit – My List of Tips – Andy Warren’s recommendations for a good time in Seattle.
- Transparency and PASS – Steve Jones talks about the nomination process.
- PASS Update #17 – Andy Warren talks about the ruckus around the PASS elections.
- Where Are My Cookies? – Tom keeps bringin’ the transparency to PASS.
- Another Year, Another Missed PASS Summit – K. Brian Kelly won’t be making it to Seattle this year, but he has two really good excuses: twins on the way.
- Windows 7 / Windows Server 2008 R2: Problem Steps Recorder – Windows 7 is awesome. Seriously, if I didn’t already have a Mac, and if I found a non-Apple laptop I liked enough, I might just roll with Windows 7. This is yet another example of why.
- Reading gets personal with Popular items and Personalized ranking – I already found a couple of interesting new feeds with this new Google Reader feature.
- Steve Ballmer’s Windows 7 pitch features MacBook Pro in the background – Yes, it does. Somebody’s gonna get fired.
- Setting up Hyper-V with a UPS – Set up your hypervisor so that it gracefully shuts down the guests first when the power goes out.
- Everyone Should Be Skeptical About Cloud Service Providers – Great post about problems with cloud providers and what questions you should ask.
- USB PC Prankster: guaranteed to freak out, enrage your cubicle mates – Turn on caps lock or garble text on someone’s PC after a timer delay. Brilliant.
The Junk Drawer
- Healthiness of food vs. cost of food – The less it costs, the worse it is.
- How to Speed Read Like Theodore Roosevelt – does what it says on the box.
- 10/16/09 PHD comic: ‘Parental Expectations vs. Time’ – Oh, man, I’ve been on the receiving end of this phone call.
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……
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.
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:
- 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.