Có một bài báo thực sự hay của Microsoft Research có tên To Blob hay Not To Blob .
Kết luận của họ sau một số lượng lớn các bài kiểm tra và phân tích hiệu suất là:
nếu hình ảnh hoặc tài liệu của bạn thường có kích thước dưới 256KB, thì việc lưu trữ chúng trong cột VARBINARY cơ sở dữ liệu sẽ hiệu quả hơn
nếu ảnh hoặc tài liệu của bạn thường có kích thước trên 1 MB, việc lưu trữ chúng trong hệ thống tệp sẽ hiệu quả hơn (và với thuộc tính FILESTREAM của SQL Server 2008, chúng vẫn nằm trong sự kiểm soát giao dịch và là một phần của cơ sở dữ liệu)
ở giữa hai thứ đó, đó là một chút lộn xộn tùy thuộc vào việc sử dụng của bạn
Nếu bạn quyết định đặt ảnh của mình vào bảng SQL Server, tôi thực sự khuyên bạn nên sử dụng một bảng riêng để lưu trữ những ảnh đó - không lưu trữ ảnh nhân viên trong bảng nhân viên - giữ chúng trong một bảng riêng. Theo cách đó, bảng Nhân viên có thể gọn gàng, có ý nghĩa và rất hiệu quả, giả sử bạn không luôn cần phải chọn ảnh nhân viên, như một phần của các truy vấn của bạn.
Đối với các nhóm fileg, hãy xem Tập tin và Kiến trúc Filegroup để biết phần giới thiệu. Về cơ bản, bạn sẽ tạo cơ sở dữ liệu của mình với một nhóm tệp riêng cho các cấu trúc dữ liệu lớn ngay từ đầu hoặc thêm một nhóm tệp bổ sung sau. Hãy gọi nó là "LARGE_DATA".
Bây giờ, bất cứ khi nào bạn có một bảng mới để tạo cần lưu trữ các cột VARCHAR (MAX) hoặc VARBINARY (MAX), bạn có thể chỉ định nhóm tệp này cho dữ liệu lớn:
CREATE TABLE dbo.YourTable
(....... define the fields here ......)
ON Data -- the basic "Data" filegroup for the regular data
TEXTIMAGE_ON LARGE_DATA -- the filegroup for large chunks of data
Kiểm tra phần giới thiệu MSDN trên các nhóm fileg và chơi xung quanh nó!