I talked with Microsoft's David Campbell at the Professional Association for SQL Server (PASS) Summit a couple of weeks ago about SQL Server's evolution from SQL Server 6.5 to SQL Server 2000 and the upcoming release of SQL Server 2005—and beyond.
Campbell—general manager for the SQL Server relational engine, replication, mobile, data access, and XML teams—noted that SQL Server 7.0 was "all about technology" and making a major investment in SQL Server's underpinnings. SQL Server 7.0 was an entirely different database than SQL Server 6.5. Many people noticed SQL Server 7.0's new "face"—its user-friendly GUI and management tools. But SQL Server 7.0 also had a new "heart"—a new relational engine, a new query processor, and a new database architecture built fresh from the ground up.
SQL Server 2000 was Microsoft's "refinement" of the investments it made in SQL Server 7.0, Campbell said. And the work the SQL Server team is doing for SQL Server 2005 is more customer focused, with an emphasis on providing services around data.
Campbell said he shares his team's belief in eliminating as many knobs as possible on SQL Server's tuning and administration side. SQL Server 2000 and 7.0 have a "less is more" philosophy, with SQL Server becoming the first major relational database management system (RDBMS) to try to automate as many operations and optimizations as possible. Although some traditional DBAs weren't fond of this approach and several leading database vendors criticized the efforts, Campbell pointed out that auto-tuning features are large selling points in Oracle and IBM DB2's recent releases—even though Oracle in particular downplayed the importance of auto-tuning features when SQL Server 7.0 was first released.
I asked Campbell what he thinks are some of the most significant new features in SQL Server 2005—besides the Common Language Runtime (CLR) integration. Campbell first noted support for range-partitioning and online backup and restore of individual partitions, features that will bring incredible SQL Server scalability improvements in the very large database (VLDB) space. Today, most people don't doubt SQL Server's ability to host 500GB databases, but they might start to wonder about how it works with 10TB-20TB databases. And Campbell says these scalability enhancements will let you break huge SQL Server databases into smaller, more manageable chunks.
With SQL Server 2005 still months away from general release, it might seem odd to think about the SQL Server version after SQL Server 2005. But Campbell and I spent considerable time talking about innovative ideas for improving data access. Campbell said that call-level interfaces and APIs can create static environments that don't allow flexible and native interaction between an application and the database. From a programmer perspective, the good old days of embedded SQL provided a more natural and integrated level of interaction with the database, he noted. Although embedded SQL had its drawbacks, Campbell says Microsoft is working on SQL language improvements that will make the blending of T-SQL and .NET programming much more natural. Such improvements, resulting in something I think of as TSQL.NET (although Campbell didn't use that name), ultimately would let us write CLR procedures that blend the best of procedural languages with the best of a set-based language without needing to go through ADO.NET. Campbell made it clear that these language enhancements are post-SQL Server 2005, so don't get too excited yet. But it's fun to dream!