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 Ian Jose, who works on High Availability with the JET Blue team, but played an important part in building the query processing in SQL Server 2005.
SSC : What exactly do you do at Microsoft?
Ian : Software Architect. Right now I am leading a team of developers working on High Availability for the JET Blue database storage engine. JET Blue is the other database at Microsoft. Before I left SQL Server, I was responsible for cardinality/selectivity estimation in the Query Optimizer. Cardinality/selectivity estimation is the component that tries to predict the number of rows flowing through query execution iterators without actually running the query plan. In this way, plans that are fast can be chosen over plans that are slow leading ultimately to the fastest possible plan being chosen to actually run the query.
SSC : How does HA for JET Blue compare to the SQL Server offerings? Any technologies being reused?
Ian : Very similar.
SSC : Will SQL Server ever replace JET in Exchange/AD/etc? How is it better than SQL Server in those areas?
Ian : Microsoft uses JET Blue for Microsoft Exchange because it is a more appropriate technology for e-mail. JET Blue is a non-first normal form ISAM with an API that was published for all to use in April of 2005. It has been specifically performance tuned for Microsoft Exchange. Exchange uses multi-value columns in order to pre-join tables of data and cluster complex objects on disk. SQL Server is also an excellent data store technology which has traditionally been used for highly structured data but may over time increase its capabilities to store more loosely structured data.
SSC : What feature(s) of SQL Server 2005 did you really enjoy working on?
Ian : Cardinality/selectivity estimation. It is unlike any other work I have done at Microsoft. You need to have copies of Abramowitz and Feller close by. The work is all about using advance mathematics to model what is likely to happen during query plan execution. When the code works, you see it immediately in the accuracy of the estimates produced. That kind of immediate satisfaction is a wonderful experience.
SSC : What advice can you give people when writing queries that will help them with SQL Server 2005?
Ian : Avoid unnecessary type conversions. In many customer cases, I saw unnecessary type conversions lead to poorly performing plans. Also be very careful with table valued functions that have more than one statement. These constructs are modeled by the SQL Server query optimizer as returning 1 row with no statistics. If a customer TVF has only a single statement then the TVF definition is treated like a view which does generally result in good plans. However, as soon as the TVF has two or more statements it becomes an opaque object about which the query optimizer knows very little.
SSC : How long have you been working on SQL Server?
Ian : I worked on SQL Server from 1996-1999 (query processor), 2000-2001 (replication) and 2004-2006 (query optimization)
SSC : Did you know SQL (the language) before working on SQL Server?
Ian : No, I learned T-SQL in 1996 after joining SQL Server.
SSC : How did you get into SQL query processing?
Ian : I became a database developer when I joined Microsoft in 1989 to work on the JET Blue database storage engine. This is the storage technology used by Exchange, Active Directory and many other Microsoft applications. From there it was natural to move onto SQL Server.
SSC : Give us a little background on yourself, how did you get into computers?
Ian : I grew up in Canada and always like Math. In high school I had a programmable calculator (HP-33E) and found that its most powerful feature was the programmability. The calculator did not have a constant memory. It would lose the program when it was turned off. One time I memorized the program for the quadratic formula and used it on an exam. I even devised a test to know that it was coded correctly, lest I answered all the questions wrong. When I went off to university I knew that I would need a job when I graduated. Computers seemed to be big so that is what I chose.
SSC : Where did you attend college and what was your degree/major/concentration?
Ian : I attended the University of Waterloo in Waterloo Canada. My degree was a B.A.Sc in Computer Engineering.
SSC : How much math did you take in college? Has it helped with your work on SQL Server?
Ian : Not enough math in college. I learned some statistics in college but learned a lot more while in SQL. Generating functions would have been extremely useful.
SSC : Did you see yourself as a programmer/developer when you were growing up?
Ian : No, my family always produced engineers and I grew up expecting to become one. In college, we prided ourselves on doing hardware, not software. However, I saw the trend in jobs away from hardware and I made the switch just before graduating. Even now I expect my classmates from school to scowl when I say that I write code.
SSC : How do you like living in Redmond?
Ian : As a Canadian, I like living close to the Canadian border. I can drive my family to my home in Calgary in about a day. The environment is great here. I still remember how strange and unusual to have U.S. currency in my pocket.
SSC : Who's the most fun to work with at Microsoft?
Ian : The JET Blue team is a great bunch of guys working on a technology that is incredibly useful and at the same time frowned upon by some Microsoft execs. We are a team of underdogs going against the flow.
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?
Ian : I have been here 17 years but dont have any good stories that I can share.
SSC : What's your current favorite tech gadget?
Ian : Laptop that lets me work no matter where I go.
SSC : What size laptop does a developer at Microsoft get?
Ian : I bought my own three years back because Microsoft was too cheap to get me something good enough: 1.7GHz, 1Gb RAM, 2x40Gb. I have used it productively ever since.
SSC : What does Ian like to do when he's not working on SQL Server?
Ian : Movies when I get the chance. My kids are at the age where they wont sit in a movie for more than five minutes, so I dont see them often.
SSC : Favorite movie from 2006?
Ian : Thank You for Smoking
SSC : Ever been to Bill Gates' House?
Ian : Over the years I have been to different parties at three of his houses. Bill is a wonderful host and a fun guy to talk with. It is amazing how intelligent he is and he often comes across as the quickest attendee at the BillG meetings I have been to. He really cares.
SSC : Will we see you at the PASS Summit in November?
Ian : Not me. I am busy working on Microsofts other database technology.