Tuesday, November 3, 2009

2009 PASS Summit

I'm writing this from Seattle, as an attendee at the 2009 PASS Summit, a series of seminars for database administrators who specialize in Microsoft's SQL Server database facility. I don't often blog about my profession -- I tried it out once, but soon learned there are many geeks, Ubergeeks, and Obergruppengeeks in this profession, and I was a guppy swimming with the sharks. I should be reading SQL Server blogs, not writing them.

I think PASS stands for Professional Association of SQL Server DBAs, or something to that effect. Everyone talks about PASS as if I should intuitively know what the acronym means, so I'll just intuit it out loud here.

I'm into the second day of seminars here, and it has certainly been instructive. Today, I listened as PASS and Microsoft banged the drum and chanted rhapsodically about PASS and Microsoft. Which is not say that they have nothing to bang or trill about. Microsoft is touting their virtual server technology and hitting us with a new (new to me) term, "clouds", which I'm certain was thought up by their marketers. A cloud, as best as I gathered in between the self-administered high-fives and double-jointed auto-patting on the back, is a database-driven something or another which will "harness" (another great marketing verb) and "leverage" (ibid) the power of... sorry, I forgot. Anyhow, the briefing contained lots of pretty pictures of clouds. Somehow, it didn't occur to Microsoft marketers to put up a picture of a good old Midwestern wall cloud, or an incoming hurricane, but just a pretty, puffy little white thing that Joni Mitchell could sing about. Well, I really don't know clouds at all. At heart, I'm a practical sort of guy, and I have to see something work (at least) a few times before I can figure out what's going on. I spend most of my time tearing out the software equivalent of drywall and replacing it, so a discussion on the future of architecture is a little over my pay grade. But I can always use some handy hints and tips for how to put up dry wall.

The good news is I've already gotten some of that from the seminars I've attended. Yesterday, an entire day devoted to indexing data for high-performance querying. (In the world of querying, faster = better.) Indexes are to databases what... well, indexes are to dictionaries. At the top of the page in a dictionary is the first word and the last word on the page, and the words are always sorted in alphabetic order. Makes looking up a word a matter of turning, at most, eight to ten pages, depending on how many words are defined. What if you had to look up each word, every time, not by using the dictionary's index, but starting at the first page and checking each word sequentially until you located the right one? If the dictionary is 10,000 pages, that's an average of 5,000 page scans per lookup. Yikes! Everyone would be speaking in commonly-known one and two syllable words, and William F. Buckley, Jr. would have had to settle for using words that are somewhat less arcane than "callipygous" and "usufruct". Database indexes work on the same principle as the one in your dictionary -- they are information about your information, housing the locations on disk (also called, analogously, pages) where the information resides. Since this is software we're talking about and not the printed page, indexes can be a lot more numerous, intricate and sophisticated than the simple one in your dictionary, but the concept is still the same -- every piece of information has an address and the index helps you to find it quickly.

Anyhow, it looks like it's time for class again. Lots of empty tables around me in the chow hall and the occasional annoyed glance from the workers busing the tables, so I'll atypically cut this short.


No comments: