Trong SQL Server 2008, bạn có tùy chọn sử dụng FILESTREAM
để lưu trữ dữ liệu nhị phân lớn. Trong trường hợp này, dữ liệu sẽ có sẵn trong các truy vấn, nhưng được lưu trữ vật lý trên hệ thống tệp.
Microsoft đã xuất bản Bài viết Kỹ thuật Máy chủ SQL
trong đó chứa thông tin hữu ích về cách thức và thời điểm sử dụng FILESTREAM
. Trên trang thứ 8, biểu đồ so sánh cho thấy FILESTREAM có lợi thế qua BLOB được lưu trữ trong cơ sở dữ liệu nếu dữ liệu được lưu trữ lớn hơn 1MB .
LƯU Ý FILESTREAM không khả dụng trong SQL Server 2005! (Và SQL Server 2005 không được Microsoft hỗ trợ lâu hơn - ngoại trừ hỗ trợ mở rộng)
Một số bài viết khác để đọc
Bạn có thể xem một số biểu đồ so sánh trên blog SQLSkills về hiệu suất của nó.
Ngoài ra, Microsoft Research đã xuất bản một Bài viết kỹ thuật:Tới BLOB hay Không tới BLOB về luồng phim và BLOBS.
Bạn có thể thử, nhưng như mọi khi, bạn phải chạy một số thử nghiệm môi trường cụ thể để đảm bảo rằng giải pháp này có hoạt động hay không. Nếu đây là một sản phẩm trên thị trường, bạn nên triển khai hỗ trợ FILESTREAM dưới dạng tính năng chọn tham gia hoặc chọn không tham gia.
Chỉ là ghi chú bên lề
NVARCHAR
lớn gấp đôi so với VARBINARY
bởi vì SQL Server lưu trữ mỗi ký tự trên 2 byte trong unicode (NCHAR
, NVARCHAR
, v.v.) cột.