
A példához szükséges a SampleDatabase05 adatbázis, melyet a mellékelt SampleDatabase05.sql lefuttatásával hozhatunk létre. A SampleDatabase05.sql script 5. sorában adja meg helyesen a létrehozandó adatbázisfájlok mappájának nevét és elérési útvonalát.
A sysfiles rendszertábla a felhasználó által létrehozott adatbázisok adatait tartalmazó, általában a „%winroot%/Program Files/Microsoft SQL Server/Mssql/ Data” elérési útvonalon megtalálható, adat- és naplófájlokkal kapcsolatos bejegyzéseket tartalmazza. A tábla egy virtuális rendszertábla.
A sysfiles rendszertáblával kapcsolatban meg kell említeni, hogy az adatbázisok fájljaival kapcsolatos adatok között található olyan információ, mely szorosan kapcsolódik egy másik rendszertáblához, a sysfilegroups táblához. Az adat- és naplófájlok ugyanis alapértelmezett módon egy kiindulási, elsődleges fájlcsoporthoz (PRIMARY) tartoznak, azonban deklarálhatók más fájlcsoportok is. Az ezzel kapcsolatos információkat, vagyis a fájlcsoport azonosítóját a „groupid” oszlopban tárolja a sysfiles rendszertábla az adott fájlokkal kapcsolatban. Nézzük először végig a sysfilegroups tábla oszlopait:
| Sorszám |
Oszlopnév |
Típus |
Leírás |
| 1 |
groupid |
smallint |
Fájlcsoport azonosító, mely a sysfiles táblában azonosítja a csoportot. Az adat minden adatbázisban egyedi. |
| 2 |
allocpolicy |
smallint |
Foglalt. |
| 3 |
status |
int |
Lehetséges értékei: 0x8=READONLY, 0x10=DEFAULT. |
| 4 |
groupname |
sysname |
A fájlcsoport neve. |
Most vizsgáljuk meg a sysfiles rendszertábla oszlopait:
| Sorszám |
Oszlopnév |
Típus |
Leírás |
| 1 |
fileid |
smallint |
Fájlazonosító, mely egyedi minden adatbázisban. |
| 2 |
groupid |
smallint |
Fájlcsoport azonosító. |
| 3 |
size |
int |
Fájl mérete (8 kB-os lapokból). |
| 4 |
maxsize |
int |
Maximális fájlméret (8 kB-os lapokból). Értékei: 0-fájl mérete nem növekedhet, 1-fájl mérete addig növekedhet, míg a lemez meg nem telik. |
| 5 |
growth |
int |
Az adatbázis növekedésének mértéke. A 0 érték azt jelzi, hogy a méretnövekedés nem megengedett. Megadható lapméretben, vagy a növekedés százalékában; a status oszlop értékétől függően. |
| 6 |
status |
int |
Bitminta tartalmazza a növekedés jellemzőit. Értékei: 0x1–alapértelmezett eszköz, 0x2-lemezes fájl, 0x40-naplófájl, 0x80-módosítva az utolsó mentés óta, 0x4000-implicit módon készült a CREATE DATABASE utasítás által, 0x8000- az adatbázis elkészítésekor keletkezett, 0x10000-növekedés százalékosa történik, nem laponként. |
| 7 |
perf |
int |
Foglalt. |
| 8 |
name |
nchar(128) |
Fájl logikai neve. |
| 9 |
filename |
nchar(260) |
Fájl fizikai neve elérési úttal. |
A mellékelt alkalmazásban arra láthatunk egy példát, hogy miként növekedhet az adat- és naplófájlok mérete adatok bevitelekor. A SampleDatabase05.sql parancsállomány lefuttatásakor egy Table1 nevű üres tábla kerül az adatbázisba, valamint egy DeleteRows nevű tárolt eljárás.
Az alkalmazás Form-ján két vizuális kontrolban jelennek meg a sysfiles rendszertábla és a Table1 tábla adatai, adatbevitel előtt és után. A „Rekordok beszúrása” feliratú gombbal a bevitel, a „Rekordok törlése” feliratú gombbal a törlés művelete indítható el. A beviteli műveletben 20000 rekordot szúrunk be a táblába, a művelet aktuális állapota követhető a ProgressBar kontrollal. A beviteli művelet hosszadalmas, a számítógép sebességétől függően pecekig is eltarthat.
A rekordok beszúrásával mintegy 50 lapnyi (400 kB) méretnövekedés figyelhető meg az adatfájlban és a naplófájlban. A beviteli művelet indításakor látható adatok a sysfiles táblában:
| 1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
| 1 |
1 |
128 |
-1 |
10 |
1081346 |
0 |
SampleDatabase05 |
D:\Program Files\Microsoft SQL Server\MSSQL\data\SampleDatabase05_Data.MDF |
| 2 |
0 |
128 |
-1 |
10 |
1081410 |
0 |
SampleDatabase05_Log |
D:\Program Files\Microsoft SQL Server\MSSQL\data\SampleDatabase05_Log.LDF |
Miután a rekordokat beszúrtuk, a következőre változtak az adatok:
| 1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
| 1 |
1 |
176 |
-1 |
10 |
1081346 |
0 |
SampleDatabase05 |
D:\Program Files\Microsoft SQL Server\MSSQL\data\SampleDatabase05_Data.MDF |
| 2 |
0 |
128 |
-1 |
10 |
1081410 |
0 |
SampleDatabase05_Log |
D:\Program Files\Microsoft SQL Server\MSSQL\data\SampleDatabase05_Log.LDF |
A törlés után megfigyelhető, hogy az adatfájlok méretadatai nem változnak, vagyis az adatmennyiség csökkenésekor nem csökkenti a rendszer az adatállományok méretét. A naplóállomány viszont 952 lapnyi méretre duzzad.