Spatial library for SQL Server 2008 would be great for SilverLight

The new spatial library is a wonderful addition to the SQL Server 2008. Even better is the ability to install this library separately on client systems. However, a really important target for this library is likely to be SilverLight based applications.

It would be highly desirable to have a version of this library (or at least as much of it as possible) able to be deployed with a SilverLight application, given the likely popularity of SilverLight during the upcoming year and the style of application that the spatial library would otherwise support.

If you think so too, please vote here:

User-defined Facets in DMF for SQL Server

The Declarative Management Framework in SQL Server 2008 has a built-in list of facets that policies can be based on. It would be desirable for users to be able to build their own Facets via CLR-based managed code.

While it is possible to extend the existing framework using T-SQL statements, this does not go far enough. Being able to extend the list of facets via managed code would greatly increase the possible uses of DMF. You can vote for this here:

DMF should allow regular expressions in its expressions

The new declarative management framework in SQL Server 2008 allows for the use of expressions. When you are entering expressions, it’d be great if you could use regular expressions. This would allow for example, a regular expression to be used for the names of tables that a policy element would apply to.

If you’d like to see this, the connect site is looking for your vote:


I know we’ve talked about this a number of times with a number of people but I’ve decided to reopen Adam Machanic’s 243986 suggestion on the connect site regarding the need for INSTEAD OF triggers for DDL operations. DMF now makes the need for these even more pressing. Many operations are way too expensive to roll back and some operations such as CREATE DATABASE are unable to be rolled back.

It should be possible to issue DMF policies for say “you may not rebuild indexes during 9am to 5pm Mon to Fri”.

INSTEAD OF triggers would also allow updating the DDL before executing it. For example, it could be formatted according to an organisation’s standard before being executed (and stored). You could also automatically insert comments on who performed the operation into the DDL for CREATE or ALTER. You could potentially even insert a checksum or procedure lineage information automatically.

If you agree, you know the drill, vote here:


DDL vs System Stored Procedures

In SQL Server 2005, a really good move towards the use of DDL (ie: CREATE/ALTER/DROP etc) rather than the use of system stored procedures (ie: sp_addlogin) was made. This is an important move not only for the clarity of the language itself but it allows these statements to be trapped by DDL triggers, notified via Event Notifications and controlled by Declarative Management Framework policies (coming in SQL Server 2008).

However, a number of aspects of SQL Server 2008 have moved back to using system stored procedures. I am encouraging Microsoft to reverse this trend. They seem to be making a distinction between “core engine” functionality and other functionality.

A good example of why this is a problem is sp_rename. Currently, you can set a DMF policy on the naming structure for tables yet this can be subverted by someone simply calling sp_rename to change the name after the CREATE statement has been run. Rather than trying to patch all these holes one by one, the syntax should be changed. I’d like to see sp_rename replaced by something like:

 ALTER OBJECT objectname WITH NAME = ‘newobjectname’

If you agree, please vote at the connect site here:

and while you’re at it, you can also vote for the same thing related to change data capture here:


SQL PASS in Denver was Excellent

In stark contrast to the quality of the trip to/from the US, the PASS conference in Denver was really excellent. This really is *the* world-wide SQL Server related event of the year. It was great to see the support of so many PASS volunteers, Microsoft product group staff and other presenters and attendees.

We had a PASS volunteer meet and greet function on Monday night and I was honoured to get to present sort of a keynote for the PASS volunteer day on Tuesday morning. Paul Nielsen had obtained copies of my technical communities book for all attendees and I got to cover a number of the key points contained in it.

Wednesday morning saw the conference start in earnest and it continued apace through to Friday night. I really have to single out Ed Lehman from Microsoft for thanks in the way that he prepared a number of MVP-only events during lunch on Wednesday and Thursday and most of Friday morning. These were intense and highly useful sessions. Ed and his team also organised a great evening out on Thursday night where the MVPs and Microsoft staff that were attending got to spend some quality time at a bowling alley.

For me, the pick of the conference sessions was the one that Michael Rys delivered on the new spatial data types and libraries.

On Friday, unfortunately I had to both deliver a session at 1pm to 2:15pm and be on a flight at 5pm so I was unable to stay after the session to take questions as I normally would do. As promised, if you have any questions arising from that session, please just email me at greg.low @ and I’ll attempt to sort them out as best I can.

I’d also like to thank all those that voted for me to be on the PASS board for the next two years and to also congratulate the other board members that were elected. I hope I can now live up to your expectations while I’m there.

The Woeful Service at QANTAS Continues

In a recent post, I discussed at length the issues I have been finding with QANTAS flights recently. I’ve just returned from yet another international trip with them and sadly, while I’ve continued to have endless delays, mechanical problems, etc. on domestic flights, nothing’s improved on the international routes in the last three months either.

We got to spend time in the wonderful new first class lounge in Melbourne. (This is a great benefit of platinum membership in the frequent flyer program). However, much as Mai loved being able to have a facial in the day spa while we were there, the reason we had so much time was yet another bout of engineering problems causing the flight to be delayed significantly. I’d happily trade the facial for a flight in a plane that worked and which departed when it was meant to. 

After another cramped, uncomfortable flight to LAX where yet again the infernal entertainment system didn’t work properly, we arrived too late for our connecting flight, even though I’d made sure we had quite a few hours buffer between them in the original plan. By contrast, the United Airlines flight from LAX to Denver International was wonderful. It was scheduled for 2:37pm. It pushed back at 2:36pm and arrived ten minutes ahead of the scheduled time. The staff were pleasant and helpful. The only hassle at United was the queue we had to stand in to get a boarding pass after QANTAS sent us over there with a paper order to serve as our ticket. No-one was really serving the paper ticket line and there were almost fights occuring between people in the queues about which queue should be served first. Most unpleasant. But as I mentioned, the flight itself and the crew on it were great.

On the return flight from DIA to LAX with American Airlines, again I couldn’t fault the folk from American. We got to use their lounge facilities at DIA and whilst somewhat spartan, the staff were helpful and pleasant. The 5:20pm flight pushed back right on 5:20pm and arrived fifteen minutes early at LAX. The cabin staff were also both pleasant and helpful.

Given the state of the demountable building that QANTAS (and BA and JAL, etc.) are currently using for a lounge at LAX / Tom Bradley, we decided to spend a few hours at the American Airlines lounge in the AA terminal before heading over to the Tom Bradley terminal. Again the staff there were super helpful and all was fine.

The trip through security at the Tom Bradley terminal was as painful as ever. I’d have to say that it’s pretty horrid going through there on occasions and Friday night was one of those occasions. Once inside the terminal, we headed over on the bus to the makeshift lounge. We sat and tried to do some reading but unfortunately the lounges don’t seem to have bans on the use of mobile phones or separate areas for it and we were just endlessly forced to listen to people discussing everything from football to orthodontics at the top of their voices while trying to be heard on their phones.

After returning to the terminal, we then joined the queue to board QF94 from LAX to MEL. As this flight doesn’t leave from an area with a jetbridge, you need to board one of their busses to travel to the plane. Doing so feels much more like being a member of a herd of cattle being jammed into the bus. After seeing the sign saying our flight was “on time” and thinking “finally we have an ontime flight with QANTAS!” we got to the plane to be told that the security folk were still checking the plane and we couldn’t board. This was after getting in and out of the vehicle, etc. in the pouring rain. I noticed one of the guys from business class absolutely blowing up at the cabin crew about the airline clearing having no concept of what the word service means.

Well you can imagine the next part. Our 11:40pm scheduled flight pushed back at 12:50am and finally took off at around 1:15am. This was after a significantly delayed boarding followed by yet another hour or more of sitting in the plane in stifling hot conditions because the APU at the back of the jet had decided it wasn’t going to work any more and there was no cool air until the engines could be started. The captain tried to make us feel better by telling us that it was worse for him (I’m sure it was, given he was upstairs and hot air rises) and that the cockpit felt like a sauna. Again, the crew try to make it sound like a one-off problem but I’ve had many nights sitting at the same location hearing the same story.

We were seated in 35F and G. The notable thing about this is that row 34 is the bulk head row with the basinets and where parents with babies normally end up sitting. In this case we had a young couple with their baby in 34 D/E. We probably only had about 1/2 hour of crying baby throughout the flight so I’d count that as a positive. However sitting in front of us were two young american guys that were pains in the neck. Saying they were “active” would be doing them a favour. The funniest part at the beginning was when they decided to play with the bassinet in front of them, pulled it down and then had no idea how to put it back up. Cabin crew eventually came and put it back up.

The problem with the seats we had was that every minute they could, the guys in front would lay their seats right back. Our seats had a wall behind them and couldn’t lay back fully, so even if you were happy to lay back the whole time to have some space you couldn’t. When sitting normally, I found I had around 6cm between my chin and the top of the seat in front. That also means that my “entertainment” unit screen was somewhere around my shoulder height. Given they don’t tilt up much, this makes viewing it almost impossible when the seat in front is laid fully down. It also means that you have laid-back angled space of 8 cm to try to get in and out of (between the seat in front and your arm-rest) whenever you needed to leave or enter your seat. That’s just plain dumb. Then to top it off, the people in the bulkhead row all push their shoes, etc. into the space under their seats not realising that it’s your only leg room. Then you couple in the fact that the “entertainment” system controller is also mounted in your only remaining foot space and, well you get the idea.

No surprise that even during the times that the guy in front had his seat in a position where I could use the “entertainment” system, it wasn’t possible to do so. On the flight over, most of the movies simply came up as a messed-up pixelated screen and occasional bursts of static-like noise. On the flight back, most of the time no matter what selection I made, the system simply told me that it couldn’t service my request “right now” and to try again later in the flight. It did the same for every type of selection, including the “broadcast” movie options that normally work when the on-demand ones don’t. The “FlightPath” was the only thing that worked at all.

I pushed my flight attendant call button to discuss it with them. Even that went unanswered and eventually I discussed it with the staff that came to clear up after breakfast. It’s a good thing I didn’t really need one of them urgently. Given the time I also spend on other airlines, I really think the QANTAS cabin crew need to spend time on other airlines and take a long hard look at themselves. Up until a few months ago, the customer service managers used to come and locate the platinum and gold members buried in the economy section and say hello and introduce themselves. While it was sort of trite, at least it was sort of pleasant. But in the last few months I’ve noticed they don’t even bother to do that any more. As mentioned in my previous post, I also have no idea how I end up in 34G when my preference says “rear aisle” but the seating preference scrambling that started a while back seems here to stay.

Eventually about 3 hours out of Melbourne, the customer service manager came on the PA system, again tried to sound surprised that there was a problem with the system and that he’d have to reboot the whole system. So anyone that had managed to start watching a movie then found they also now had it terminated. I’m starting to wonder if they have to train the staff to sound surprised. There are lots of reports (such as this one) that show this is a constant problem and has been for a long time.

Rebooting the “entertainment” system took around 20 minutes. When the customer service manager said it’d take 15 to 20 minutes, I must admit I was left wondering what on earth the system could do for 20 minutes while booting. How can any system take that long to boot nowadays? Of course the system booted up in time for people to start watching movies again, most of which were then terminated again when the system was shut off before landing.

The quarantine queue at Melbourne airport has now become one of the great challenges in life. Again today, our well-delayed flight dumped us in with another bunch of flights into customs and quarantine. Customs was slick and fast today. Quarantine however just gets worse every time I go there. The queues stretch out from the screening area, round into the baggage area and then around and around the baggage carousels. People endlessly seem to wander around even trying to find the start of the queues. I can understand the issue because it’s often not easy. These queues are an embarrassment to both Melbourne and to Australia and are no way to treat either guests to the country or those that need to travel for work.

Needless to say, our flight was scheduled to arrive at 7:50am but after the delayed arrival and the quarantine area fiasco, we managed to get clear of the terminal by around 11:15am, in time to go to the cab queue and watch the airport cab queue manager person having a big argument with one of the cabbies who clearly didn’t want to play by the manager person’s rules.

I was really pleased to see the airport disappearing as the cab drove off today. I’m heading off to Singapore with QANTAS next Saturday. I’m really not looking forward to the trip over and back but hopefully the content when I get there will be worth it. It’s sad to see the current state of a once-proud airline.

Juval is back in town soon – learn WCF from the master

Juval Lowy is back in Australia next month. He’ll be teaching our Industrial Strength WCF Master Series class from 15th to 19th October. WCF will be very important to most new applications being built for the Windows platform. If you really want to get your head around WCF, Juval is the one to help you do it. I’m desperately hoping I have time available to attend it as I missed it last time he was here.

Details are at:

The class is in Sydney this time but if you’re based in another location, talk to Faith at about options that might help you attend.

Highly recommended!

Silverlight 1.0 RTM and Moonlight for Linux Announcement

Congratulations to Scott Guthrie and his team for getting Silverlight 1.0 out the door. It was also interesting to note his announcement regarding official support and cooperation with Novell on Moonlight for Linux.

If you’re based in Canberra, Sydney or Melbourne, also make sure you get along to see our very own Philip Beadle covering Silverlight at the first Readify Developer Network session in October. Details are at:

Book: Inside SQL Server 2005 – The Storage Engine

In the first volume of the Inside SQL Server series for SQL Server 2005, Kalen Delaney again does a wonderful job of clearly describing many aspects of the system internals. Inside SQL Server 2005 – The Storage Engine is a must-have reference for anyone working with SQL Server 2005 at any depth. In this book, Kalen looks at how data is stored in SQL Server, particularly with reference to tables, indexes and locks. She also provdes good coverage of Row Versioning and Snapshot Isolation and shows many examples of using Dynamic Management Views (DMVs) to explore what’s going on inside the database engine.

 It’s always good to be able to recommend a friend’s book and this one is highly recommended!