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

Utilizzo di SQL Server come archivio immagini

10 Gb non sono un'enorme quantità di dati, quindi probabilmente puoi utilizzare il database per archiviarlo e non avere grossi problemi, ma ovviamente è meglio utilizzare il filesystem per quanto riguarda le prestazioni e, per quanto riguarda la gestione della sicurezza, è meglio usare il DB (backup e consistenza).

Fortunatamente, Sql Server 2008 ti permette di avere la tua torta e mangiarla anche tu, con:

L'attributo FILESTREAM

In SQL Server 2008 è possibile applicare l'attributo FILESTREAM a una colonna varbinary e SQL Server archivia quindi i dati per tale colonna nel file system NTFS locale. La memorizzazione dei dati nel file system porta due vantaggi chiave:

  • Le prestazioni corrispondono alle prestazioni di streaming del file system.
  • La dimensione del BLOB è limitata solo dalla dimensione del volume del file system.

Tuttavia, la colonna può essere gestita come qualsiasi altra colonna BLOB in SQL Server, quindi gli amministratori possono utilizzare le funzionalità di gestibilità e sicurezza di SQL Server per integrare la gestione dei dati BLOB con il resto dei dati nel database relazionale, senza dover gestire il dati del file system separatamente.

La definizione dei dati come colonna FILESTREAM in SQL Server garantisce anche la coerenza a livello di dati tra i dati relazionali nel database ei dati non strutturati fisicamente archiviati nel file system. Una colonna FILESTREAM si comporta esattamente come una colonna BLOB, il che significa integrazione completa delle operazioni di manutenzione come backup e ripristino, integrazione completa con il modello di sicurezza di SQL Server e supporto completo delle transazioni.

Gli sviluppatori di applicazioni possono lavorare con i dati FILESTREAM attraverso uno dei due modelli di programmazione; possono utilizzare Transact-SQL per accedere e manipolare i dati proprio come le colonne BLOB standard, oppure possono utilizzare le API di streaming Win32 con la semantica transazionale Transact-SQL per garantire la coerenza, il che significa che possono utilizzare chiamate di lettura/scrittura Win32 standard a FILESTREAM BLOB come farebbero se interagissero con i file sul file system.

In SQL Server 2008, le colonne FILESTREAM possono archiviare dati solo su volumi del disco locale e alcune funzionalità come la crittografia trasparente ei parametri con valori di tabella non sono supportate per le colonne FILESTREAM. Inoltre, non puoi utilizzare tabelle che contengono colonne FILESTREAM negli snapshot del database o nelle sessioni di mirroring del database, sebbene sia supportato il log shipping.