Editorials

The SQL Server BLOB Debate

New SQL Show Posted
Watch: SQLonCall: How to Hire a DBA – Part 3/3 – The Interview. Questions to ask, answers to look for, interpreting the responses, making the decision.

Also available:
Watch: SelectViews – Replication, Part-Time DBAs, 60-Second Tip of the Day
Watch: SQLonCall: How to Hire a DBA – How to review resumes, what to look for, what to avoid.

Featured Article(s)
Troubleshooting SQL Server 2005 Transactional Replication (Part 2)
In this article, Alexander Chigrik explains some problems that you can have when you work with SQL Server 2005 transactional replication. He also tells how you can resolve these problems.

Browser-Based Compare, Synchronize and Audit Tool
This is pretty cool – this tool will compare and script out changes to synchronize databases and objects, build transaction-enabled, optimized synchronization scripts that include rollback and more. You can even audit databases to keep track of changes, all from your web browser. No application software to install on the workstation. Take a look here – there is a trial version too so you can use it on your own systems to see how it works. Nice options!

Looking Over the BLOB Debate…
Here’s what I have learned/have come to question. First, if we have to assume that the engine is getting more efficient at storage (not sure) and that the languages more completely support BLOB-type objects (not sure), then the lines get really fuzzy for me any more. People that are indicating that it’s more efficient to store all in one location – you end up with massive backups potentially as you backup all those images.

BUT, you could solve this with filegroups and some interesting splitting of data based on likelihood of future use. You could say the same for simply huge data stores – that you should look to start segmenting data so you can make backup (and restore) functionality more efficient. Move (archive) things off that you don’t need active access to. So, does that mean that the "wow, it’ll be a whole lot of data to backup" argument is moot?

Second, I’m not sure we can go with the assertion that the dev languages have entirely caught up. We still see a LOT of traditional ASP and I don’t see it going away, but do see back end systems getting updated underneath ASP-based solutions. This means that the database may support it, but there are issues with ASP and TEXT/BLOB-type objects. Some as simple as the order of columns you return being an issue. This type of simple bug in ASP suggests that it wouldn’t be a good idea to store these objects there, you’re just asking for trouble.

Then, to mix up the pot even more – (I suppose this is "Third") – security. Several people have mentioned that security comes into play as putting things in the database is more efficient to manage a single location, single store for security of the images. I could see this, but, if you’re using integrated security and have things locked down at the disk level, doesn’t that accomplish the same thing if you do want to store them outside the DB?

Heh, one of the cool things about my job is that I get to play Devil’s advocate. In this one editorial, I’ve flipped back and forth, pretty good, eh? Seriously though – it almost seems to me that the pros have cons and the cons have pros and that it’s going to come down to your application, your environment. If this is the case, I think the shift will indeed happen over time in favor of storing in the database. The reason I think this is going to happen is one of mostly laziness – we’d all like to be able to code it into a central location and not have to worry so much about architecture. I think the DB will support these types of objects and perform well with them in the coming release(s). I think too that "best practices" will evolve to include this and start to address the real-world aspects of managing stagnant data vs. active data. This is something I don’t think is addressed and architected nearly enough in our systems on the whole. It’s just too easy to keep storing things until you’re forced to change things to open up space or address scale or performance issues.

Just My $0.02.

More reader comments tomorrow – Think I’m all wet? Let me know – I can take it. 🙂 Send in your thoughts here.

Webcast: SQL Server Crystal Ball: Knowing What to Watch As Your SQL Server System Grows
We’ll look into pulling baseline information, things you can do to chart and forecast growth on your system and the basic options you have to grow you system out and up. Find out how to use Performance Monitor tools and learn about what different scaling techniques can bring to the table.

> Register Now, reserve your spot
> 11/13/2007

Webcast: Creating, Managing and Reviewing Jobs with SQL Server 2005
We’ll show how to create a job, work through the different options,including notifications, variable job steps, scheduling and more. The goal of this session is to have you up and running, understanding how the options work for setting up and managing jobs in your system.

> Register Now, reserve your spot
> 11/14/2007

Featured White Paper(s)
Top 10 Performance Tuning Tips for Relational Databases
Although newer relational databases and faster hardware run most SQL queries with a significantly small response time, there … (read more)