Good video. Too short apparently to cover the subject deep enough General suggestion to the PLINQ team - please do provide programmers with extra knobs and switches to fine tune parallel execution flow. Based on personal experience with SQL optimizers including the parallel ones, out of five more or less complex queries one would need a hint to run correctly. I wouldn't expect PLINQ be any different in this regard, especially considering that it will work on data that won't have any statistics associated with them.
Hierarchies are exciting only when you are watching a demo.
I mean the idea of a dedicated type to store node's materialized path seems sound (though nothing prevents one from using varchar for the same purposes).
But the implementation is weak at best.
In fact, as soon as you try to write anything with more than a single user modifying hierarchyID columns you quickly realize that all concurrency control is your personal responsibility.
Without proper locking of ancestry nodes hierarchyID is a recipe for disaster. And built-in hierarchyID methods are in essence just substring equivalents.
Ironically, there is nothing in SQL Server to manage concurrency explicitly, which in this case means ability to place explicit row locks in a non-blocking manner.
Ideally, it should be possible to place shared read or exclusive locks on rows using T-SQL. For starter only exclusive locking would suffice (though it has some serious performance implications). But they did provide even that.
IMO this feature should have not been included at all. People will try to use it in real life and get burned. Microsoft should have added means to ensure proper use of hierarchyID first and produced clear guidelines on how to do that.
Re: table types in T-SQL, compare this to complex type support in Oracle PL/SQL. T-SQL is still 10 years away from where PL/SQL was 10 years ago.
Nice video, too bad Greg avoided the subject of horizontal scaling of the "RDBMS" layer. As the "RDBMS" here is actually an integral and a very critical part of any more or less decent application
these days, it would be nice to know how guys at Microsoft are planning to address that. Oracle at least claims that their RAC (real application cluster) scales horizontally. MS SQL Server does not even seem to have a similar concept neither in 2005, nor 2008 incarnation.