Ada makalah yang sangat bagus oleh Microsoft Research yang disebut To Blob or Not To Blob .
Kesimpulan mereka setelah sejumlah besar tes dan analisis kinerja adalah ini:
-
jika gambar atau dokumen Anda biasanya berukuran di bawah 256K, menyimpannya di kolom VARBINARY database lebih efisien
-
jika gambar atau dokumen Anda biasanya berukuran lebih dari 1 MB, menyimpannya di sistem file lebih efisien (dan dengan atribut FILESTREAM SQL Server 2008, mereka masih di bawah kendali transaksional dan bagian dari database)
-
di antara keduanya, itu sedikit kacau tergantung pada penggunaan Anda
Jika Anda memutuskan untuk meletakkan gambar Anda ke dalam tabel SQL Server, saya akan sangat menyarankan menggunakan tabel terpisah untuk menyimpan gambar-gambar itu - jangan simpan foto karyawan di tabel karyawan - simpan di tabel terpisah. Dengan begitu, tabel Karyawan dapat tetap ramping dan kejam serta sangat efisien, dengan asumsi Anda tidak selalu harus memilih foto karyawan juga, sebagai bagian dari kueri Anda.
Untuk grup file, lihat Arsitektur File dan Filegroup untuk sebuah intro. Pada dasarnya, Anda akan membuat database Anda dengan filegroup terpisah untuk struktur data besar sejak awal, atau menambahkan filegroup tambahan nanti. Sebut saja "LARGE_DATA".
Sekarang, setiap kali Anda memiliki tabel baru untuk dibuat yang perlu menyimpan kolom VARCHAR(MAX) atau VARBINARY(MAX), Anda dapat menentukan grup file ini untuk data besar:
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
Lihat intro MSDN di filegroups, dan mainkan!