Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
A fájlrendszer I/O-nak a FileTable-on való működését ismerteti.
Ismerkedés a FileTables fájl I/O API-kkal való használatának első lépéseivel
A FileTables elsődleges használata várhatóan a Windows fájlrendszeren és a fájl I/O API-kon keresztül történik. A FileTables támogatja a nem tranzakciós hozzáférést az elérhető fájl I/O API-k gazdag készletén keresztül.
A fájl I/O API-hozzáférés általában a fájl vagy könyvtár logikai UNC-elérési útjának beszerzésével kezdődik. Az alkalmazások Transact-SQL utasítást használhatnak a GetFileNamespacePath (Transact-SQL) függvénnyel a fájl vagy könyvtár logikai elérési útjának lekéréséhez. További információ: Könyvtárak és elérési utak a Fájltáblákban.
Ezután az alkalmazás ezzel a logikai elérési úttal szerez egy leírót a fájlhoz vagy könyvtárhoz, és valamit végez az objektummal. Az elérési út átadható bármely támogatott fájlrendszer API-függvénynek, például a CreateFile() vagy a CreateDirectory() függvénynek egy fájl létrehozásához vagy megnyitásához és egy leíró beszerzéséhez. A fogantyú ezután használható adatok továbbítására, könyvtárak felsorolására vagy rendszerezésére, fájlattribútumok beolvasására vagy beállítására, fájlok vagy könyvtárak törlésére stb.
Fájlok és könyvtárak létrehozása Fájltáblában
Fájl vagy könyvtár hozható létre a FileTable-ban olyan fájl I/O API-k meghívásával, mint a CreateFile vagy a CreateDirectory.
Minden létrehozási jelölő, megosztási mód és hozzáférési mód támogatott. Ez magában foglalja a fájlok létrehozását, törlését és helyben történő módosítását. A fájlnévtér frissítései is támogatottak, például címtárlétrehozási/törlési, átnevezési és áthelyezési műveletek.
Egy új fájl vagy könyvtár létrehozása megfelel egy új sor létrehozásának a mögöttes FileTable-ban.
Fájlok esetében a streamadatok a file_stream oszlopban lesznek tárolva; könyvtárak esetében ez az oszlop null értékű.
Fájlok esetén a is_directory oszlop hamistartalmaz. Könyvtárak esetében ez az oszlop igaztartalmaz.
A hozzáférés megosztását és egyidejűségét akkor kényszeríti a rendszer, ha több egyidejű fájl I/O-művelet vagy Transact-SQL művelet befolyásolja a hierarchia ugyanazon fájlját vagy könyvtárát.
Fájlok és könyvtárak olvasása fájltáblában
A Read Committed elkülönítés szemantikája az SQL Serverben megvalósul az összes fájl I/O-hozzáférési műveletnél, amely a stream- és attribútumadatokra irányul.
Fájlok és könyvtárak írása és frissítése fájltáblában
A FileTable összes fájl I/O-írási vagy frissítési művelete nem tranzakciós. Ez azt jelenti, hogy ezekhez a műveletekhez egyetlen SQL Server-tranzakció sem kötődik, és nincsenek acid-garanciák.
A FileTable minden fájl I/O-streamelési/helyszíni frissítése támogatott.
A FILESTREAM-adatok vagy -attribútumok fájl I/O API-kkal történő frissítése a FileTable megfelelő file_stream és fájlattribútum-oszlopainak frissítését eredményezi.
Fájlok és könyvtárak törlése fájltáblában
A rendszer minden Windows-fájl I/O API-szemantikáját kikényszeríti egy fájl vagy könyvtár törlésekor.
A címtár törlése sikertelen, ha a címtár fájlokat vagy alkönyvtárakat tartalmaz.
Ha töröl egy fájlt vagy könyvtárat, az eltávolítja a megfelelő sort a Fájltáblából. Ez egyenértékű a sor Transact-SQL műveleten keresztüli törlésével.
Támogatott fájlrendszer-műveletek
A FileTables az alábbi fájlrendszerműveletekhez kapcsolódó fájlrendszer API-kat támogatja:
Címtárkezelés
Fájlkezelés
A FileTables nem támogatja a következő műveleteket:
Lemezkezelés
Kötetkezelés
Tranzakciós NTFS
A FileTables fájl I/O-hozzáférésének további szempontjai
Virtuális hálózatnevek (VNN-ek) használata az Always On elérhetőségi csoportokkal
Ha a FILESTREAM- vagy FileTable-adatokat tartalmazó adatbázis egy Always On rendelkezésre állási csoporthoz tartozik, akkor a fájlrendszer API-jain keresztül a FILESTREAM- vagy FileTable-adatokhoz való minden hozzáférésnek VNN-eket kell használnia a számítógépnevek helyett. További információ: FILESTREAM és FileTable az Always On rendelkezésre állási csoportokkal (SQL Server).
Részleges frissítések
A FileTable FÁJLSTREAM-adataihoz a GetFileNamespacePath (Transact-SQL) függvény használatával beszerzett írható leíró, segítségével helyben, részlegesen frissíthető a FILESTREAM-tartalom. Ez a viselkedés eltér a tranzakciós FILESTREAM-hozzáféréstől, amelyet egy OpenSQLFILESTREAM() meghívásával és egy explicit tranzakciós környezet átadásával kapott leíró használatával valósítanak meg.
Tranzakciós szemantikák
Ha fájl I/O API-k használatával fér hozzá a FileTable fájljaihoz, ezek a műveletek nincsenek felhasználói tranzakciókhoz társítva, és az alábbi további jellemzőkkel rendelkeznek:
Mivel a FileTable-ban a FILESTREAM-adatokhoz való nem tranzakciós hozzáférés nincs társítva semmilyen tranzakcióhoz, nincs külön elkülönítési szemantikája. Az SQL Server azonban belső tranzakciók használatával kényszerítheti a zárolási vagy egyidejűségi szemantikát a FileTable-adatokon. Minden ilyen típusú belső tranzakció olvasási elkülönítéssel történik.
Ezekre a filestream-adatokon végzett nem tranzakciós műveletekre nincs ACID-garancia. A konzisztencia garanciái hasonlóak a fájlrendszerbeli alkalmazások által végzett fájlfrissítésekhez.
Ezek a módosítások nem állíthatók vissza.
A FileTable FILESTREAM oszlopa azonban tranzakciós FILESTREAM-hozzáféréssel is elérhető OpenSqlFileStream()meghívásával. Ez a fajta hozzáférés teljes mértékben tranzakciós lehet, és tiszteletben tartja a jelenleg támogatott tranzakciós szinteket.
Egyidejűség-vezérlés
Az SQL Server kényszeríti az egyidejűség-vezérlést a FileTable-hozzáféréshez a fájlrendszeralkalmazások, valamint a fájlrendszeralkalmazások és Transact-SQL alkalmazások között. Ez az egyidejűség-vezérlés a FileTable-sorok megfelelő zárolásával érhető el.
Eseményindítók
Fájlok vagy könyvtárak vagy attribútumaik fájlrendszeren keresztüli létrehozása, módosítása vagy törlése megfelelő beszúrási, frissítési vagy törlési műveleteket eredményez a FileTable-ban. Ezen műveletek részeként minden társított Transact-SQL DML-eseményindító aktiválódik.
A FileTables szolgáltatásban támogatott fájlrendszer-funkciók
| Képesség | Támogatott | Megjegyzések |
|---|---|---|
| Oplocks | Igen | A 2. szint, az 1. szint, a Batch és a Szűrő oplockok támogatottak. |
| kiterjesztett attribútumok | Nem | |
| Újraparszolási pontok | Nem | |
| állandó ACL-ek | Nem | |
| Névvel ellátott adatfolyamok | Nem | |
| Ritka fájlok | Igen | A ritkaság csak fájlokon állítható be, és hatással van az adatfolyam tárolására. Mivel a FILESTREAM-adatok NTFS-köteteken tárolódnak, a FileTable funkció támogatja a ritka fájlokat a kérések NTFS fájlrendszerbe való továbbításával. |
| tömörítési | Igen | |
| titkosítás | Igen | |
| TxF | Nem | |
| fájlazonosítók | Nem | |
| objektumazonosítók | Nem | |
| szimbolikus hivatkozások | Nem | |
| Kemény hivatkozások | Nem | |
| Rövid nevek | Nem | |
| címtárváltoztatási értesítések | Nem | |
| Bájttartomány-zárolás | Igen | A bájttartomány-zárolási kérelmeket a rendszer átadja az NTFS fájlrendszernek. |
| Memóriatérképezett fájlok | Nem | |
| I/O-művelet megszakítása | Igen | |
| biztonság | Nem | A rendszer érvényesíti a Windows megosztási szintű biztonsági intézkedéseket, valamint az SQL Server tábla- és oszlopszintű biztonságot. |
| USN-napló | Nem | A Fájltábla fájljainak és könyvtárainak metaadatain bekövetkező változások DML-műveletek egy SQL Server adatbázisban. Ezért a rendszer a megfelelő adatbázis naplófájljában naplózza őket. A rendszer azonban nem naplózza őket az NTFS USN-naplóban (a méretváltozások kivételével). Az SQL Server változáskövetési képességei hasonló információk rögzítésére használhatók. |
Lásd még:
Fájlok betöltése a FileTables
Munka könyvtárakkal és elérési utakkal a FileTables-ben
Hozzáférés a FileTables segítségével Transact-SQL
FileTable DDL, függvények, tárolt eljárások és nézetek