C'è un ottimo documento di Microsoft Research chiamato To Blob or Not To Blob che tratta questo argomento in modo approfondito.
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 VARBINARY
colonna è 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 una tabella separata per archiviando queste immagini - non conservare le foto dei dipendenti nella tabella dei dipendenti - tenerle in una tabella separata. In questo modo, il tavolo Employee può rimanere snello, meschino e molto efficiente, assumendo che non sia sempre necessario selezionare anche la foto del dipendente come parte delle tue domande.
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
2011-12-20 11:11:37
Bene, la verità è che in TUTTE le query è necessario selezionare la miniatura OPPURE la foto (miniatura per le ricerche dei risultati e foto quando si entra per visualizzare i dati dell'immagine). In tal caso, dobbiamo mantenere separati anche in due righe? –