Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Il modo migliore per archiviare una stringa grande nel database di SQL Server?

In SQL Server 2008 hai la possibilità di utilizzare FILESTREAM per memorizzare dati binari di grandi dimensioni. In questo caso, i dati saranno disponibili nelle query, ma archiviati fisicamente nel filesystem.

Microsoft ha pubblicato un Articolo tecnico su SQL Server che contiene informazioni utili su come e quando utilizzare FILESTREAM . Nell'ottava pagina, il grafico di confronto mostra che FILESTREAM ha un vantaggio su BLOB archiviati nel database se i dati archiviati sono maggiori di 1 MB .

NOTA FILESTREAM non è disponibile in SQL Server 2005! (E SQL Server 2005 non è più supportato da Microsoft - salvo il supporto esteso)

Alcuni articoli da leggere

Puoi vedere alcuni grafici di confronto su blog SQLSkills sulle sue prestazioni.

Anche Microsoft Research ha pubblicato un Articolo tecnico:To BLOB or Not To BLOB su filestream e BLOBS.

Puoi fare un tentativo, ma come sempre, devi eseguire alcuni test specifici dell'ambiente per essere sicuro che questa soluzione funzioni o meno. Se si tratta di un prodotto sul mercato, è una buona idea implementare il supporto FILESTREAM come funzionalità di attivazione o disattivazione.

Solo una nota a margine

NVARCHAR è due volte più grande di VARBINARY perché SQL Server archivia ogni carattere su 2 byte nell'unicode (NCHAR , NVARCHAR , ecc.) colonne.