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

Csak kérdezném, hogyha egy RAID ( vagy egy Storage ) pl. 256 KB-os stripp-ekben "gondolkodik" , akkor is van ennek jelentősége ? ? ? _________ üdvözlettel: s pál

Hopsz, erről teljesen elfelejtkeztem. Bocs. Megmondom őszintén nem tudom. Általában RAID-1-es tömbökbe rendezzük a diszkeket és az nem stipeli az adatokat. De úgy érzem, hogy a –E paraméter javíthat egy stripelt tömbön is. (rontani valószínűleg nem ront) De ez csak érzés, nem jártam utána a témának.)

Új hozzászólás