Why Would You Want Exchange Server With A SQL Backend?
Consider the format of an Exchange database.
It's flat. Very flat.
Take a mailbox. Basically, it is a table that contains pointers to other tables. What are those other tables? Well, your Inbox, Sent Items, Calendar, Tasks, Notes, etc....
Every folder is a table. Each table contains objects and pointers to other tables. An object may be a message, a task, a calendar entry - basically the low-level objects which Outlook manipulates.
Every view is an index - and an index is just a table of sorted pointers to objects (plus a small bit of meta-data).
So... each mailbox may have thousands of tables. A mailbox database may have millions of tables. Yes, you read that right: millions.
Why is it done that way? Easy answer! To allow the user maximum flexibility. The end-user is not limited in the number of views, not limited by what he can sort by, how many objects you can contain in a folder (although there certainly are performance issues associated large numbers of items), etc. etc. Exchange Server generates these views on the fly whenever Outlook requests them. Real-time. The end-user is not arbitrarily limited in any significant way.
Give a great pat on the back to Exchange!
How does Exchange do this? With ESE. Because ESE - the Exchange database engine - supports these features.
Now, consider Microsoft SQL. A great DB engine. However, it doesn't really generate tables on the fly. Or views on the fly. Or have a hierarchical mechanism for storing table trees. Or clean up after itself. All of these functions have latency in SQL...
So....what would have to happen? A complete redesign. Not just a simple "let's use a different backend". And, it's likely that a lot of features would be lost in any such translation.
Do I want Exchange in SQL? No. Do I think it would work well? Not with any SQL Server released to date.
In the future? Who knows? Maybe. But I don't know.
Until next time...
As always, if there are items you would like me to talk about, please drop me a line and let me know!