Blog

Quest #QTweetup at TechEd – SOLD OUT!

SQL Server
1 Comment

Think fast!  The first 75 people who sign up at http://QuestTweetup.eventbrite.com can join me, Kevin Kline, Joel Oleson, and the rest of the Quest experts for an evening of fun on Bourbon Street.

Bourbon Street Blues Company
Bourbon Street Blues Company

We’re getting together on Wednesday night at 9pm at the Bourbon Street Blues Company smack in the middle of the action.  (If you can call a gathering of thousands of geeks “action.”)

Register for the #QTweetup quick, because I’m sure this will fill up due to the limited space.  You can also check out my TechEd schedule.

See you in New Orleans!

Update – Sold Out! Well, that was quick.  It sold out!  See you there.


How to Solve the Environmental Crisis

8 Comments

I don’t usually get involved with issues like this, but I think it’s time I step in to help.

SQL injection caught on film
SQL injection caught on film

Your SQL Server environment is a disaster.  There’s data spilling out all over the place.  Users are writing bad queries, developers are throwing triggers in all over the place, and your BI team is about to give every mid-level manager a PowerPivot spreadsheet with umpteen gazillion rows in it.

The KILL command in T-SQL just isn’t getting the job done, so I’m working with Microsoft to implement a new command: TOPKILL.

Q: What does it do? A: It puts a stop to runaway queries that are destroying your environment.

Q: How does it work? A: By using dirty reads.

Q: Why doesn’t anything change when I run it? A: You have to wait two days to see results.

Q: Aren’t you the guy who wrote the JUNKSHOT command? A: This one will be better.  Promise.


NoSQL Basics for Database Administrators

Architecture
37 Comments

Most SQL Server DBAs don’t even like MySQL, let alone NoSQL.  They cringe when they hear people say things like, “I don’t need transactions” or “The data will eventually be consistent” or “Indexes will be supported in the next version.” SQL Server and Oracle people are constantly trying to out-feature each other, and the abject lack of features in the NoSQL world comes as a complete shock to both parties.

Thing is, NoSQL and cloud databases do fill some very real business needs.  Today, I’m going to give you a peek into the NoSQL/cloud-database world. You can be a better database professional if you understand what these tools are trying to achieve, who wants to use them, and how your database compares with theirs.

Let’s start at the beginning: who needs this stuff? To answer the question, let’s look at a few common projects that are probably happening right now in your company with conventional databases.

Use Case #1: Logging High-Volume, Low-Value Data

Most companies have a web filtering system that makes sure employees aren’t surfing dangerous sites during business hours. They want to reduce their Internet connection needs by eliminating streamed music or video, and they want to avoid sexual harassment lawsuits caused by employees surfing for porn at work. The filtering system maintains two databases: configuration data such as employees, departments, and not-allowed web sites, and monitoring data that covers who surfed for what, and when. The config data has to be perfect – we can’t have our configuration data disappearing, but that isn’t too big of a problem because it’s a fairly small amount of records.

I can tell when someone's been surfing dirty web sites.
I can always tell who surfs the dirty sites.

The monitoring data is important, but not all that important. We want to capture as much history as possible, and we’re going to be inserting data fast and furious, but it wouldn’t kill us if we missed a few rows. Odds are someone won’t surf for illicit material just once – they’ll do it repeatedly over time. We don’t make money on this data (although we could make an argument that it helps us avoid risk) so the CIO isn’t prepared to spend a fortune archiving Johnny’s Google searches. The only time we query this data is when HR wants to check Johnny’s web activity – we don’t need to run fancy reports to see the average web use by department.

This system could live without fancy transactional backups. We just need to do a full backup periodically – even once a week or per month would be fine if it saved us a lot of money. When it goes down, we don’t need to restore it quickly – or maybe not even at all, if HR doesn’t ask for a report. We just need to set up a new database to start taking inserts again.

What if we had a way to store multiple terabytes of this data on commodity hardware that would have a very low cost, pretty high availability, but might not give us very good reporting options or transactional consistency?

Use Case #2: One-Time, One-Way, Big-Load Analysis

When a company’s data gets large enough, they start asking questions about what the data might reveal. I’ve worked with PhD’s and analysts who say things like, “I need a copy of the data warehouse to solve a problem I’m working on. I’ve got a hunch about the numbers, and I’ll need to do a week or two of slicing and dicing to figure things out.” It’s just one or two rocket scientists working on the data for a relatively short amount of time.

They don’t want to synchronize the company’s incoming data with this research dataset, and they don’t need to back it up. They just want you to hand over the data, and then you won’t hear from them again. If it goes down, that’s okay – it doesn’t affect sales. Sometimes they use their own SQL Servers, sometimes analytic tools, sometimes its plain old Excel or Access. They won’t write production reports on this data – they’re just going to dive into specific queries and analytics, and then write PowerPoint decks or white papers on the results.

They might do similar projects like this over and over with different datasets from different areas in the company, but they use fresh sets of data every time. They could use a completely different toolset each time without training worries – these are rocket scientists, after all.

What if you could give them a tool that could handle rapid loads of completely different data each time, perform wild and crazy queries, but it might not use traditional query tools or database languages? These users aren’t proficient with SQL queries or RDBMS technologies anyway – they could use anything as long as it’s cheap and scales well.

Why Not Use SQL Server or Oracle?

Mozilla Labs Test Pilot Project
Mozilla Labs Test Pilot Project

I bet you’ve run into projects just like these in your career, and until now, you’ve solved them with the only tool you really know well – relational databases like SQL Server.  SQL Server, when properly configured and managed, doesn’t blink at the requirements of most NoSQL projects.  Take the Mozilla Test Pilot experiment:

  • Expected amount of data stored per experiment: 1.2 TB
  • Expected peak traffic: approximately 75 GB per hour for two 8 hour periods following the conclusion of an experiment window.  This two day period will result in collection of approximately 90% of the total data.
  • Remain highly available under load
  • Provide necessary validation and security constraints to prevent bad data from polluting the experiment or damaging the application

Here’s my personal take on it – NoSQL doesn’t mean NoSQLServer, but rather NoMySQL.  MySQL doesn’t scale as easily to these levels, whereas it’s not much of an event anymore for a single-node SQL Server to scale to multiple terabytes.  I’ve worked with plenty of SQL Server data warehouse systems that have much larger volumes and loads of data than this.  In the last month, I’ve worked with two in particular that ran on less than $50k of commodity hardware.

It’s not that SQL Server or Oracle can’t scale to these levels.

It’s that NoSQL and cloud databases have a few crucial differences about how they scale.

NoSQL Has a Different Cost Model

If you’re doing multi-terabyte databases, you probably need SQL Server Enterprise Edition, which is licensed in one of two ways:

  • $27,495 per CPU socket for unlimited users, or
  • $8,592 per server plus $164 per user (unless the user already has a SQL CAL)

When you start a SQL Server project, you need to have an accurate CPU count and stick to it.  If you decide halfway into the project that you need a lot more power to get the job done, you have to buy more licenses.  These licenses stick around, and that long-term overhead becomes a business problem.  Businesses don’t like to see expensive software licenses not in use when a project isn’t doing number-crunching.

In addition, even just four sockets of Enterprise at $35-120k is a lot of money that could be spent on hardware – and therefore performance – instead.  Even if SQL Server was 50% faster than a competing solution, that advantage is negated when the user spends 50% more on hardware instead to get the same speed at a lower overall cost.  Tough sell.

The advantage of buying an industry standard database with a long history (whether it be DB2, Oracle, SQL Server, or Sybase) is that it’s relatively easy to find staff and software that interact with that database.  NoSQL and cloud databases, on the other hand, come with no up-front licensing – but because there’s no established industry standard, it’s very tough to find experienced staff off the street.

An early build of MulletDB
An early build of MulletDB

How do I hire experienced NoSQL-savvy-staff when the very NoSQL databases out there keep changing?  Here’s a sampling of announcements from one 24-hour period:

NoSQL solutions have different costs.  Immature platforms suffer from a lack of documentation, tooling, and commonly-needed features, thereby driving implementation costs up.

But is that really a problem?  There’s an abundance of documentation, tools, and features for Microsoft SQL Server, but I almost never see it implemented correctly. Just because there’s a manual doesn’t mean anybody’s going to read it or heed it, and just because there’s a tool doesn’t mean users will use it appropriately.  It’s easy for me to hire SQL Server people off the street, but that doesn’t mean that they’re good, either.

The best NoSQL solutions solve the human cost problem by building in the things you need in order to scale, store data, and consume data.  It’s not all that hard, either – the scenarios I described in the beginning of the post had one thing in common: a very limited number of features.  Some NoSQL and cloud database users need to insert a lot, and they need to run very specific queries, but that’s about it. This is where open source products can really shine – they need even less features than MySQL has.

NoSQL Makes Smart Compromises to Achieve Scale

Right from the start, cloud databases and NoSQL projects aimed to scale out. Whether you’re using pizza boxes or virtual servers in the cloud, you can get more capacity by throwing more of them into your resource pool and letting the platform spread the load around.  The Visual Guide to NoSQL Systems illustrates the compromises – between consistency, availability, and partition tolerance, you can pick any two. If every client needs to see an identical copy of the data, there’s an app for that. If you can tolerate different query results in exchange for higher availability, there’s plenty of choices for that too.

MongoDB’s feature set is a good example.  They tout:

  • Auto-Sharding – Scale horizontally without compromising functionality.
  • Replication & High Availability – Mirror across LANs and WANs for scale and peace of mind.
  • GridFS – Store files of any size without complicating your stack.

If I was a business manager, I’d take those bullet points straight to my database team and ask, “Can our database do this?  If not, why don’t we try MongoDB for our next project?”  If the use case matches one of the two I described earlier, it might be a better fit than SQL Server.

No, you can’t have your cake and eat it too, and NoSQL systems don’t support anything even remotely near SQL Server’s feature set.  Forget things like joins, stored procedures, triggers, spatial indexes, CLR in the database, foreign keys, and so on.  As a performance tuner, though, that list makes me grin – because for years, I’ve been telling programmers to keep their CPU-intensive work out of the database server if you want to scale.  The NoSQL camp understands the importance of that.  These systems are about storing data – period.

No Licensing Revenue Means No Buzzword Features

My poker face, let me show you it
From my SQL Server 2008 R2 review

In my SQL Server 2008 R2 review, I lamented that the last couple of versions of SQL Server have focused heavily on Business Intelligence because it’s a sexy buzz-phrase that sells licenses. I imagine Microsoft marketing thinks of customers as saying, “We’re a business and we need intelligence – get me some of that SQL Server!” Don’t get me wrong – I’m all for BI – but sometimes it feels like buzzwords get emphasized over basics, like working IntelliSense for all versions of SQL.

Since NoSQL tools are built by the users, they’re fat-free. If nobody needs it, it doesn’t get built. On the other hand, if one very determined person needs it badly, that person builds it or pays someone else to build it.

This leads to some interesting design decisions. Many of the NoSQL tools have abandoned any sense of schema – they want to store chunks of data, but that data layout can change at any time with no rhyme or reason. Take our web filtering example – if we design our application to suddenly start saving more information, like the browser agent or the remote site’s web server type, we can do that without a problem. When we pull the data back out, we need to handle whatever kind of data we find, but we’re not worried about joining this data to another table. It’s just flat web history data without relationships.

No Licensing Revenue Means Different Development Models

Five years ago, Microsoft wanted to conquer the VLDB market, so they poured money into making SQL Server scale better.  SQL Server 2005 took on the “SQL Server can’t scale” challenge and knocked it out of the park.  We got things like partitions for fast data loads, DMVs for easy management, and online piecemeal restore for quicker disaster recovery.  Microsoft’s business decision to go after large databases paid off for SQL Server DBAs everywhere because we could use our skills on progressively larger databases.

When you pick a NoSQL or cloud database provider, the first question to ask yourself is, “Who will be developing this thing next year?”  If the platform doesn’t have a really strong developer infrastructure, and your company runs into a data storage problem, the answer might be you.  I dunno about you, but I’m pretty good at administering databases – but absolutely useless at coding them.

That means long-term customers should either:

  • Choose a database with a commercial company supporting the development
  • Have coders on staff who start getting familiar with the project’s source code
  • Consider sponsoring development of the database.  Sponsored open source development is a foreign concept to most businesses, but I’ve seen it work well even in small dollar amounts.

On the other hand, short-term customers have a completely different decisionmaking process.  Consider the second use case I described – repeated one-time, one-way analysis projects.  In that case, who cares if the database platform is still being developed a year from now?  Your database team is probably already used to repeatedly learning new systems for data import/export, and they’re skilled at techniques, not just technologies.  They’ll be comfortable switching to another platform if development dies off or if another more attractive platform comes out.  So how do you pick the most attractive platform?

How I Would Choose a NoSQL or Cloud Database

Ignore throughput performance benchmarks. The market and the tools are changing way too fast.  By the time a well-written benchmark comes out, it’s outdated in this rapidly evolving environment.  Poorly-done benchmarks can come out much quicker – but they’re not good for making decisions.

Focus on developer performance. How fast can you get started deploying and storing data in it?  Shaving days off the development time will probably outweigh the computing gains, especially since you’re going to be throwing your most skilled people at these problems.

Ask the team who will do the work. If you’re a manager on the project rather than a hands-on coder, let the hands-on people decide.  If they have personal connections to someone else using a particular tool, they might be able to get faster answers or code help.

Prioritize difficult-to-code features that work right now. If you need your reporting team to be able to write SQL-style queries against the data, only pick platforms that offer that support today.  If transaction support is important to you, rule out any solutions without it.  Don’t gamble on these challenging features possibly coming out later, because it’s tough to adapt these into existing databases.

Prefer systems that tolerate a node failure. If the database is stored across a dozen cheap pizza box servers, one of the servers is going to go down.  Your data loads and queries should still run while you provision a new pizza box and add it to the system.  Ideally, you want this systems management function to be performed by your infrastructure team, not the database people.  The closer this system comes to being an invisible managed appliance, the lower it will keep your manpower costs.  This feature is extremely difficult to add to a database system – just ask Microsoft, who still haven’t done it yet for SQL Server, and believe me, we’ve all been asking.

I want to end this with a recommendation for a specific NoSQL or cloud database solution, but I can’t bring myself to do it.  After all, the market is still evolving so fast, and I just told you to ask your team who will do the work.  If you’re looking to play around with one, though, I’d recommend trying MongoDB.  It’s the closest to a conventional database while still meeting most of the criteria I’d want for a scaling solution, and there’s even an easy-to-play-with online tutorial so you don’t have to install anything.

But don’t do it from your work computer.

You don’t want SQL Server to know you were cheating on her.


The Beer Trials Review

18 Comments

In high school, my dad’s side of the family had a restaurant and bar in Whitehall, Michigan.  The Galleon was a high-end (well, for the local price range, anyway) seafood and steak restaurant on the shores of White Lake, and we catered to the tourists and well-off locals with a taste for the finer things.  Between the restaurant’s target market and my family’s penchant for alcohol, I just bypassed the whole beer thing and went straight for the hard stuff.

Ayinger Celebrator and The Beer Trials
Ayinger Celebrator and The Beer Trials

I never tasted a beer until the ripe old age of eighteen; I went to the University of Houston and someone handed me a Shiner Bock.  I said to myself, “Hey, this beer thing isn’t bad at all!  I’ve been missing out.”

So I tried a few other beers, and … wow, was I disappointed.  In the early 90s, everybody in Houston drank Corona, and more often than not, that beer left a really bad taste in my mouth.  Literally.  I couldn’t understand why sometimes it was great, but most of the time it tasted skunky.  How could there really be so much variation in the same brand of beer?

For a decade, I stuck with Shiner Bock, venturing out only when a restaurant didn’t have it or when they offered a flight of beers.  I discovered a few other good beers in different styles, and I built up a little repertoire of favorites.  I enjoyed Dogfish Head 90 Minute IPA (thanks to Houston beer guru, IT guru, and all around nice guy Sean Stoner, aka @MaslowBeer), Guinness, a few hefeweizens, and preferred Kirin Ichiban with my sushi.

When Alexis Herschkowitsch, one of the authors of The Wine Trials (see my review), shipped me a review copy of their new book, I gotta confess that I wasn’t expecting much.  I figured they did a file-save-as, called it The Beer Trials, and had tried – and failed – to reproduce the awesome parts of The Wine Trials.  I was very, very, very pleasantly surprised to be wrong.

Thanks to page 52 of The Beer Trials, I now know why Corona is usually skunky. The clear glass lets in unfiltered light in a way that harms the beer.  If I want to find better Corona, it’s just a matter of finding places that know how to store beer properly.  Even better, I can simply glance at a beer bottle and rule it out because it’s got clear or green glass, thereby making it more likely to be skunky.  Presto – book price saved.

Thanks to the categories on page 59, I discovered that Ayinger Celebrator is even better than Dogfish Head 90 Minute IPA.  I’d been trying to figure out what kinds of beers were most like 90minIPA, and I hadn’t been very successful.  I never would have gambled on Ayinger because of its fancypants packaging – I mean, really, a plastic thingamabob hanging around the beer’s neck?  What kind of jerkface drinks something like that?  Well, now, I do, because it’s unbelievably smooth, very rich and complex, and it tastes like I’m drinking warm brown velvet.  That may not sound appetizing, I admit, but that’s why I write about databases instead of beer.

I tried several 9-rated beers out of the book before etching the pixels in stone for this review.  I wanted to know that the book was more reliable than a typical bartender.  I can report that I’m completely satisfied, and the only complaint I have is that the book doesn’t come with a companion iPhone app – at least, not yet.  In the meantime, I’ve typed the list of 9 and 8 rated beers into RememberTheMilk by category so I can access ’em from anywhere.

Authors Seamus Campbell and Robin Goldstein have pulled off a winner.  Thanks to them, I’ve found several new beers that have surprised me in a good way and made me interested in trying new beers again.  I would wholeheartedly recommend trying any beer rated highly in their trials, and because of that, the book is a downright steal at under $15.  The $15 you spend on this book will pay for itself in the first beer you try.

A few links:


Sessions I Submitted for the PASS Summit

#SQLPass
9 Comments

Every year, the Professional Association for SQL Server (PASS) holds an international Summit.  This year it’s Monday, November 8th through Thursday, November 11th in Seattle, Washington.

Anyone can submit sessions to present.  If your session is accepted, you get a free registration, saving you around $2,000.  Even if you’re not planning on going to the Summit, you should consider submitting a session if you’ve ever done presentations at the local level.  If your submissions are accepted, you get a free PASS (ha ha ho ho), and your employer is much more likely to send you to Seattle.  It’s cheaper for them, and there’s some prestige for them if their staff speak at national events.  You can submit your PASS Summit sessions here.

Hey Ma, Watch This!
Hey Ma, Watch This!

Here’s what I’ve submitted for this year:

Hey Ma, Watch This: Useless and Dangerous Stunts

If you want useful stuff, go to another session. If you’re looking for things to do on your production server, you’re in the wrong place. In this presentation, Brent will be running around with scissors, doing all kinds of oddball T-SQL stunts that have no business in the business world. If you’re the kind of person who loves using a number after the GO statement (like GO 10), then you’ll love this session.

(This is an all-new session that I’ve submitted to SQLSaturday South Florida and SQLSaturday Columbus OH.  I want to present it at smaller events before I try it at the Summit.)

You’re Not Attractive – But Your Presentations Can Be

Come hear Buck Woody (Microsoft’s Real World DBA) and Brent Ozar (SQL Server Certified Master) explain how they make high scores at presentations. It’s not luck, charm or (surprisingly) good looks – there are tips and tricks you can use to make your own presentations rock. With Buck and Brent in the same room it’s much like Forest’s Box of Chocolates, but you’re sure to learn more about presentation techniques that you can extract into your own style.

(If this one doesn’t get accepted, I’ll be seriously bummed. Buck and I have been swapping notes, laughing our rears off as we plan it out.)

Performance Tuning for Race Car Drivers

F1 - Old School
F1 - Old School

Times are tough even for the best drivers: Helio Castroneves is dancing for money and Danica Patrick is doing ads for what appears to be an adult services company. Maybe it’s time to switch careers, and Brent has just the thing. Use your hard-earned knowledge of high speeds, million-dollar hardware and surviving disastrous crashes to become a SQL Server performance tuner! In this session, Brent will show you why Colin Chapman and Enzo Ferrari would have used index tuning, database mirroring, and other tools that can give you an edge.

(This is one of my favorite presentations.  I originally gave it at SQLbits in the UK and I’ve given it at a couple of smaller online events, but never at a national event in the US.)

Virtualization and SAN Basics for DBAs

These two technologies can make a very big – and very bad – difference in how your SQL Server performs. Wouldn’t it be great if you could get the real, honest lowdown from a virtualization administrator, a SAN administrator, and a DBA? Wouldn’t it be even better if one person had done all three, and could give you the pros and cons of each point of view? That person is Brent Ozar, a Microsoft Certified Master who’s been there and done that.

(I’ve done a few virtualization and SAN presentations over the last couple of years, and I’m trying to distill them into a single “basics” presentation.  I did a webcast on this, and I got feedback that some of the topics were too advanced, so I’m still refining this one.  I’ll probably put an “advanced” one into my rotation for next year.)


Why I Pimp Our Book

33 Comments

My presentation style is really interactive.  I try to write my presentations so that I can go off on wild tangents when it’s a great question that pertains to the presentation.

It slaps! It chops!
It slaps! It chops!

In every session, though, I get at least a couple of questions that are good, but don’t quite relate to the topic.  They’re just enough off-topic that it would take me more than 5 minutes to answer.  When that happens, I either point people to a webcast or a book.  Sometimes the book is Grant Fritchey’s excellent Query Performance Tuning Distilled, and sometimes – many times – it’s Professional SQL Server 2008 Internals and Troubleshooting, and my name’s on the cover of that one.

Inevitably somebody groans and says, “Here he goes promoting his book again.”  Wanna know why I do it?

Because nobody else will, and I think it’s worth the money.

When you write a book for a publisher, that publisher has a team of marketing people who want to help promote your work.  One of their tricks is to give free copies out to encourage bloggers to write reviews. They ask the authors who should get review copies of the book.  Rather than guess, I just tweeted, “Who wants a free copy of our book to review it on their blog?”  I got dozens of responses, so Wiley shipped them out back in January.

We got exactly one blog review.  Pinal Dave (Blog@PinalDave) wrote in his review:

“There is no doubt that this book is by far one of the best books available for anybody who is interested in SQL Server Internals and applying its knowledge to real world troubleshooting scenarios. I think this is one of the must-have books for understanding SQL Server, and believe me, you will find yourself flipping the pages of the book when you are facing a trouble with the SQL Server instead of using search engine!”

So at least it was a good review, so I wanna thank him for that.  We’ve also gotten 8 5-star reviews on the book’s Amazon page, all glowing.  (Granted, a couple of them are from my family, who share my wacko sense of humor.)  But that’s it on the blog front.  I’m not upset with the people who got free review copies and didn’t write reviews.  I know people are busy, and they’ve got real jobs, and it’s a massive book to try to digest.  This post isn’t about them.

This post is about what it takes to have a successful book go out the door.  You can’t bang away on a word processor for months, throw your baby out into the wild, and expect it to fend for itself.  You have to get in front of people and say, “The answer to your question is in here.  I know, because I either wrote it, or I read the work of my coauthors, and I give it My Seal of Approval.”  Chapter 6 on Locking & Latches alone by James Rowland-Jones is one of the best chapters I’ve ever read in a technical book.

I don’t make money off the book royalties.  To put things in perspective, I would have a bigger impact on my money if I changed my health plan from PPO to HMO.  I flack this book because it solves real problems, and I know because I hear the same questions over and over when I present.  How do I troubleshoot deadlocks?  Page 216.  How do AWE, PAE, and /3GB interact?  Page 36.  How should you configure MAXDOP?  Page 163.  How many TempDB data and log files should I have?  That’s page 300.  I could go on and on.

It’s a good book, and if you’re struggling with how SQL Server works, you should buy it.  If you buy it and read it, you should review it, whether you liked it or not, because there’s some really crappy books out there, and your fellow SQL Server professionals need your help to pick the right one.


Why Use Schemas?

Development
100 Comments

The ever-insightful Buck Woody (Blog@BuckWoody) wrote a post telling you to use database schemas.  He writes:

“But I still see a lot of applications, developed by shops I know as well as vendors, that don’t make use of a Schema. Everything is piled under dbo…. But if you’ll use them properly you can make your application more understandable and portable.”

I disagree – and Buck and I started a conversation on Twitter which quickly turned into a group discussion.  It merits more than 140-character comments, but since Buck’s blog temporarily has comments turned off, I wanted to give people a place to discuss.

My thoughts: schemas are naming conventions in lipstick.  When I look at somebody’s code, the last thing I ever think is, “Man, if these tables just had schemas, I could understand everything better.”  In fact, when I see objects broken up into different schemas, I usually end up asking questions like, “Why are we writing user reports against something in the ETL schema?”  The answer comes back, “Well, it used to be an ETL table, but then our needs changed, and we couldn’t rewrite all our code, so it just turned into a production table.”  Great.

If they’re used right, they let you segregate permissions by groups of objects.  But here’s the thing – almost nobody ever does that.  It’s more work than it’s worth except in the largest of databases.  When we’re talking about a vendor app that gets sold to third parties, you usually don’t want anybody jury rigging permissions together – just query through the app like you’re supposed to, and keep your filthy hands out of my database.

Thoughts?


Free Quest TechEd 2010 T-Shirts

8 Comments

Not going to TechEd, but you wish you could pick up some of those cool vendor freebies?  I got your hookup right here.

Register for a free Quest t-shirt and you’re also entered into a drawing for a $200 AmEx gift card.  Rules and restrictions apply.  Drawing not open to my family members, people who live in other countries, or people who dilly-dally – time limited….


TechEd 2010 Schedule and Info

6 Comments

Here’s the sessions I’m planning on attending at TechEd 2010 (my first TechEd!):

Sunday:

Monday:

  • 7:30AM – at Cafe Dumonde (800 Decatur St) with Buck Woody and anybody else who likes chicory coffee and addictive beignets.
  • 9:00AM – Keynote by Bob Muglia
  • 10:30-2:45PM – Quest booth #1800 in the expo hall
  • 2:30PM – Media briefing with Brendan Cournoyer (TechTarget)
  • 2:45PM – MGT203 System Center Roadmap by Garth Forth – auditorium B
  • 4:30PM – DAT307 SQL Server Private Clouds by Rob Reinauer – room 283
  • 5:45PM – Partner Expo – Quest Booth. Tell your friends, “I’m at the bar with Ozar.”

Tuesday:

  • 7:30AM – at Cafe Dumonde (800 Decatur St) with Buck Woody and anybody else who likes chicory coffee and addictive beignets.
  • Morning – Quest booth in the expo hall
  • 10:30AM-12:30PM – Microsoft SQL Server Mission Critical Booth
  • 1:30PM – VIR304 Hyper-V and Dynamic Memory by Benjamin Armstrong – room 295
  • 3:15PM – DAT313 Planning Large-Scale SharePoint/SQL Deployments by Joel Oleson – room 283
  • 4:30PM – Interview with Kevin Kline and Karen Forster (PlatformVision)
  • 5:00PM – DAT210 Database Design Methodologies by Buck Woody – room 293
  • 7:00PM – Microsoft Community Influencer Party (wasn’t sure if I was supposed to blog this, but it’s listed here)
  • 8:00PM – Double-Take Cluster Funk Party (I’ll be at the Influencer party, but I’m listing this one here in case you’re looking for something to do)

Wednesday:

  • 7:30AM – at Cafe Dumonde (800 Decatur St) with Buck Woody and anybody else who likes chicory coffee and addictive beignets.
  • 8:00AM – VIR315 Windows Hyper-V Performance Analysis by Clint Huffman and Kenon Owens – room 391
  • 9:45AM – OPS310 Fine Tuning Your SharePoint Environment by Mike Watson – room 388
  • 11:45AM – DAT316 – My session!  Top 10 Developer Mistakes That Won’t Scale – room 391
  • 1:30PM – BOF23-IT – Going To The Cloud: Are We Crazy? room 354
  • 2:30PM – Media briefing with Ian Murphy (Data Centre Times, ComputerWeekly.com)
  • 3:15PM – DAT317 -The OVER Clause: Your Key to No-Sweat Problem Solving by Adam Machanic – room 293
  • 4:30PM – Media briefing with Megan Keller and Sheila Molnar (SQL Server Magazine)
  • 5:00PM – WCL404 – Windows 7 & Server 2008 Kernel by Mark Russinovich – auditorium B
  • 7:00PM – Best of TechEd Awards Ceremony – Hard Rock Cafe
  • 9:00PM – Quest Tweetup at Bourbon Street Blues Company (RSVP only, sold out)

Thursday:

  • 7:30AM – at Cafe Dumonde (800 Decatur St) with Buck Woody and anybody else who likes chicory coffee and addictive beignets.
  • 8:00AM – SIA334 – Secrets of Effective Tech Talks by Mark Russinovich – auditorium C
  • 9:45AM – DAT405 – T-SQL Tips and Tricks by Itzik Ben-Gan and Tobias Ternstrom – room 272
  • 3:15PM – DEV301 – Oracle Development Using Visual Studio by Daniel Norwood – room 281
  • 5:00PM – DAT305 – Largest Mission Critical Deployment of SQL in the World by Kevin Cox – room 272
  • 6:30PM – TechEd Party

TechEd Twitter Accounts:

  • @TechEd_NA – the official feed.  Retweets planners and vendors, runs contests now and then.
  • @RobNic_TechEd – Twitter feed for a TechEd planner.  You can check his photos to see the swag like the water bottle and backpack.
  • @TheKrewe – hard-partying TechEd attendees with a private Facebook page that denied me entry.  See, you guys think I have all kinds of inside connections, and I can’t even get into a damn Facebook page.  Famous my rear.

Did I miss anything?  Is there anywhere I should be?  I might have missed some cool sessions – there’s just so many with conflicting times.  So many sessions, so little time…


I passed the MCM! iPads for everyone!

Quest: “Brent, here’s a top-of-the-line Apple iPad 3G, case, camera kit, dock, and all the trimmings.”

One for me, one for you.
One for me, one for you.

Me: “What?  Why?”

Quest: “Before you went for the Microsoft Certified Master program, you kept telling us how hard it was and how high the failure rate was.  We wanted to thank you for putting in so much hard work.  We really appreciate it.”

Me: “Wow, that’s awesome!  What other tests can I take next?”

Quest: “Speaking of that, we need you to come up with ten questions about yourself.  We’re going to run a test of our own, asking people questions about you.  Then we’ll take the entries, hold a drawing, and give one of them an iPad too.”

Me: “Are you kidding me?  All this because I passed the MCM?  What if I wouldn’t have passed?”

Quest: “Instead of a whole pad, you would have gotten just a slip.  A pink slip.”

Me: “Right.”

Wanna win an iPad? Go take the test! (Update: contest over.)


SQL Server 2008 R2 Review

27 Comments

In August 2008, Lady Gaga released her premier album The Fame. This 13-track work produced several hit singles including Just Dance, Poker Face, and Paparazzi – but it also produced plenty of controversy. Her exaggerated use of fashion, musical cliches, and sex gave her plenty of media attention – both good and bad. If you’ve never heard one of her songs or seen a video, the first 30 seconds of Poker Face will give you a pretty good idea of her style (musical and otherwise). Actually, you don’t even really have to hit play – the first frame showing her poolside between to two Great Danes probably gives you a pretty good idea where things will go next.

Anybody can get famous doing an Internet donkey Great Dane show. The big challenge for suddenly-famous artists isn’t the first release, though – it’s the sophomore release. The second album shows if the star has the potential to keep cranking out new material, or if they drop off the face of pop culture as a flash-in-the-pan.

A little over a year later, Gaga released a followup album called The Fame Monster, but there’s some debate over whether it should even be considered her sophomore work. Due to the short time between releases, its shorter length (only 8 tracks), and its sales method (often packaged with The Fame in a single box), it was seen as an extension of her debut album. This effort didn’t win over any new fans; if you didn’t like The Fame, then The Fame Monster wasn’t going to turn you into a Little Monster, as Gaga fans are known.

It’s a lot like SQL Server 2008 and 2008 R2.

Microsoft SQL Server 2008: The Fame

It’s impossible to review this month’s newest release from Microsoft, SQL Server 2008 R2, without reflecting back on the recent release of SQL Server 2008. R2 comes quickly on the heels of 2008 and tells more of the story that was first started in 2008.

SQL Server 2008’s hit singles for production DBAs included:

  • Backup compression – this instant-winner of a feature has been available in third party software like Quest LiteSpeed for years, and 2008 Enterprise Edition users got it built into the engine.
  • Transparent Data Encryption – if you need it, you desperately need it. TDE makes it ridiculously easy to protect your company’s data from headlines about stolen backup tapes.
  • IntelliSense – wildly popular at first, but quickly fell off the charts as users discovered it didn’t work with previous versions of SQL Server.

The less popular B-side songs were:

  • Data compression – like backup compression, this feature can give an instant performance benefit under certain circumstances. Even better, the data is only compressed once, and then all backups are smaller and faster without repeated CPU work. I think this is the most underrated song in the album, although filtered indexes & statistics are a close second.
  • Policy-Based Management – a cult favorite that hasn’t managed to crack the charts for widespread adoption. Everybody’s heard about this song, but nobody knows the words.
  • Resource Governor – originally touted as the ability to stop runaway queries or ease consolidation pains, this didn’t actually work as intended due to its inability to throttle IO. Storage is usually SQL Server’s biggest bottleneck.
  • Spatial data – programmers have worked around the challenges of storing latitude/longitude data in RDBMS’s for years. With support built into the engine, now developers could use spatial indexes to execute tough queries much faster.
  • Filestream storage – answering a question DBAs everywhere kept asking, “How can we make our databases larger and more difficult to back up?”

The release was chock full of upbeat songs, but the beats were just a little too tricky for mainstream dance clubs. SQL Server 2005 was good enough, and companies didn’t have the money to roll through quick upgrade projects, so I didn’t see a widespread adoption of 2008. In the recent PASS Summit poll, 52% of responders said less than half of their servers were SQL Server 2008. I haven’t heard anyone say they dislike SQL Server 2008 – they just didn’t care quite enough to deploy it to every server in the shop.

SQL Server 2008 R2: The Fame Monster

Real music critics seem to have a somewhat positive view of The Fame Monster, giving it 75 points out of 100 on Metacritic. Gaga clearly resonates with the purchasing public, having earned over 17 platinum records as of this writing. People between those two extremes have a much more negative reaction, however – my music-critic friends (people who think they know a lot about music, yet don’t have jobs in the business) uniformly hate her. They say she’s low-brow, populist, and oversexed.

SQL Server 2008 R2 will have a similar reputation in the database world. Analysts, the IT industry’s equivalent of music critics, love SQL Server. On the other extreme (paying customers), Microsoft sells the heck out of SQL Server, so it seems to be popular with the folks with money. People in the middle are more divided, though – I hear plenty of people on other platforms referring to SQL Server as not good enough for all kinds of reasons. It’s too expensive, it’s not full-featured enough, it’s too-full-featured (yes, that’s the NoSQL claim), it’s not open source, the list goes on and on.

People who liked SQL Server 2008 will like 2008 R2, but for different reasons. It brings some really new material to the party, albeit with exactly the same theme as 2008.

PowerPivot Caters to the Paparazzi

Lady Gaga Fan Art
She's no Donald Farmer, but she'll do

Microsoft used sex to sell SQL Server 2008 – and that sex was Business Intelligence. BI is by far the sexiest topic for businesses today. It’s in every magazine, every book, and companies are dying to figure out how to get more actionable information out of their raw data. SQL 2008’s material read like a pinup calendar – “We’ve got all your forms of data right here, big boy! C’mon over and analyze me.”

R2 takes the sex appeal even further – BI isn’t in the hands of pros anymore, but rather amateurs. Any sleazy middle manager with a fetish for data can whip out an Excel spreadsheet and get his PowerPivot on, doing multi-million-row analysis on his laptop.

This high-quantity, low-quality analysis comes with its own challenges. Who rates the data? Are you sure the numbers in that loose schema are right? Is that juicy profit figure really profit, or a big, fat, hairy loss masquerading as something else? Who let that underage data into the corporate report? And in the middle of a steamy analysis session, does anyone even care?

PowerPivot doesn’t appeal to buttoned-down database administrators accustomed to pure, cleansed data stored behind locked doors, but that’s not the point. It sells to managers and executives who want fast, easy access to decisionmaking numbers, and they’re going to love it – especially when combined with SharePoint.

StreamInsight: It’s Money Honey

Packaging StreamInsight in the SQL Server box will be controversial, but the feature is great for developers. StreamInsight helps developers analyze massive amounts of incoming data – think stock trades, Twitter, or clickstream data for web sites. Developers can then build rules (no, not with T-SQL) to handle and parse that data.

Notice how I said “developers” three times in three sentences?

StreamInsight doesn’t really have anything to do with SQL Server. The coding is done in Visual Studio and the data doesn’t go through the SQL Server engine. SQL Server just happens to be a really expensive box – especially the Datacenter Edition, where StreamInsight is best used – and Microsoft needs to monetize this product. Presto: StreamInsight becomes part of SQL Server.

Database administrators can safely ignore this feature because they won’t be deploying it, managing it, backing it up, etc. CIOs, however, need to pay close attention to what features are bundled into what editions, because buying SQL Server is getting a little more complicated.

CIOs are Seeing Microsoft’s Poker Face

My poker face, let me show you it
My poker face, let me show you it

SQL Server 2008 R2 brings a new top-end SKU, Datacenter Edition. Microsoft breaks down features by edition, but here’s my simplified explanation:

Express Edition (Free) has:

  • Databases up to 10GB
  • Completely free

Standard Edition (roughly $6k/socket) adds:

  • No limits on database size
  • Backup compression

Enterprise Edition (roughly $30k/socket) adds:

  • Up to 8 CPU sockets
  • Management features for up to 25 instances
  • Virtualization rights for four guests – on a two-socket server, you can buy two sockets of SQL Server 2008 R2 Enterprise Edition, then run four virtual servers on there with SQL Server.
  • Data compression, online index rebuilds, and other engine features that help with databases over around 100GB

Datacenter Edition (roughly $60k/socket) adds:

  • Unlimited CPU sockets
  • Management features for over 25 instances
  • Unlimited virtualization rights – on a two-socket server, you can buy two sockets of SQL Server 2008 R2 Datacenter Edition, then run an unlimited number of virtual servers on there with SQL Server.

With R2, prices went up, and I’m totally okay with that. I’m not a Microsoft shill here – I think the market has changed, and Microsoft’s prices needed to reflect it. Virtualization is on fire. Microsoft has to price products not just for today, but for now through the next release. Intel’s packing more and more cores per chip, Cisco’s got blades that handle an insane amount of memory, and I routinely see virtualization hosts with more than 4 guests on them – usually several times that many. It’s not inconceivable that we’ll see hosts with more than 4 virtual SQL Servers on them soon as well, and Microsoft licensing revenues would plummet.

The price increase also sort of reflects the new tools like PowerPivot and StreamInsight – but only kinda. Some of the new features don’t have polish, and there’s a risk of them being one-and-done.

I Like It Rough: DAC Packs

Maybe not that rough.
Maybe not that rough.

The iTunes release of Fame Monster includes a bonus track, “I Like It Rough,” that depicts a relationship where both sides do a lot of giving and taking. It’s insanely catchy, but with the subject matter, I can see why it didn’t get widespread release.

DAC Packs are R2’s bonus track. I’ve written about DAC Packs before, and I believe they have an awesome long-term potential. The version shipped in R2 is very rough for all kinds of reasons – it does side-by-side deployments (copying your entire database just to change a single stored proc), it doesn’t support a lot of database features, there’s no tooling whatsoever for DBAs, and it does a worse job of just about everything than Data Dude did. (And nobody bought Data Dude, either.)

Microsoft says that DACs are a down payment on a bigger vision – and I do believe in that vision – but Microsoft has a pretty bad credit score. They make an awful lot of down payments, and then when the first monthly invoice comes in, they seem to have left their wallet in their other pants. Want to see a credit check?

  • SQL Server Notification Services
  • English Query
  • DTS (how do you like rewriting all those packages into SSIS? Good times, eh?)
  • HTTP SOAP access (I’d almost forgotten about that one, but it was even one of Microsoft’s Top 10 Features for DBAs in 2005. Quote: “…eliminating the need for a middle-tier listener, such as IIS, to access a Web services interface that is exposed by SQL Server 2005.”)
  • Vardecimal (yes, we actually had a one-and-done datatype)
  • Service Broker (yes, it still works great, but there haven’t been any investments here whatsoever)

Ouch. That’s a lot of things they bought on layaway, and then never paid for.

In my Top 10 Developer Mistakes That Won’t Scale presentation, my #1 thing to avoid is relying on v1.0 features. Sometimes Microsoft follows through and improves the feature over time, like SQL Server Integration Services. Sometimes, though, they forget their wallet and look the other way. When I’m making architectural decisions on where to invest programmer resources, I follow Microsoft’s own lead – if they didn’t care enough to invest the time it takes to do something right, then I won’t invest my own time in it either. Let’s see if they make the next payment first.

The old adage used to be, “I won’t deploy it until Service Pack 1, because there might be bugs.”

Now I tell my developers, “Don’t code against it until V2, because there might not be one.”

Like Fox Mulder, I want to believe, but Microsoft needs to pour a whole lot more work into DAC Packs – fast. Otherwise, server virtualization is going to bypass database virtualization as a better way to solve management problems.

SQL Server 2008 R2: Not a Bad Romance

If you’re into dance music, you couldn’t help but hear The Fame when it came out. If you liked it, you’re going to like The Fame Monster, but if you didn’t like it, The Fame Monster won’t change your mind about Lady Gaga. The Fame Monster is really just more of the same songs in the same style.

Most SQL Server professionals who liked SQL 2005 are going to pick up this latest release, throw it into their playlists, and keep right on working as if nothing changed – because for the most part, it hasn’t. SQL Server’s engine hasn’t really changed since 2005 came out. Unlike The Fame Monster, though, I think R2 has a chance of winning over people who weren’t fans of SQL Server before. Microsoft is extending its range with StreamInsight, PowerPivot, and Parallel Data Warehouse Edition, and these might bring in a new audience.


5 Things SQL Server Should Truncate

47 Comments

Paul Randal (Blog@PaulRandal) nailed a blog post to the church wall entitled, “What 5 things should SQL Server get rid of?” His choices included auto-shrink, putting databases in full recovery by default, GUIDs as clustered indexes, and more.  He tagged me, and I knew right away what I’d say.

5. IntelliSense restrictions on 2000/2005.

Look, the game is up.  We know it worked in the early betas of SQL Server 2008’s Management Studio, and you pulled it at the last minute.  We have a sneaking hunch you pulled it because you wanted to force users to upgrade their servers from 2000 and 2005 up to the new hotness, but that’s not how it works.

Sex Panther: 60% of the time, it works every time.
Sex Panther: 60% of the time, it works every time.

The execution of this feature managed to instill doubt in the quality of SQL Server.  Even when it works right, it only works on some of our servers (since they’re not all 2008), so we keep pausing when we expect IntelliSense to kick in.  Do I feel lucky?  Maybe I should wait another second?  Ah, screw it.  We end up asking ourselves, “Why isn’t IntelliSense working here?  Is it a bug, or is it – oh, wait, I’m just connected to a crippled server.”

And don’t give me the excuse that you didn’t have time to test it fully with the older versions, Microsoft, because it didn’t get any better in SQL 2008 R2.  You just gave up implementing and went on to the next shiny thing, which brings me to #4.

4. Any feature described using the phrase “down payment.”

Where I’m from, if you can’t pay for something, you don’t bring it to the cashier.  Layaway is for suckers, because the store makes money off the interest your money makes while they’re holding on to it for you.  Credit cards aren’t much better, but at least you can give it to the cashier and take the item home with you right there.

Microsoft has been putting a lot of features on layaway lately.  They make a down payment, and when the next payment comes due in vNext, gee golly, they left their wallet in their other pants.  I’ll talk about this in more detail in my SQL Server 2008 R2 review coming out this week.

Xzibit's really been phoning it in lately
Xzibit's really been phoning it in lately

Wanna make a down payment?  Go ahead – but don’t tell all your friends you just started paying for something on layaway.  Mum’s the word.  Nobody needs to know you’re living paycheck to paycheck and that you can’t afford those dub spinners just yet.  Make your payments, and when you’ve got all four, get ’em mounted and show ’em off.  Otherwise, you look like a moron saying, “My truck is gonna look *awesome* next year when I get that Resource Governor paid off – don’t look at it yet, though.”

3. Database Diagrams.

In SSMS, when you drill into a database, the very top thing is “Database Diagrams.”  You might think the list is in alphabetical order, but no – look closer.  Synonyms comes above Programmability.

Because, you know, THE ONE THING WITH ABSOLUTELY NO FUNCTIONALITY THAT’S NEVER INSTALLED ON ANY SERVER BY DEFAULT SHOULD BE THE VERY TOP OPTION.

Bonus points for putting it right next to Tables, thereby ensuring that I accidentally click on Database Diagrams at least once a week.  But those hard-working Microsofties just couldn’t stop there, no.  Clicking into Database Diagrams gives you a big, ugly error because nobody ever installs this craptastic feature.

This has annoyed the holy hell out of me for the last five years.  It’s not just a layaway feature problem – it’s a simple basic design error.  You don’t put rarely used optional stuff at the top of the list.  Period.  Design 101.  Which leads me to the next thing SQL Server should get rid of…

2. Every SSMS UI designer.  Send in Donald Trump.

The Cobra
You're Fired

Your server can have blocked transactions, huge rollbacks going on, databases with autoclose/autoshrink enabled, 99% fragmentation, and you’ll never know.  SSMS is the worst server administration tool I’ve ever seen when it comes to telling me if my servers are healthy.  I have to drill way, way, way down into submenus to discover – oh my goodness – I’ve had hundreds of database corruption errors in the last 24 hours.  That sounds awfully critical – SO WHY IS IT BURIED IN LOGS NOBODY EVER READS?

It’s not called SQL Server Development Studio.

It’s called MANAGEMENT Studio.

And everything about this design is wrong – even just start with the basics, the list of things you see when you connect to a server.  There’s Databases, Security, Server Objects, Replication, Management, and SQL Server Agent.

Pop quiz – is the Distributed Transaction Coordinator a Server Object or Management?  Nope, I never remember either.  How about Operators?  Those sound like they could be Security or Management – nope, SQL Server Agent.  Throw a stick of dynamite in there and start over – and by “there” I don’t mean the code, because it’s too late for that now.  Every DBA has been trained to this ridiculous system, but we need to make sure any future tools work better, so the dynamite goes into the cubicles.

1. The shrink option in maintenance plans.

I totally understand that sometimes you need to shrink stuff.  I get it.  I’ve been there.  But you shouldn’t ever automate this to happen every X days.  Ever.

After all that ranting, I’m spent.  I’m supposed to tag 5 more people, but I’m gonna do something different this time.  I’ve heard from bloggers (not just Kevin Kline, either) that they get frustrated when nobody tags ’em, so if this post resonates with you and you’ve got something to add, tag yourself below in the comments.

I need a cigarette.  And maybe some Sex Panther.

Update 5/12: David Ramel, a columnist at Redmond Developer News, says this post is full of “rambling, inchoate gripes.”  I found out not because I read his blog (I’d never heard of it) but because I’ve got Google Alerts set up.  Anytime anyone says the word “inchoate” I want to know about it right away.  I wasn’t quite sure how to react, though, because he said there was “bellicose bombast across the blogosphere,” and I wasn’t entirely sure what any of those words meant.  I tried asking him a question on his Twitter account, but it looks like he hasn’t been around since about a year ago when he was looking for some jobs training:

Crickets
Crickets

Hmmm.  I’d leave a comment on his blog, but it’s only had two comments since April, and he hasn’t responded to either of ’em.  Hey, maybe he’s taking tips from my blog!  Sounds like he’s reading this, so I’ll just leave him this note here.  😉

Just having a little rambling fun, sir…


I ___ with Brent Winners

5 Comments

You people are crazy.  Crazy like foxes.

Lacie Iamakey USB Drive
Lacie Iamakey USB Drive

You responded to my call for slogans with some really hilarious ones.  Here were my favorite three, each of which will win a Lacie iamakey USB drive:

  • I trololo with @BrentO – Jeremiah Peschka (with tweak by Mike, who refused to take credit for that)
  • I’m at the bar with Ozar – Rob Boek (was the first to get this in.  I know it won’t work on the button, but it’s so good I had to keep it anyway.)
  • I Costar with Ozar – 8kb

And some of my favorite runners-up, many of which I probably couldn’t sneak onto buttons but they rock anyway:

  • I Star with Ozar – David Stein (I know, so close to Costar, but Costar worked better.)
  • I crowbar with Ozar – Jeremiah Peschka
  • Stay bizarre with Ozar – Scott
  • FUBAR? Call Ozar – Bill Fellows
  • A crescendo of @BrentO – Stefan Nelson
  • Run the show with @BrentO – John Sansom
  • I Cruise with Brent – Yanni Smith (it doesn’t rhyme, but it makes more sense when you find out that she really is cruising with me)
  • I Plagiarized Brent (came up with that one myself, although only my regular readers would get it – not that any of you are regular)
  • I have B.O. – Joe Janhonen
  • SELECT * gave me Brent Ozar – Brian Tkatch
  • I can haz Ozar – Nicholas Cain
  • See that scar? Ozar. – Jen McCown

This. Was. Awesome.  You people totally made my week with your suggestions, and now my slogan cup overfloweth.


DBA Survivor by Tom LaRock – Book Review

Book Reviews
16 Comments

How do you become a DBA?

Usually the answer is, “By accident.” You’re a developer or a Windows admin, minding your own business, when the company acquires a SQL Server or somebody installs SQL on a server somewhere. Since you’re the closest thing to a DBA in the shop, your manager asks you to keep an eye on the server – but nobody really even knows what that means.

Six months later, you’re struggling with backups, security, best practices, and you don’t even know what you’re supposed to do first each morning. Or maybe you get the idea that you want to take these newfound skills to a bigger company, and you get a job as The DBA. You don’t have a mentor and you can’t ask questions to anybody. What’s supposed to happen next? DBAs usually work in solitude without guidance, career plans, or heck, even a job desciption.

DBA Survivor
DBA Survivor

That’s where Tom LaRock’s book comes in.

There’s hundreds of books about database administration, but until Tom’s, I hadn’t seen one that laid out the job itself in plain, simple language. He explains the soft skills side of this landmine-filled position and teaches you the political tricks that most DBAs (myself included) don’t pick up until they’ve made half a dozen years of mistakes.

Tom’s personal history qualifies him well to write this book. He’s been a basketball coach, a DBA, and now he leads a global team of DBAs at a major financial institution. His peers elected him to the Board of Directors of the Professional Association for SQL Server. If you were going to pick someone who’s survived the DBA career path and been successful with it, Tom would make the short list.

I reviewed Tom’s book as it was being written, as did a few other SQL community members, and Apress decided to include the reviewer comments in the book itself. I loved this approach, and I think it adds to the book.

My big concern about DBA Survivor is that the people who really need it – accidental DBAs – aren’t going to find out about it early enough in their career. That’s where you, dear reader, come in. If you’re reading this blog, you might already be past the point of your career where you need is book. However, the next time a junior DBA, programmer, or Windows administrator comes to you for advice about SQL Server, consider mentioning this book to them. It will help them get their career on track and prioritize their work to avoid disasters down the road.

Check out DBASurvivor.com to read excerpts from the book.


Why You’re Not Telecommuting

Professional Development
15 Comments

Want a job working from home like Jeff Atwood described in his On Working Remotely post today?

You’re probably not gonna get it.

You Take Too Long to Prove Yourself

Think about how long it takes for you to:

  • Get your company equipment
  • Get your environment set up
  • Understand how the company’s system works
  • Work with your manager to find out what needs to be done
  • Contribute your first piece of work (code, management, whatever)
  • Get someone else to check your work
  • Get that other person to give feedback to the manager on the quality of your work

It’s not quick, and that whole time, you’re getting paid.  Say it takes a month for all this to happen – I know, you think it’s gonna be faster, but in companies, it often takes quite a while.  If the company finds out your work sucks, they don’t fire you on day 31.  They will likely assign you more work, and the cycle will continue while they give you a couple of chances to get it right.

When they finally fire you, they have to start the hiring process all over again, which sets them back months.  In many businesses, the most precious commodity isn’t money – it’s time.

Companies Think Onsite Staff Are Different

Sure, you and I know that bad programmers masquerade as perfectly good people.  They fool managers with their ThinkGeek t-shirts and their penchant for Red Bull.  They don’t talk much during the interview and they act scared – but so did you, and so does almost every other job candidate.  It’s really, really hard for managers to interview IT job candidates.  (Don’t send me links to interview questions – I’m not telling you it’s hard for me to do this interviewing, I’m just telling you how it is with other managers, because I talk to ’em a lot.)

Companies figure they’ll do the best they can with the hiring process, then they’ll watch the new guy like a hawk for the first couple of months.  They’ll make sure he shows up to the desk on time and that his breath doesn’t smell like beer.  (What, you thought your manager came around in the beginning just because they wanted to see if you liked that $49 office chair?)

Managers will ask coworkers a lot of questions.  “How’s the new guy working out?  Can you watch him for me?”  Sure, this stuff might work remotely, but it works much better in person when you’re sitting next to each other in those 6×6 jail cells cubicles.  Managers think they’re going to walk by the cube and see the new guy drooling on his keyboard if he’s incompetent, but of course you and I know it doesn’t really work that way.

You’re Competing with Everyone

Pop quiz: when you apply for a telecommuting job, whose salary range do you have to compete with?

  1. The company’s home office city
  2. Your city
  3. Bangalore

The answer is 3.  You might think offshore programmers aren’t applying for the job you want, and you might be right, but there’s another factor.  Consulting companies with huge numbers of offshore staff often hire onshore salespeople to build relationships.  These salespeople approach managers and say, “Hey, need a DBA or a C# programmer?  I’ve got senior guys available for just $30 per hour, no commitment required.  They report to our offices, where we make sure they’re drug tested and security checked.  If you get a bad one, we’ll switch him out for another one as often as you want.”

That means the hiring rank goes like this:

  1. Onsite staff that the company can see
  2. Offshore staff that the company can’t see, but someone else manages
  3. You working from home in your skivvies

That’s the way it works today.  Game over.  Deal with it.

How to Beat the System

Telecommuting
Telecommuting

I’ve been telecommuting on and off for ten years, and there’s three simple things you can do to get a telecommuting job.

Get in the door first. Start as an onsite employee, and after you’ve proven yourself and established your worth, gradually introduce telecommuting.  This is difficult.

Prove yourself cheap and fast. I do remote DBA consulting, but the first gig for a company is almost never remote.  I show up at their offices, do a performance tuning session or a health check, and within 48 hours they have a laundry list of actions to improve their environment.  I go out of my way to document the improvements in a way managers will love.  At that point, I can sell them on remote work because they like my results and their staff enjoys working with me.

Prove yourself before you even start. Have public results they can find without even talking to you.  Be the absolute best at something, and when someone’s looking for the best, they’ll see your results.  They’ll approach you without you even asking, and at that point, you’re able to say, “I can’t fly to ___, but I can do remote work and it’ll be better for both of us.”  If you’re the best there is, you can set up these kinds of demands.  And yes, this really does work – especially if you’re one of the stars on an open source project that companies rely on.

Want to read more of my articles on telecommuting?


StackOverflow VC, SQL Server, and Whuffie

Stack Overflow
11 Comments

Yesterday StackOverflow announced that they’d accepted $6 million in venture capital funding.  Joel Spolsky held a quick public chat to discuss it, and there were some interesting questions from the audience.  I’m going to paraphrase some of the questions and give my own answers.

Q: Now that StackOverflow is going to be big, will they need to dump SQL Server for NoSQL?

If you were going to write a list of things you should never do to SQL Server that needs to perform fast, StackOverflow would check a lot of the boxes:

  • Using LINQ and Full Text Search heavily for queries
  • Storing data on SATA drives
  • Putting both data and logs on the same drive (not to mention the full text catalogs)
  • Using one server, no fancy replication for load balancing

And SQL Server handles the load just fine.

Q: What? I thought M$$QL was the suxx0rz?

Two things make all the difference.  First, it’s not really all that much load.  StackOverflow is the smallest SQL Server database I work with by an order of magnitude.  Most of my SQL DBA readers manage much bigger databases on a daily basis and yet consider themselves to be junior DBAs.  There’s a disconnect between what programmers see as big data versus what enterprises see as big data.  For example, in the last two weekends, I’ve done performance tuning gigs for two separate companies that had data more than 20x the size of StackOverflow’s, yet didn’t have a full time database administrator.

Second, the staff really knows what they’re doing.  They know you’re supposed to cache frequently reused data in the app tier, for example – sounds obvious, but it’s trickier than it sounds.  If you’re really good – and I don’t mean “I’ve got a blog” good – you can build amazing stuff with just about any tool.  You could build something of StackOverflow’s size on any database platform out there.

If you think the reason your code can’t scale is because of the language or database, you’re probably doin’ it wrong.

Q: How much of that $6 million did you get?

None.  I’ve never been paid by StackOverflow.  If I was Joel and Jeff, I’d give money/stock/cocaine to the community moderators long before I gave it to Brent Ozar.  My work is tiny compared to the moderators, and I’m glad (although a little sad) that they recently revamped the StackOverflow About page to reflect that.

That’s right – I get paid in pixels.

Q: Awesome, here’s a picture of bacon. Now I need your help with…

No.  I help with DBA work at StackOverflow for the same reason you answer questions there.  When you post an answer, add tags, or help clarify questions, your reputation score goes up.  You don’t make money on directly – it’s just fun doing it.

But as your score gets higher, you can use that for things in ways that don’t seem immediately obvious to you yet.  I touched on this in my recent Rock Stars, Normal People, and You post.  Jon Skeet is an extreme example – he can probably walk into any geek gathering, show his ID, and people will start buying him drinks.  If he posted a tweet saying he was looking for work, you’d better not hope you have anything pending at the printer, because an army of programmers will be printing up Jon’s resume immediately to run into their boss’s office and say, “WE GOTTA HIRE THIS GUY!”

The Whuffie Factor
The Whuffie Factor Explains Everything

Your StackOverflow score is your living resume.  It’s like whuffie in Down & Out in the Magic Kingdom – it’s a currency that you can use to get things.  When you get to a high enough score, you can trade it for things – things like consulting gigs.  Companies will look at something like StackOverflow, look up the C# tag, and find the highest rated people.  They’ll review your answers, see the high votes from your peers, and then check your availability for short-term consulting – perhaps even just a single hour.

Not every question can be asked in public, and not every answer can be given without spending time in the client’s systems.  Most importantly, those questions and answers are where the most money changes hands.

Q: But your StackOverflow score sucks.

Yep, I’m part of the old guard.  I’m 36.  My generation had/has a different way of measuring reputation, and frankly, it sucks.  We gauge reputations based on personal relationships with people we’ve met, usually in person but sometimes through social networks.  We’re limited to a smaller group of experts on any given topic.  When I need help with something, I have a fairly limited number of trusted people I can call on.

I work (a little) on StackOverflow for free because it’s the old-school equivalent of a reputation score.  People have come to me and said, “I hear you’re the database guy for StackOverflow – what would it take to get you to help me with ___?”  That’s why I’m quite happy to take my pay in pixels, and why I know that your high StackOverflow or ServerFault reputation score will be worth money down the road.

How much would you pay for one hour of Jon Skeet’s time?

What if you had a tough C# question and you couldn’t show your code in public?  What if you wanted to listen to him do training presentations about what he knows?  Would you pay real money for that?  I know that you would, because people are paying to attend SQLCruise with me and Tim Ford, and people lined up to pay $99 to get into StackOverflow DevDays.  What if you had a really high StackOverflow/ServerFault reputation for a given tag, and you organized an event like SQLCruise or DevDays for your own tech interest?

Reputation is everything.  This is why I get so excited about StackOverflow’s reputation scores – conventional forums failed not just because they’re painful to navigate, but because they didn’t measure things.  When you measure reputation, you enable all kinds of ways to make money.


I ___ with Brent

Humor
188 Comments

I need creative help with my name.

At TechEd, Quest is promoting their MVPs and experts like Joel Oleson and Kevin Kline with a really cool series of buttons, t-shirts, and banners.  Joel and Kevin have awesome buttons:

Joel and Kevin - Awesome Buttons
Joel and Kevin - Awesome Buttons

Really cool, right?  But what on earth do we do with a guy named “Brent Ozar”?  The marketing department will never approve a button that says, “I Got Spent with Brent.”

Lacie Iamakey USB Drive
Lacie Iamakey USB Drive

So that’s where you, dear reader, come in.  Leave your best button slogan with Brent or Ozar in it, and next Monday, May 10th, I’ll pick my three favorites and announce the winners here.  I can’t promise that the marketing team will let me use my favorite one, but it’s worth a shot!

The winners will each get an 8GB Iamakey drive.  Open to US and Canada only, unfortunately – the shipping kills me.

C’mon, smart people – show me that creativity.  Don’t make me wear a button that says, “I Rent Brent.”


Rock Stars, Normal People, and You

I’m just like you, except I’m from your future.  Lemme rewind a few years and explain.

My Job Search Five Years Ago

Not as Happy as I Look
2005 – Not as Happy as I Look

In 2005, I was working from home doing database administration, coding, and Classic ASP.  I absolutely loved my coworkers, but I was burned out, and the company was in rough financial shape.  They’d missed a couple of paychecks, and I decided I needed to make a change.

After months of careful searching, I went to work for a consulting company because I had this idyllic image of consultants; I saw them as the best of the best, hired guns who were called in when the situation was really dire.  At my company, we’d had a couple of situations where we’d cried out, “We’re in over our heads!  Bring in the consultants!”  People in suits rolled in with briefcases, asked questions, and gave us answers that sounded pretty good at the time.  I naively thought I’d be working with an elite squad of gurus who could help me take my skills to the next level.  Data warehouse project in dire need of T-SQL skills?  I’m in – sign me up.  The client’s BI team had been building the data warehouse for the last two years.  Two months before it was set to go live, they all simultaneously quit, leaving no documentation behind.

Consulting wasn’t quite what I’d expected.

My instructions were to report to the client’s office, share a cubicle with my fellow consultants, don’t touch anything, don’t talk to the client, and look busy.  My whole purpose on the payroll was to bill hours.  The project plan called for a DBA, therefore the company could bill for DBA hours without me really doing anything.  My salary was less than the company’s billable rate, so I made money for them just by sitting there, and of course they wanted me to sit there for a lot more than 40 hours per week.

I had to bite my tongue while my project manager made one horrendous design decision after another.  (“Let’s store both the natural and surrogate keys in the fact tables, and index all combinations of both of them.”)  The manager made Dilbert’s boss look brilliant – and friendly to boot.  This guy scowled at us openly, insulted us in front of the client, and began setting us up for failure.  He didn’t expect us to finish on time, so he told the client and the consulting company that he’d been stuck with incompetent employees, and surely he could fix everything given a few months and much smarter staff.

We delivered on time thanks to two factors:

  • A hurricane closed the client’s office for a couple of weeks, buying us time
  • We threw out everything the manager did, and rewrote the whole thing from scratch in the last 3 weeks

When we crossed the finish line, I thought the worst was over, and we’d be off to another project.  Not so much – it turned out the client was happy with our work, so they extended our contracts and wanted us to build more features.  Since I was generating money, the consulting company refused to move me to another project.

Calgon, Take Me Away

I’d screwed up, and I wanted out.  Bad.  So I started looking for jobs somewhere else, and …

I couldn’t find anything.

I got turned down again and again.  No college degree.  Not enough experience.  Too much experience.  No clustering experience.  No replication experience.  When I finally found a gig, I took it out of desperation because I was so miserable with Manager From Hell.  Things were so bad, I took a job where a dozen people worked in a 20×20 room in school-style desks with barely enough space for a keyboard and mouse.  If anybody needed help (or a good time), they could reach out their arms in any direction and touch a coworker.

At the last minute (literally the day before I was supposed to show up for work), the client made me an offer instead.  I was overjoyed, because the client’s staff were some of the coolest people I knew.  Unfortunately, the salary wasn’t really fair.  The HR department knew they had me in a corner, and they had all the bargaining power.  I made a counteroffer, they didn’t accept, and I signed on with their original offer.

Taking that offer, underpaid or not, was one of the best decisions I’ve ever made.  I loved that job, I loved my coworkers, and I couldn’t have asked for a better manager.  The money worked itself out over time as I proved myself, but I was lucky.  It’s very rare that a company will say, “You’re worth more than we expected, and we’d like to reward you for that.”

Finding The Community

Drinking Alone in Denver
Drinking Alone in Denver

In 2007, the company sent me to my first PASS Summit where I had a weeklong Eureka moment.  I was stunned that so many people had the same job, same needs, and same challenges as me.  I sat through sessions, looked up at the presenters, and thought to myself, “I could do that.”  I’m comfortable in front of crowds, I’ve done internal training for years, and I’d learned a lot of nasty lessons about IT.  I heard attendees asking very junior-level questions and said to myself, “Self, there are people here that could use your help.”

At that Summit, nobody knew who I was.  I’d been blogging for years, but I didn’t really promote myself.  I just wrote about stuff that interested me, like my Perfmon tutorial, how to use VSS for SQL Server source control, and SQL Server’s “in recovery” database icon.  Some of those posts were hits, but the vast majority sank into obscurity.

In November 2007, I made conscious decisions to:

  • Start working hard on my blog
  • Start doing presentations at my user group
  • Get way, way outside of my comfort zone and work with non-IT people

Each Saturday & Sunday morning, before Erika woke up, I spent 4-6 hours writing posts, crafting presentations, and talking to vendors.  I built up a great working relationship with the marketing folks at Quest, and I wrote a few things for them like the Top 10 Things DBAs Need to Know About Storage and the Top 10 Things DBAs Didn’t Know LiteSpeed Can Do.  Sense a theme with the titles?  That’s because I was reading more about marketing, and marketing folks know that people love top ten lists.

Doing this stuff took time out of my personal life, but I was determined to make an investment in my career.  I didn’t want to have another really crappy job search, bouncing from headhunter to headhunter, having to re-prove that I wasn’t an idiot and that I was worth money.

My Job Search Two Years Ago

I would still be working for that same company today (and I still consult for them), but we had to move cities.  In early 2008, Erika was offered an air traffic controller position in Houston, and the government hiring process is notoriously fickle.  If you turn down a city, you might not get an offer again for years.  Working in ATC was a lifelong dream for her, and her dreams are my dreams, so we moved.  Unfortunately, my employer didn’t allow telecommuting, but they were gracious enough to let me telecommute until I found a new position.

After getting burned with the consulting gig, I looked long and hard for the perfect job.  It had only been a few months since I’d decided to focus on marketing, so those efforts hadn’t paid off yet.  Nobody knew who I was, and nobody was calling me with job offers.  I had my blog URL on my resume, but nobody ever said they’d read it.  I asked all the toughest interview questions, and I eventually found a production DBA job that looked perfect.  I liked the managers, the responsibilities, the pay, the hours, everything.  I thought I’d be there for ten years or more.  I knew myself well enough to know I didn’t want to go into management, and this company would let me be a pure database guy for life.  They’d had really bad turnover in the DBA team, but it sounded like people were just getting experience and then going on to bigger jobs, so that didn’t concern me.

The very first day on the job, I knew I’d made a horrible mistake.  At this very, very successful financial company, the staff had 14″ CRT monitors, 3-4 year old laptops with 1GB memory, and no pagers. If one of your servers went bump in the night, the only way you found out was when you came in the next morning.  They didn’t even have coffee or water.  If you wanted something to drink, you had to hoof it down the elevators and go to Starbucks.  You’d better hope none of your servers had problems during that time, either, because your coworkers didn’t have a way to reach you aside from your personal cell phone.

After three weeks of shocking revelations about how the basics weren’t in place, I went to my managers and laid out my concerns.  I basically said, “There’s no way I can succeed here, and I can see why people are leaving.  I know how big this company is, and I know you can’t turn this ship around quickly, so I’m going to bail before both of us get invested in this.”  The company wasn’t happy, but they understood.

The headhunter went ballistic.  She summoned me to her office building for a meeting with her manager.  I was as mellow as I could be given the circumstances – when they asked if I wanted anything to drink, I said, “Yes, could I get a bottle of water?  I’m going to work after this, and they don’t have anything to drink, so that’d really help out a lot.”  They laughed, easing the tension, but they still beat the hell out of me.  They threatened me, said I’d be put on a list and I’d never work in this business again.  They said the only way they’d help me find work was if I tendered my resignation immediately, which I did – and then they gave me the old, “We’ll call you, don’t call us.”

No Job, No Prospects – But Blogging Came Through

I’d only recently moved back to Houston at that point, and I had no local network whatsoever.  I hustled harder than I’ve ever hustled before.

I happened to have a whitepaper in progress at Quest, so I mentioned to them, “Hey, don’t publish that for 2-3 weeks.  It says I work for ___, but by the time it hits the press, I’m going to have another employer.  If you can hold off, I’ll give you the new company name.”

Unbelievably, they said, “Wanna come work for us?”  Do developers love cursors?  Hell yeah!  They didn’t technically have an open job position, but in the backs of their minds, they’d wanted to create something for a community evangelist type of person.  The only way I got this job was because:

  • I worked hard on my blog
  • I did a presentation every couple of months (either at local user groups or for vendor webcasts)
  • I actively reached out to users trying to help
  • I actively reached out to vendors to help them too
Caroline Collective Grand Opening
Caroline Collective Grand Opening

I was nowhere, nowhere near anything you’d call a “rock star” in the SQL Server world.  Quest just saw a future in me and placed a bet on it.  They weren’t betting on my SQL Server skills – they were betting that I’d continue working hard on my communications skills.  I didn’t need to learn new ways of putting indexes on tables, for example; I needed to figure out better ways to teach other people how to do it.  I was already good at helping people individually, but I needed to get better at scaling.  I had to find out how to reach more people with less work.

I started by hanging out with a totally different crowd of people.  I started coworking at the Caroline Collective in Houston, a space for freelancers of all sorts.  The time I spent there taught me more about marketing, small business, and communications than I could possibly explain.  Coworking teaches you soft skills by osmosis; you’re constantly around people doing cool things outside of your specialty, and you can’t help but pick up new ideas and techniques.  I realized that I needed to pay closer attention to what non-SQL people were doing, and apply that stuff to my own work.

Bustin’ My Hump: PASS Summit 2008

Preparing for the 2008 PASS Summit, I submitted abstracts, and – they were turned down.  Doh!  I kept presenting, doing webcasts for Quest, going to user groups, and polishing my delivery.  In Seattle, some presenter didn’t show up at the last minute, and Kevin Kline asked if I’d be willing to present in their place.  I jumped – no, I leaped – at the chance.  I did my first PASS Summit presentation!  I believe that was the best way to do a presentation, too, because I wasn’t nervous during the run-up to the Summit.  I just jumped in at the last minute, did a presentation I knew well, and nothing caught fire.

I also worked hard to improve my blogging by modeling it after blogs I admired.  When I attended the Summit keynotes, I liveblogged them the same way Engadget liveblogs Apple keynotes.  I figured if I was a reader, I would want that kind of minute-by-minute coverage, and nobody else was doing it.  It was hard work, and I didn’t get to enjoy the keynote the same way other attendees did, but I was doing a service to PASS, my readers, and thereby to Quest too.

I attended Jimmy May’s presentation on partition alignment and loved it. Douglas Chrystall (a SQL guru at Quest) and I approached Jimmy afterward, talked to him, and thanked him for his excellent session.

Becoming a Rock Star: 2009-2010

Months later, when Jimmy was approached to write a storage chapter for a book, he said he didn’t have time – but he recommended me.  Next thing you know, I had my name on a book.  That would never have happened if I hadn’t gone to the Summit and approached people I admired.

When the PASS 2009 call for abstracts came out, I submitted a few, and I got accepted.  At the Summit, I got my first autograph request, and it wasn’t even my book!  Later, I made the Best of PASS list.  I promptly fell out of my chair.

I went to the Microsoft Certified Master program, and I laughed when one of the other candidates asked, “Why do all the instructors know you?”  I joked that I’m huge on MySpace, but the reality is that they don’t know me because I’m good with databases or I’m so darned attractive.  They know me because I communicate – I’ve got a blog, I’m on Twitter, and I reach out to interact with people all the time.  That’s all.  Nothing more.

Every month, I get at least 3-4 job offers from strangers.  They all read something like, “We love your blog and your videos, we love your personality, and we can tell that you’ve got the knowledge to solve our problems.  Will you work for us?”  It’s an awesome position to be in, and as a result, my weekends are chock full o’ consulting work.  I’m able to set my rates because we both know I can solve their problems quickly.

You Can Do It. We Can Help.

Working on My Soft Skills
Working on My Soft Skills

Three years ago, nobody knew who I was, and I had to struggle to make it to the top of the resume pile.  I bet you feel that way right now too.  I bet you worry about whether or not you could find another job.  I know a lot of you talk to me about looking for another job or the interview process, because you’re not happy where you’re at.  You’re dealing with miserable managers or coworkers, too much work, or a crappy environment.  You look at “rock star” people as different somehow, like we were born with silver spoons in our mouths.

You already have the technical skills you need to get a better job.

You just need to build the soft skills.

On Allen Kinsel’s blog post about PASS speaker evaluations, a comment from Jay Taylor made me stop to think, and prompted this entire blog post:

“At a recent programming event I attended, a SQL speaker spent the first five minutes telling us that he would never have applied to speak had he known that Rock Star 1 and Rock Star 2 and Rock Star 3 were going to be speaking at the same event. Yet after he unburdened himself of hero worship and personal inadequacy and so forth, he gave one of the best presentations I’ve seen – coherent structure, strong examples, understandable metaphors.”

He’s completely right.  Personally, I still suffer from issues of hero worship and personal inadequacy.  The night before SQL Server events, there’s usually a speaker dinner event packed full of really smart people.  I look around the room and think, “Wow, I’d love to know what he knows, and I sure wish I could do what she does.”  It just never ends – you always look up to people you admire, and you always think they’re somehow different.  The reality is that the people you admire are writing, presenting, and webcasting because they want to help you.  They don’t just want to help you technically – they want to help you personally, too.

There’s not a competition in the SQL Server world to be the biggest rock star.  Paul Randal isn’t hoarding DBCC knowledge to keep it from you.  Itzik Ben Gan isn’t keeping his T-SQL tricks under a mattress.  I’m not shielding my monitor so you don’t figure out my l33t blogging skillz.  The people you see as rock stars aren’t trying to hog the mike – they’re trying to teach you to sing, and we take huge pride in seeing more people succeed.

Right now, you could write or present about something you learned the hard way, and people would think you’re a rock star.  But you’re still struggling to get a better job, a better speaking slot, or a speaking slot period, right?  You think that Other People are the ones who get book offers, or Other People are the ones who get paid to speak.  You’re wrong.

Stop thinking you’re inadequate, and start working on the things that are really holding you back.  You, too, can be a rock star a lot faster than you think, and all of us onstage are trying to bring you up with us.

How to Get Started

Become a Presenter, Change Your Life – Kendra Little explains why there’s no obvious ROI, but instead shares what you actually get.

Who’s Your Target Audience? – Don’t try to write the kind of session you want to attend. Followup: How to Pick Topics.

How to Write a Conference Abstract – Your goal isn’t to get everybody in. It’s to keep the wrong people out.

How to Deliver a Killer Technical Presentation – My start-to-finish post with tons of tips.

What Makes a Good Conference Session? – Does every session require a packed room? Demos? Slides?

How to Rehearse a Presentation – It’s not just about standing in front of a mirror or memorizing your lines.

Dealing with Presentation Criticism – Know the keys to getting useful feedback and what to do with it.

Choosing a Presentation Tool – There’s more than just PowerPoint and demos.

How to Get Readers to Pay Attention – Your abstract needs to hit ’em hard.

The Presenter’s Bill of Rights – Spoiler: you don’t have any. Everything you expect to find will break. Followup: Check Your Room Size.

51 Questions About Your Conference Submission – What pain is bringing the attendee to this session? How are they going to relieve that pain when they get back to the office? If a teacher graded your presentation, would you get an A?


How to Make Readers Forget About You

24 Comments

Yesterday I blogged about how to get readers to pay attention, but not everybody wants that.  Some people yearn to be forgotten, to be ignored, and disappear into the ether.

Don’t offer an RSS feed or email subscriptions. If someone happens to stumble upon your content, don’t give them an easy way to find out about new things you post.  If your site software offers RSS subscriptions automatically, you can still work around it by repeatedly editing the same page or post, and gradually adding on content to it without triggering a new article.  Hardly anybody will think to revisit the same page manually to check for updates.

Invisible Content Too
Invisible Content Too

Bury the good content below unrelated text. Don’t follow the lead of sites like Engadget that put their newest featured content right up at the top of the page with a sexy, shiny picture – that will lead to frantic excitement about your new content.  To be forgettable, bury the new stuff in the smallest print possible at the bottom of a page that never changes.  You want people to take a glance at a page and immediately think nothing has changed since the dawn of HTML.

Don’t allow comments, or don’t respond to them. When content is really thought-provoking, people want a place to leave their newfound thoughts.  They want to start a discussion with you, the author, and get your opinions.  Engaging with your readers only serves to bring them back for more – avoid this at all costs.  Bonus points for making your post seem like a dead page that no one is maintaining anymore.

Don’t make your content searchable. You can use robots.txt rules to make sure search engines don’t find your stuff, but if you’re really sharp, you can make some worthless content public while making the really valuable stuff – like your writings – invisible.  Here’s the trick: put the content in PDFs that can only be seen after users log in.  Presto!  Unsearchable by Google.

Require login to read, then redirect users elsewhere. Tell users that they have to log in to read your best content.  They’ll click on the link, and odds are, they’ll either forget their password or have to create a new account.  After they log in, redirect them to your site’s home page, thereby ensuring they’ll have a tough time returning to whatever content they were originally trying to read.

Think nobody would be so crazy as to follow every single one of these steps?  You’re wrong – I know one particular page that follows every one of these guidelines perfectly, and I bet some of you know who it is.  I’ll give a $40 Amazon gift certificate to the first person who guesses it correctly in the comments.  And of course I buried this juicy little contest way down in the small print…