در SQL server 2008 نسخه ی کامل گزینه ای وجود داره که شما می توانید فیلدهایی تعریف کنید که از قابلیت filesystem پشتیبانی می کنه. به معنی که به SQL می فهمانید که این فیلد قرار است اطلاعات با حجم بالا ذخیره کند. SQL تا 8 مگابایت برای هر فایل را کاملا بهینه می داند. برای حجم های بین 8 مگابایت تا 2 گیگابایت را هم بدون کد نویسی خاصی و فقط با تغییر اندازه فیلد پشتیابانی می کند. هم چنین قابلیت ذخیره فایلهای با حجم بیشتر هم دارد.
و بعد در جستجو از الگوریتم هایی استفاده می کند که سرعت بازخوانی بهینه باشد.
در صورتی که حجم فایلهای شما ممکنه از 2 گیگابایت تجاوز کنه به سراغ FileSystem بروید . در غیر این صورت varbinaryMax برای شما کفایت می کند ( پیشنهاد من این است که بجای مکس یک مقدار مشخصی قرار دهید)
تجربه ی من در مورد یک نرم افزار با همین شیوه کاملا موفق بود و عملا هیچ مشکل خاصی در باز خوانی وجود ندارد.
فقط این که ما محتوای فایلهای را در یک جدول مجزا نرمال می کنیم. یعنی سعی کنید جدولی که محتوای فایلها را در خودش نگاه می دارد . یک ستون ID برای خودش و یک ستون ID برای رکورد اصلی و یک ستون هم برای محتوایش داشته باشد.
جستجو همیشه از رکورد اصلی انجام می شود. و وقتی مطمئن شدید کاربر قصد نمایش محتوای یک فایل خاص درون یک رکورد اصلی را دارد آن یک مورد را از جدول محتوای فایل دانلود کرده و نمایش دهید.
در برنامه ی من فایلهایی با حجم 40 تا 50 مگابایت هم در زمان بین 3 تا 5 ثانیه در رایانه ی کاربر مشاهده میشد. (اون هم یک سیستم با رم یک گیگابایت و پردازنده 3400 Hz قدیمی)