• Jim P. (9/30/2013)


    Eric M Russell (9/30/2013)


    SQL Server has for the last couple of releases been extending beyond the traditional relational model for storing and retreiving data. For example, we now have support for indexed XML datatypes and Semantic query extensions on top of FullText engine, which extends the variety of data that can be effectively managed within a database. Analysis Services has been around since v7.0, and we could think of OLAP has a type of NoSQL solution. ColumnStore is promising as a "big table" solution (even though 2012 doesn't provide update capability).

    And I still have as yet to come across a solution that provides SQL Server DB recovery in a decent time frame when the DB is holding binary, varbinary, extensive XML or similar data.

    The use of the FSO model for data import is problematic. SSIS is fraught with problems including it's limited debugging options. BCP is ancient.

    My last company, when I left over five years ago, had a 70GB DB filled with just the pointers to files (image, pdf, and office docs) on disk. The restore, for upgrades, was always a nightmare. The files on disk were past the 2TB size already.

    Storage of binary data in a DB is zero option for me and always will be. If you want to buy into the M$ idea of Sharepoint and similar SW go for it. I don't.

    I'm not a fan of "dumping" unstructured or BLOB data in-row in a RDMS either. The impression I get is that most users of NoSQL database solutions are basically just application developers who need some way to persist the session state of their web application, typically something like serializing the contents of a shopping cart as XML or JSON and then holding it temporarily until the user gets to the check out page. I'd actually prefer the website keep it's "stuff" in something like MongoDB. So long as the final purchase order gets properly stored in the RDBMS accountting system when the user clicks the 'Submit' button; that's all the business cares about.

    I once worked for a company that provided a check imaging solution for banks. There was a transaction table, which contained a handful of columns like acct number, routing number, amount, etc. which were scanned from the physical check. The check image (a TIFF file) was stored within one of various folders in the file system. There was no "pointer" to the image, there was no path or URL inside the row. The actual path for containing the image was instead assumed based on client setup, and the image name was based on the row's unique transaction_id, which was simply an incremental integer or identity. So the storage of document images required no additional storage in the database.

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho