Welcome to the Spotlight Behind SQL Server, a new series from SQLServerCentral.com. As we've grown and spent more time covering SQL Server, we've slowly gained a number of contacts inside Microsoft, including those that develop the product. And we decided to try and interview the SQL Server people inside Microsoft. There are lots of people working on SQL Server 2005 and our goal to is to eventually get to them all.
We know that there are lots of technical things we could ask, and lots of easy marketing questions we could get from them, but you probably read most of those questions elsewhere. So we thought we'd make them think a bit more and get some interviews that showcased the people behind SQL Server. To that end, these interviews will be a little bit different and give you a look at the amazing team that builds SQL Server.
We caught up with Paul Randal recently after some amazing blog posts caught our eye.
SSC : What's your official title and responsibility at Microsoft?
Paul : Lead Program Manager of the Storage Engine and Infrastructure Product Unit. I run a team of Program Managers responsible for all aspects of the storage layer (for example, IO and the buffer pool, logging and recovery, backup and restore, DBCC, indexes, locking, snapshot isolation, Database Mirroring) plus Security, Service Broker and SQL Express. Prior to that I ran the Access Methods development team for several years and before that I was responsible for DBCC (hence my CHECKDB-centric blog posts!)
SSC : It seems like you're deep into the storage engine and we've heard lots of marketing hype about new features in SS2K5, what's happening inside the storage engine?
Paul :A whole ton of cool stuff. My favorite new feature rooted in the storage engine is online index operations. I wrote DBCC INDEXDEFRAG in SQL Server 2000 as an online alternative to DBCC DBREINDEX, and now we have the capability to create, drop and rebuild indexes online, using the mechanism underlying snapshot isolation to avoid blocking users. This is a major availability boost for DBAs who need to perform index maintenance and choose to rebuild instead of defrag.
A very close second would be database mirroring. I'm really glad that we waited to get more experience with customers before releasing the feature in SP1 - that was a hard decision to make back in the RTM timeframe but we had to make sure it was rock-solid in a variety of real-life deployments, not just in our internal test labs. Thankfully it was, but in my mind we did the right thing by erring on the side of caution.
Other features I love are read-committed snapshot isolation, online page restore, and partitioning. I could go on and on...the storage engine just rocks!
SSC : One of the things that everyone asks for is a good explanation of how the optimizer chooses the plan it does and how to better control that. Is that something you think DBAs should have or just leave things the way they are?
Paul : Personally, I like the idea of DBAs being able to lock in a good plan they know about so that their query performance isn't susceptible to altered data distributions and other causes of plan changes. The new USE PLAN feature in SQL Server 2005 allows this. The one thing I am concerned about though is misuse of the feature. If the data distribution radically changes for the long-term then the forced plan is most likely not optimal any more. Also, people shouldn't use it as an alternative to maintaining good statistics and the best indexes.
I've heard complaints for years about all the undocumented features of DBCC and SQL in general. Do you think that we should be protected from ourselves or should everything be documented?
Read my recent blog post on transaction log rebuilding, and then my previous post on how to use DBCC PAGE. I could argue this one both ways. The problem with a lot of the undocumented DBCC commands is that they can have detrimental effects on a live system - for instance by taking out unexpected locks or latches. They're mostly used for testing and for debugging various complex issues - corruption being one. I guess it really depends on the particular DBCC command. DBCC PAGE is so well known, and so extensively used in our internal testing that it makes sense to me that we admit it exists and let people know how to use it - so I did.
SSC : Give us a little background on yourself, how did you get into computers?
Paul : When I was 15 (1987) I bought a special issue of Scientific American at my local store which had a bunch of stuff about computers and graphical simulations (I still have the magazine). That was so intriguing that I wanted to get involved so I went to the local library to get books on programming computers called BBC Micros - the culmination of a project between the BCC (Britain's state-run TV company) and a computer company called Acorn (who eventually produced the ARM family of CPUs that Intel bought for their low-power technology). In 1988 I bought my first computer - an Acorn Electron (32Kb of RAM, 1.8 MHz 6502 CPU with - eventually - a 360Kb 3.5" floppy disk). And I went wild with it. I wrote all kinds of stuff in BASIC and taught myself 6502 assembler. The best thing I ever wrote was an assembly language program to generate mandelbrot sets using normalized integer arithmetic. It could do 2-d sets down to coordinates in the range of 1x10-7 plus 3-d 'mountain terrain' views coloured blue, green and white. It took a long time to run though - up to 48 hours. I remember the psu buzzed and so it would irritate my brother and I at night so I had to have my computer running in a closet so it didn't keep us awake!
When I was ten years old, my Dad made me an electronics kit so I was also tinkering with all sorts of gear through my teenage years (and into my college years - our CS department once hired a skip to throw out a bunch of old computer equipment so I got my girlfriend to back-up her pickup to the skip and proceeded to empty the skip into the pickup.)
These two hobbies gave me the incentive for my college degree...
SSC : Where did you attend college and what was your degree/major/concentration?
Paul : University of Edinburgh, Scotland. Bachelor of Engineering in Computer Science and Electronics. Edinburgh (pronounced Edinburra) is a wonderful place to live and I stayed in and around Edinburgh for 5 years after graduating. I'm Scottish (with an English accent) from a small town called Helensburgh, about 20 miles north of Glasgow. I came to the US to join Microsoft in January 1999. Before working at Microsoft I worked for DEC and was responsible for the VMS file system and chkdsk equivalent.
SSC : Did you see yourself as a programmer/developer when you were growing up?
Paul : No. My Dad was in the Royal Navy (nuclear-reactor electronics and control) which was why we lived in Helensburgh - next to the biggest submarine base in Britain. I grew up in and around the Navy and was going to follow my Dad's footsteps as a Weapons Electronics Officer. I'd been on a ton of courses as a cadet and then went off on a destroyer, HMS. Glasgow, for a week to sail around the top of Scotland and take part in exercises (helicopters, close-flying planes, surfacing submarines - all extremely exciting). It was great apart from one thing - I got seasick. Well, that put a bit of a downer on my plans to join the Navy so I decided to change and do a degree in Computer Science.
SSC : Scotch or beer?
SSC : Seems like SQL Server has attracted a bunch of people from Scotland, you, Euan Garden, Donald Farmer. Are you folks better at relational databases than others?
Paul : No comment - must be something to do with the climate 🙂
SSC : How do you like living in Redmond?
Paul : As far as the area goes, its wonderful. I always say its like Scotland but warmer and with less rain (people think I'm nuts when I say this but it rains _a lot_ in Scotland). You're never far away from mountains, water, or something interesting to do.
SSC : Who's the most fun to work with at Microsoft?
Paul : Too many people to name. Special mention to my good friend Bob Ward in CSS.
SSC : We've all heard stories of some characters at Microsoft. Any interesting ones that stunned you or surprised you when you first went to work in Redmond?
Paul : There was one guy (who I didn't know) who ran an exotic animal sanctuary somewhere in the area - I saw him a few times around campus with a white tiger cub on a leash. It would walk along behind him gently swiping at his heels every so often.
SSC : What's your current favorite tech gadget?
Paul : My air-integrated scuba diving computer – very cool gadget that works out in real-time how much air I have left and how long before I have to surface with risk of decompression sickness. Oh, ok - I also have a robot-arm that I play with (from CrustCrawler.com).
SSC : Any interesting projects with the robot arm? Scaring kids at Halloween?
Making funny signs behind Bill Baker at one of his keynotes?
Paul : Nothing quite so amusing I'm afraid. I have grand plans to hook it up to a chess engine when I get the time and I'd also like to add some vision capabilities to it. I did a thesis on 'Rasterizing scanned maps' - basically pulling together some (at the time in 1993) state of the art image edge-detection algorithms and it would be fun to attempt to build these for real-time processing.
SSC : What does Paul like to do when he's not working on SQL Server?
Paul : Spend time with my two girls (hiking, riding, swimming, bird-watching, geocaching). I’m also just getting into scuba diving and sailing. I’m also just getting into scuba diving and sailing.
SSC : Most interesting thing you've found geocaching?
Paul : We did a geo-cache at Spada Lake near Sultan, WA last summer. The cache itself wasn't anything special but across on the other side of the lake were two otters swimming around - they were cool to watch through binoculars.
SSC : Will we see8 you at the PASS Summit in Seattle this fall?
Paul : Unclear - I'm trying top decide whether to go to PASS or to ITForum in Barcelona.