FileTable (SQL Server)

Si applica a:SQL Server

La funzionalità FileTable fornisce supporto per lo spazio dei nomi dei file di Windows e la compatibilità con le applicazioni di Windows ai dati dei file archiviati in SQL Server. FileTable consente l'integrazione dei componenti di archiviazione e gestione dei dati da parte di un'applicazione e fornisce servizi di SQL Server integrati, incluse la ricerca full-text e la ricerca semantica, su dati e metadati non strutturati.

In altre parole, è possibile archiviare file e documenti in speciali tabelle denominate FileTable in SQL Server, ma accedere a tali file e documenti da applicazioni di Windows come se questi fossero archiviati nel file system, senza apportare alcuna modifica alle applicazioni del client.

La caratteristica FileTable si basa sulla tecnologia FILESTREAM di SQL Server. Per altre informazioni su FILESTREAM, vedi FILESTREAM (SQL Server).

Vantaggi della caratteristica FileTable

Tra gli obiettivi della caratteristica FileTable sono inclusi i seguenti:

  • Compatibilità con le API Windows per dati dei file archiviati all'interno di un database di SQL Server. La compatibilità con le API Windows include gli elementi seguenti:

    • Accesso tramite flusso non transazionale e aggiornamenti sul posto ai dati FILESTREAM.

    • Spazio dei nomi gerarchico di directory e file.

    • Archiviazione di attributi dei file, quali data di creazione e data di modifica.

    • Supporto per API di gestione di file e directory di Windows.

  • Compatibilità con altre caratteristiche di SQL Server, inclusi strumenti di gestione, servizi e funzionalità di query relazionali su dati FILESTREAM e attributi di file.

Le tabelle FileTable eliminano pertanto un ostacolo significativo all'uso di SQL Server per l'archiviazione e la gestione di dati non strutturati che si trovano attualmente come file in file server. Le organizzazioni possono spostare tali dati da file server a tabelle FileTable per sfruttare l'amministrazione integrata e altri servizi forniti da SQL Server. Contemporaneamente, le organizzazioni possono gestire la compatibilità delle applicazioni di Windows che riconoscono tali dati come file nel file system.

Definizione di tabella FileTable

SQL Server fornisce una speciale tabella di file, denominata anche FileTable, per applicazioni che richiedono archiviazione di file ed elenco nel database, con compatibilità con le API Windows e accesso non transazionale. Il termine FileTable indica una tabella utente specifica con uno schema predefinito per l'archiviazione di dati FILESTREAM, nonché informazioni sulla gerarchia di file ed elenchi e attributi di file.

Una tabella FileTable offre le funzionalità seguenti:

  • Una tabella FileTable rappresenta una gerarchia di directory e file. In tale tabella sono archiviati i dati correlati a tutti i nodi nella gerarchia, sia per le directory sia per i file inclusi in tali nodi. Questa gerarchia inizia da una directory radice specificata durante la creazione della tabella FileTable.

  • Ogni riga in una tabella FileTable rappresenta un file o una directory.

  • Ogni riga contiene i seguenti elementi. Per altre informazioni sullo schema di una tabella FileTable, vedere Schema delle tabelle FileTable.

    • Colonna file_stream per i dati del flussi e un identificatore stream_id (GUID). (La colonna file_stream è NULL per un elenco.)

    • Entrambe le colonne path_locator e parent_path_locator per la rappresentazione e la gestione dell'articolo corrente (file o elenco) e della gerarchia di elenco.

    • 10 attributi di file, quali data di creazione e data di modifica, utili con le API di I/O dei file.

    • Una colonna Type che supporta la ricerca full-text e la ricerca semantica su file e documenti.

  • Una tabella FileTable applica determinati vincoli e trigger definiti dal sistema per gestire la semantica degli spazi dei nomi dei file.

  • Quando il database è configurato per l'accesso non transazionale, la gerarchia di file ed elenco rappresentata nella tabella FileTable viene esposta sotto la condivisione di FILESTREAM configurata per l'istanza di SQL Server. In questo modo, viene fornito l'accesso al file system per applicazioni Windows.

Caratteristiche aggiuntive delle tabelle FileTable

  • I dati di file e directory archiviati in una tabella FileTable vengono esposti tramite una condivisione di Windows per l'accesso non transazionale ai file per applicazioni basate su API Windows. Per un'applicazione Windows, questa è simile a una condivisione normale con i file e le directory. Le applicazioni possono utilizzare un vasta gamma di API Windows per gestire i file e le directory inclusi in questa condivisione.

  • La gerarchia di directory rappresentata tramite la condivisione è una struttura di directory puramente logica gestita all'interno della tabella FileTable.

  • Le chiamate per creare o modificare un file o elenco tramite la condivisione di Windows vengono intercettate da un componente di SQL Server e applicate ai dati relazionali corrispondenti nella tabella FileTable.

  • Le operazioni delle API Windows sono di natura non transazionale e non sono associate alle transazioni utente. L'accesso transazionale ai dati FILESTREAM archiviati in una tabella FileTable, tuttavia, è completamente supportato, come nel caso di qualsiasi colonna FILESTREAM in una normale tabella. Se devi modificare i file di frequente da più connessioni e garantire una protezione file appropriata, usa l'accesso FILESTREAM transazionale tramite OpenSqlFilestream(), anziché blocchi di file esclusivi a livello di API Windows.

  • È inoltre possibile eseguire query su tabelle FileTable e aggiornarle tramite normale accesso Transact-SQL. Le tabelle FileTable sono inoltre integrate con gli strumenti di gestione di SQL Server e con caratteristiche quali il backup.

  • Non puoi inviare una richiesta tramite email con Posta elettronica database e allegare un file che si trova in un elenco FileStream (e di conseguenza FileTable). Il driver di filtro del file system RsFx0420 esamina le richieste di I/O in ingresso da e verso la cartella FileStream. Le richieste non provenienti dal file eseguibile di SQL Server e dal codice FileStream vengono esplicitamente rifiutate.

Ulteriori considerazioni sull'utilizzo di tabelle FileTable

Considerazioni sull'amministrazione

Informazioni su FILESTREAM e tabelle FileTable

È necessario configurare tabelle FileTable separatamente da FILESTREAM. È pertanto possibile continuare a utilizzare la caratteristica FILESTREAM senza abilitare l'accesso non transazionale o creare tabelle FileTable.

Non è disponibile alcun accesso non transazionale a dati FILESTREAM se non tramite tabelle FileTable. Quando abiliti l'accesso non transazionale, pertanto, il comportamento delle applicazioni e delle colonne FILESTREAM esistenti non subisce modifiche.

Informazioni sulle tabelle FileTable e l'accesso non transazionale

È possibile abilitare o disabilitare l'accesso non transazionale a livello di database.

È possibile configurare o ottimizzare l'accesso non transazionale a livello di database disabilitando o abilitando l'accesso in sola lettura o in lettura/scrittura.

Le tabelle FileTable non supportano file con mappa di memoria

Le tabelle FileTable non supportano file con mappa di memoria. Blocco note e Paint sono due esempi comuni di applicazioni in cui vengono utilizzati file con mapping in memoria. Non è possibile utilizzare queste applicazioni nello stesso computer di SQL Server per aprire file archiviati in una tabella FileTable. Tuttavia è possibile utilizzare queste applicazioni da un computer remoto per aprire file archiviati in una tabella FileTable, perché in queste circostanze la caratteristica con mappa di memoria non viene usata.