Don’t rely on undocumented features


I’m as guilty as anyone, but, with the advent of Yukon, I think we’re really to the point where many of the undocumented features the user community has come to rely on are no longer needed.  The SQL Server development team has made a concerted effort in the new release to make these types of hacks unnecessary, and I think they’ve largely succeeded. 


So, here’s some unsolicited advice for you:  As you upgrade from SQL Server 2000 to Yukon, take the opportunity to wean your applications off of any dependencies they may have on undocumented SQL Server features, even for those that still work (many won’t).  As I’ve said in my books, anything that’s not documented in the Books Online is for all intents and purposes “undocumented” and is fair game for changes down the road.  The momentary glee that comes with figuring out how to use an undocumented feature to solve a problem that’s been bedeviling you for awhile quickly subsides when that feature brings down your server or corrupts your data.  Try very hard to keep your usage of the product within the boundaries of documented features, and make sure Microsoft knows about functionality you need that is only available through undocumented or other potentially unsafe mechanisms so that the product can evolve to include it.


I’ve mentioned in the past that one reason I’ve documented these types of features was as a teaching aid — to help illustrate how the server works internally.  And I still think that understanding how something works is key to understanding how it was intended to be used and how it can best be used.  That said, it’s my hope that needing to delve into these undocumented areas in order to understand what’s going on behind the scenes is mostly a thing of the past.  Yukon’s new DMVs and DMFs might very well make this type of spelunking completely unnecessary.  We won’t know for sure until well after the product ships, but I’m optimistic.


Comments (4)

  1. nwc3po says:

    I googled DMV and DMF and didn’t come up with anything. Does anyone have a link for what those are?

  2. Andrew says:

    DMF – SQL Distributed Management Framework

    Dynamic Management Views (DMV)<br>

    Dynamic management views expose the current state of the Microsoft® SQL Serverâ„¢ 2005 system. They contain metadata that is not persisted on disk but stored in memory only. Dynamic management views can be used to answer diagnostic questions.

  3. MSDNArchive says:

    DMV = Dynamic Management View, DMF = Dynamic Management Function

  4. Hmm, kind of like SQL-NS (Namespace) vs. SQL-NS (Notification Services)…

    Looks like MS needs to find some new acronyms :)