This week I have been at the SQL Connections conference in Las Vegas. With 7 to 9 hours of classes and presentations every day, all on Microsoft SQL Server. The classes included the Next Generation of SQL Server, Distributed Applications with Service Broker, Building High Availability Using Microsoft SQL Server 2008, Virtualization, Installation and Migration Strategies, Logging and Recovery, Minimally Logged Operations, Building the Right Backup Strategy, Securing and Hardening a SQL Server, iPhonify your Web App, Memory, Analyzing with SQL Trace and RML utilities, Sparse Columns, Structures, Storage and Speed, and Indexing for Performance. It has been a very busy week.
Friday was a really interesting all day class on “Indexing for Performance” presented by Kimberly Tripp with some help from Paul Randal. The thing that I realized in this class was that I knew what indexes did, not how they worked internally. Now I understand how the indexes actually do their jobs using a B+ tree, and how a non-clustered index is actually just a clustered index on a small subset of columns.
Now if I ever get that interview question of “Can you tell me what a database index does?”, my answer would be “Do you want the high level 10 minute explanation of how an index can be used, or do you want the 4 hour explanation of how SQL Server actually implements indexes, how they work, and the differences between SQL Server 2005 and SQL Server 2008 indexes”. I think that at this point I know far more about indexes than I ever thought possible.
The whole week was really amazing. Now back to live in Bellingham.