C'è un documento davvero buono di Microsoft Research chiamato To Blob or Not To Blob.
La loro conclusione dopo un gran numero di test di performance e analisi è questa:
se le tue immagini o documenti sono in genere al di sotto di 256 K in termini di dimensioni, la loro memorizzazione in un database di colonna VARBINARY è più efficiente
se le immagini oi documenti sono in genere di dimensioni superiori a 1 MB, la loro memorizzazione nel filesystem è più efficiente (e con l'attributo FILESTREAM
di SQL Server 2008, sono ancora sotto controllo transazionale e parte del database)
tra quei due, è un po 'di un lancio-up a seconda del vostro uso
Se si decide di mettere le immagini in una tabella SQL Server, consiglio vivamente usando un tavolo separato per la memorizzazione quelle foto - non conservare le foto dei dipendenti nella tabella dei dipendenti - tenerle in una tabella separata. In questo modo, la tabella Employee
può rimanere snella, media e molto efficiente, assumendo che non sia sempre necessario selezionare anche la foto del dipendente come parte delle query.
Per i filegroup, consultare Files and Filegroup Architecture per un'introduzione. Fondamentalmente, dovresti creare il tuo database con un filegroup separato per grandi strutture di dati fin dall'inizio o aggiungere un filegroup aggiuntivo in seguito. Chiamiamolo LARGE_DATA
.
Ora, ogni volta che avete una nuova tabella per creare, che ha bisogno di memorizzare VARCHAR(MAX)
o VARBINARY(MAX)
colonne, è possibile specificare il gruppo di file per la grande dati:
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
Partenza l'intro MSDN su filegroup, e giocarci!
fonte
2013-03-12 09:03:14