When Microsoft implemented Connect, I thought it was a great idea. It was a way for real users to submit bugs, and others to see those bugs, voting on them if they thought they were important. It would help Microsoft determine what features and bugs are important and perhaps allocate resources accordingly. However there was a fundamental problem with the system. People would see individual items, and could vote for them, but wouldn’t have an idea of what other items might be listed.
The work on SQL 11 is underway, and recently I got a note from Itzik Ben-Gan asking people to vote for windowing enhancements to the T-SQL language. I’m not sure exactly of all the places that these are useful, but Itzik is one of the smartest people I know and I tend to believe that if he finds these enhancements useful, they are likely going to make T-SQL easier to work with.
But are these items a priority? I am sure they are valuable, but are they more valuable than CREATE or REPLACE? IS it more of a priority than allowing SSMS add-ins? There are any number of enhancements that are listed, but most of us don’t have the time to dig through them all, or even try to determine how important they might be when weighed against other items.
Microsoft can do what they want, and they need to keep one eye on the sales generated from new features. However I wish that they’d reserve a slice of their development efforts for older features and get some community help in choosing which items to work on. I’d love to see a list of the items they are considering, maybe the top 20 features, and let us add votes to pick the 10 they can work on.
We may not sign the purchase orders, but us DBAs really like SQL Server and would appreciate improvements that make our jobs easier.
PS: Here are Itzik’s items:
- Ordering for aggregates (used to allow subsequent framing options)
- Framing (ROWS and RANGE window sub-clauses)
- DISTINCT clause for aggregate functions
- LAG and LEAD offset functions
- PERCENT_RANK and CUME_DIST Distribution Functions
- FIRST_VALUE, LAST_VALUE offset functions
- Reuse of window definition using the WINDOW clause
- QUALIFY filtering clause