Pages

Thursday, September 11, 2008

Large Objects in SQL Server

A very common issue for database developers in the past was how to store and utilize large binary objects such as documents and media files. The method typically used was to store the files outside of the database and just store a pointer in the database to the external file. With this method, however, when you move the file, you must also remember to update the pointer.

SQL Server 2008 handles this issue with the new FILESTREAM data type. With this data type, files can still be stored outside of the database, but the data is considered part of the database for transactional consistency. This allows for the use of common file operations while still maintaining the performance and security benefits of the database.

1 comment:

Anonymous said...

Hi,
you answered a question for me on c#corner and now I am here on this really nice site of yours. I am new to programming and so pretty useless so need all the help that I can get.
I have read up a bit about this 2008 filestream functionality but I am just not getting it. Been to the MS pages but it is still not clear to me how the feature works. Got the archive db up and attached but not sure how to talk to it from c#.
Up until now I had inserted any images and docs into my tables into a varbinary (max) field via c# insert command and things were looking ok.
So the reason I write is cos I am interested to know your opinion as to which is the best way to store BLOBS into sql 200x express edition tables? I mean according to your experience....what is the way forward? I am ready to deploy my app to a customer but am concerned that I might run into problems in the future when the images inserted start becoming thousands.
Any advise greatly appreciated.
Ciao