Mar 262012

Imagine you had the chance to get together with other data professionals in your area in a setting outside of a training session or user group meeting. There’s no formal agenda, just an excellent meal and some great conversation. Perhaps a respected expert is available to answer questions and bounce ideas off of. Does this sound appealing? If so, you should check out SQLFriends.

This past Friday I had the pleasure of attending the first-ever SQLFriends event!

SQLFriends is the brainchild of Aaron Lowe (blog | @Vendoran) who, as he described it, wanted to come up with a SQL Server community event based around networking instead of training. Events such as SQL Saturdays and conferences are a great source of training, but many people look forward to the social and networking aspects as well. So why not just have an event focused around networking? SQLFriends was created to fill that void.

The first SQLFriends event was a sell-out lunch at Buca di Beppo in Chicago with 30 attendees and special guest Brent Ozar (blog | @BrentO). Brent answered all kinds of questions about training, certification, consulting, and anything else we could come up with. There was also the opportunity to network amongst ourselves and meet some new faces. Several attendees mentioned how happy they were to meet at lunchtime because they can’t fit evening user group meetings into their schedule.

All in all I’d say the inaugural SQLFriends lunch was a great success. Thank you very much to Aaron for putting it together. If you’d like to find out about future events, head on over to their website at or follow them on Twitter at @SQLFriends.

Mar 212012

SQL Saturday 118I feel very fortunate to have been chosen as a speaker for SQL Saturday #118 in Wisconsin on April 21, 2012. After an excellent time speaking at MADPASS in February, I’m really looking forward to getting back to Madison for this event!

I’ll be giving my presentation entitled The Skinny on Data Compression which covers the different types of data compression available in SQL Server and some of the details behind how they work. I’ll also talk about the pros and cons of compressing data and how to determine which flavor of compression is most appropriate for an object. This presentation was very popular in Kansas City and I’m expecting more of the same up North next month!

Registration is still open as of when this post went live, so if you’d like to attend please sign up here. If you’re on twitter, follow the #sqlsat118 hashtag for the latest information.

I can’t wait to head to up Madison. Hope to see you there!

Mar 142012

March Madness is once again upon us, which means it’s time for one of the biggest time sinks of the year: filling out a bracket for the pseudo-sanctioned office NCAA pool. Along with the superbowl, this is a hallowed time when bosses turn a blind eye to all the cash that seems to be heading towards that person who has been designated as both trustworthy enough to manage the pool and cool enough to forget that gambling is against company policy.

Super Bowl pools are usually pretty easy – pick a square (or two or three), hand over the cash, and the numbers get filled in later. Building an NCAA bracket on the other hand is a lot of work. Even when picking winners completely at random there are over 60 choices to make. For someone like myself who doesn’t watch nearly enough basketball to make educated guesses about most of the teams it’s a lot of wasted effort. I’d rather spend my time doing something more constructive, such as developing a formula in T-SQL to make my bracket picks for me. Much like last year I’ve done it again.

This year’s bracket is based on 2 things. The first is the idea that a #16 seed team will never beat a #1 seed team. (Since it’s never happened yet it seems like a safe bet). After that, game winners are determined by a formula.

All teams in the tournament are searched in Bing twice according to the following template:
<School Name> <Team Name> Basketball rocks
<School Name> <Team Name> Basketball sucks

For example:
“Illinois Fighting Illini Basketball rocks”
“Michigan Wolverines Basketball sucks”
would both be valid queries.

The total number of results returned by Bing for each query are recorded in a table, and to represent a game the following values will be compared for teams A and B:
Team A: /
Team B: /

The team with the higher value wins the game.

One flaw in last year’s formula was that it generated a value for each school which never changed. This meant the school with the highest generated value would be the one to win the championship. This time around the outcome differs based on the teams that are compared, which makes things much more interesting. Here’s the bracket that resulted (click to enlarge).

If you’d like to try this yourself you can download the code here. Since search results are constantly changing, you’ll likely have a different outcome than I did. Also be forewarned that while this code does work, it was put together very quickly and is neither elegant nor efficient.

Why Bing?
In case you’re curious, I decided to use Bing search instead of Google because I’m a tightwad and it turns out Google’s Search API isn’t free. If you want to make more than 100 queries per day on Google, you need to pay. Since I needed to make over 100 queries to gather my data plus a few extra during development I went with Bing, which has a much friendlier policy of restricting your query rate instead of limiting the total number of queries per day.

Enjoy the tournament! Should you use my method and come up with a winning bracket, please contact me to discuss my share of the winnings.

Mar 132012

This month’s T-SQL Tuesday is brought to us by newly-minted MCM Argenis Fernandez (blog | @DBArgenis), who I had the pleasure of meeting in person for the first time a few weeks ago. Argenis is asking if we specialize or not, why we do (or don’t) specialize, and why we feel that’s a good thing.

T-SQL Tuesday!For a very long time I’ve been interested in the internals of the database engine and how data gets stored on disk. Back in junior high and high school I spent a lot of time trying to do things like figure out how to extract data from MS Access files without actually opening Access. I never had a whole lot of success because I didn’t understand exactly what was going on (and I was almost always looking for values in plain text), but it never stopped me from trying. So long as there wasn’t any encryption involved I was convinced I could get my data out via other means, if only I knew everything about how it was stored. Unfortunately for me I didn’t have a whole lot of options for figuring that out at the time.

Fast forward to now where the internet is much more helpful, I’m part of an amazing community, and I have an income with which I can purchase books and other materials. I definitely consider myself to be a specialist in database engine internals, but I don’t feel like I’m a master and probably never will – I think there’s just too much going on to ever completely understand it all. The deeper I dig on a particular topic the more there is at a lower layer. I’m ok with all this because I think it’s nice to know there’s always something else to learn. And even if I did know everything, I certainly wouldn’t feel comfortable saying that.

Similarly I don’t consider myself to be a jack of all trades either. There’s an awful lot of SQL Server topics out there, some of which I’m just plain clueless about. That’s not to say I don’t want to learn them, just I’d rather concentrate at being the best I can be in other areas first. To me there’s more value in knowing a lot about a few things than knowing a little about many.

Is this a good or bad thing? I guess it depends. If I’m working on a project that can benefit from having some pretty in-depth knowledge of how the database engine works such as performance tuning or general DBA tasks, I think I have a lot to offer. If my assistance is needed for something like BI development, I’m much less useful. I’m not completely inept and can definitely fumble my way around, but anyone can sit at a piano and bang on the keys to make sounds come out. To make beautiful music takes a lot more skill and knowledge, and if you’re making beautiful music with a piano, a database, or anything else, you’re probably a specialist.

So to sum it all up, I believe I’m a specialist but not a master, and I believe that is very much preferable to being a jack of all trades. Thank you Argenis for the most excellent and thought-provoking topic!