Ada makalah yang sangat bagus dari Microsoft Research berjudul 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 dalam 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 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 filegroups, lihat Files and Filegroup Architecture untuk 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!