Fino a SQL Server 2005, quando era necessario salvare file binari direttamente all'interno di un database, l'unica soluzione possibile consisteva nell'utilizzare campi di tipo VARBINARY(MAX). Questo approccio, però, ha una serie di svantaggi, primo fra tutti il degrado delle prestazioni: ad esempio, nel caso si streaming, l'accesso ai dati memorizzati all'interno di SQL Server è di gran lunga più lento rispetto all'accesso diretto al file system.
Inoltre, le informazioni devono prima essere scritte nella memoria del DBMS, e solo a questo punto sono disponibili all'applicazione ne ha fatto richiesta. Al contrario, memorizzando i dati su file system, questi possono essere letti e inviati direttamente al client, senza la "mediazione" di un buffer gestito dal database engine.
In questo contesto si inserisce FILESTREAM, funzionalità introdotta con SQL Server 2008. Essa permette alle applicazioni basate su SQL Server di archiviare file, ovvero dati non strutturati come documenti e immagini, nel file system.
non ci si deve più preoccupare del limite dei 2 GB per la memorizzazione dei file binari (limite intrinseco del tipo VARBINARY(MAX)).
Innanzi tutto, precisiamo che il FILESTREAM non è propriamente un nuovo tipo di dati, bensì un attributo del tipo VARBINARY(MAX). Esso modifica la modalità di salvataggio delle informazioni inserite in un campo di questo tipo, andandole a scrivere in un file su disco piuttosto che nel database (come avviene per i dati VARBINARY "normali").
Dal momento che si tratta di una funzionalità integrata direttamente nel motore del database, la maggior parte degli strumenti e delle funzioni di gestione di SQL Server supporta anche i dati FILESTREAM. Ad esempio, è possibile utilizzare tutti i modelli di backup e di recupero con i dati FILESTREAM, di cui viene eseguito il backup come qualunque altro tipo di dati presente nel database.
I dati FILESTREAM, inoltre, sono protetti come tutti gli altri tipi di informazioni, grazie alle autorizzazioni a livello di tabella o colonna. Se un utente dispone delle autorizzazioni per la colonna FILESTREAM in una tabella, può aprire i file associati. È bene ricordare, però, che la crittografia non è supportata sui dati FILESTREAM. Inoltre, solo l'account con cui viene eseguito il servizio SQL Server ha le autorizzazioni NTFS sul contenitore FILESTREAM, ovvero la directory che contiene i dati binari memorizzati nelle colonne FILESTREAM.
Il FILESTREAM è supportato in tutte le versioni di SQL Server, compresa l'edizione Express: in questo caso, il limite massimo di 4 GB per un database non tiene conto di eventuali dati FILESTREAM. Tale funzionalità, inoltre, è compatibile con la replica di database e il Log shipping , mentre non è possibile creare snapshot o configurare il mirroring su database che contengono FILESTREAM.
|
SQL Maintenance Solution: soluzione free per la manutenzione di SQL Server |
Guida AccessIniziare a sviluppare database grazie alla potenza visuale offerta... |
Guida SQL Server 2005L'RDBMS di Microsoft è uno dei più utilizzati, soprattutto in ambito... |
Guida OracleScoprire ed approfondire un dei più importanti RDBMS sulla scena... |
Ogni settimana, in due distinte newsletter: notizie a approfondimenti su MySQL, SQLserver e Oracle.
Iscriviti alla newsletter