2010-12-29 18 views
7

Qual è la procedura migliore per archiviare foto di grandi dimensioni/file di testo in SQL Server. Eliminando la necessità di scalabilità e stiamo solo lavorando con 1 server.memorizzazione di file di grandi dimensioni in server sql

Ritengo che archiviare un percorso di file in sql rispetto a un blob sia migliore. È vero? Se dovessimo scalare il software, dovremmo comunque seguire questo metodo.

risposta

9

Dipende dalla dimensione dei file.

C'è un buon white paper Microsoft sull'argomento, here.

oggetti più piccolo di 256 K sono meglio conservati in una banca dati, mentre gli oggetti più grandi di 1M sono meglio conservati nel filesystem. Tra 256K e 1M, il rapporto lettura: scrittura e velocità di sovrascrittura o sostituzione dell'oggetto sono fattori importanti

Naturalmente le loro conclusioni sono specifiche per SQL Server (2005 e 2008 R2).

+0

sorprendente carta, bello trovare! – gh9

+0

Bella carta, anche se specifica per il server MS-SQL! Dipende anche dal numero di immagini e dalle specifiche dell'applicazione. È probabilmente più sicuro per BLOB, poiché è meno soggetto a errori. –

1

Si tratta principalmente di utilizzare lo strumento giusto per il lavoro. Un sacco di tempo e sforzi sono stati dedicati all'ottimizzazione di un database relazionale allo scopo di memorizzare i dati relazionali. Un sacco di tempo e sforzi sono stati dedicati all'ottimizzazione dei file system allo scopo di archiviare i file.

Il primo può essere utilizzato per eseguire parte del lavoro di quest'ultimo, ma a meno che non ci sia una buona ragione per non utilizzare quest'ultimo, è lo strumento più adatto per il lavoro. In quasi tutti i casi in cui mi sono imbattuto, memorizzando il percorso del file (e altre informazioni rilevanti sul file che si desidera) nel DB e il file effettivo su FS è un approccio più adatto all'utilizzo degli strumenti disponibili.

1

È una cattiva idea. A meno che tu non abbia una ragione molto specifica per archiviare i file nei dati. Già discusso qui: Storing Images in DB - Yea or Nay?

Se ancora insistere, di leggere la migliore pratica per farlo :) qui Best Practices for uploading files to database

+0

Non passa una settimana che non malediamo chiunque abbia deciso di mettere le nostre immagini nel DB. Immagino che al momento sia sembrata una buona idea e che non avremmo mai avuto molte immagini, ma non è solo una buona idea. – dwidel

+0

:) specialmente quando il titolo della tua domanda dice "memorizzazione di file di grandi dimensioni in server sql" Per grande intendevo, maggiore di un megabyte. Ma, anche se è più piccolo, non lo memorizzerei in DB. Solo perché, come ha detto correttamente @David, non è lo strumento giusto per il lavoro. File: potrei voler ridimensionare, zippare, dividere o probabilmente voler pubblicare su Amazon S3. Non posso farlo rapidamente, se sono in DB. – Nishant

Problemi correlati