SQL Server startup paraméterek adattárházas környezetben
Az alábbi cikkben összeszedem, hogy adattárházas környezetben milyen paraméterekkel érdemes indítani az SQL Servert
-E paraméter
A -E startup paraméter hatására az SQL Server megváltoztatja Extent allokálási szokását és 1 Extent helyett rögtön 64-et hoz létre. Hogy mit jelent ez és miért jó ez nekünk, azt megpróbálom röviden összefoglalni. Kitérő következik.
Az SQL Szerver az adatokat Page-ekbe rendendezve tárolja. Egy page 8 KB helyet foglal. Ez az a legkisebb egység, amit az SQL Server fel tud olvasni a diszkről. Amikor létrehozunk egy 1 GB-os adatbázist, akkor az SQL Server előre legyárt annyi Page-et, hogy kitöltse az 1 GB-ot.
Létrehoztuk az adatbázist, de jelen pillanatban ezek a Page-ek még mind üresek. Létrehozunk egy új táblát és ebben a pillanatban az SQL Server allokál ennek a táblának 8 egymás után következő page-et, azaz 1 extent-et. Amikor beszúrunk a táblába, akkor az SQL szerver elkezdi feltölteni az egymás után következő page-eket, ha azok betelnek új extentet hoz létre, stb. Kitérő vége
Miért jó, ha egyszerre 64 Extentet allokál a szerver.
Mert így nagyobb a valószínűsége, hogy a diszken egymás mellé kerülnek az összetartozó adatok. Egy adattárházas lekérdezés tipikusan Group by-os select, amely végignyalja a tábla jelentős részét. Nagy segítség a diszkrendszernek, ha nem kell ide-oda ugrálni a fejnek az adatokért, hanem szépen sorban fel tudja olvasni őket egymás mellől. Cache-elés és egyéb szempontok miatt is jó, ha nem töredezett az adatfájl, de ennek tárgyalása messzire vezetne. A lényeg, hogy a -E startup paraméter hatására csökken a fájl töredezettsége, amely nagyban hozzájárul a diszkről olvasás sebességének növeléséhez.
Trace Flag 1117
Ennek a flag-nek a hatására az SQL Server egyenlő mértékben növeli az adatfájlok méretét, ha betelnek az adatbázisok. Tegyük fel, hogy 8 fájlból áll az adatbázisunk. Ha az adatbázis betelik, és a 1117-es Trace flag nincs benne az SQL Server startup paraméterei között akkor az SQL Server megnöveli az első fájl méretét, de többit változatlanul hagyja. Ha viszont bekapcsoljuk az 1117-es trace flag-et, akkor mind a nyolc fájl egyenlő mértékben fog nőni.
Megmondom őszintén ideális esetben kicsi tulajdonságot tulajdonítok ennek a startup paraméternek, mert úgyis lefoglaljuk az adatbázisoknak az összes rendelkezésre álló helyet, hogy ne növelgesse magát a fájl. Kevésbé ideális esetben azonban, amikor például ugyanazon a gépen több adatbázis is megtalálható és nem tudjuk előre kisakkozni az adatbázisok méretét, kifejezetten hasznos az 1117-es trace flag.
Kapcsolódó anyagok:
Kővári Attila - BI projekt
hozzászólás
Sarok Pál
h, 01/10/2011 - 16:37
Permalink
SQL Server startup -E
Kővári Attila
h, 02/07/2011 - 12:10
Permalink
- E paraméter
Új hozzászólás