Szolgáltatási terv „minden nap” - 1. rész automatikus töredezettségmentesítés indexek

Tévedés, hogy fontolja meg az adatbázis, mint egyfajta szabvány egységet, mert idővel megjelenhet különböző nemkívánatos helyzetet - teljesítménycsökkenést, hiba és így tovább.

Előfordulásának minimalizálása az ilyen helyzetek létrehozása karbantartási tervek célkitűzéseinek garantálja a stabilitást és optimális teljesítményét az adatbázis.

Ezek közül a feladatok a következők:

Tekintsük a sorrendben automatizálásával egyes feladatok.

Tehát az első pont ...

Amellett, hogy a fájlrendszer töredezettsége és egy log fájlt, jelentős hatással van a teljesítményére az adatbázist a töredezettség az adatfájlok:

1. széttagoltsága belül egyedi index oldalak

Miután a beszúrás, frissítés és törlésére óhatatlanul felmerülő üres helyre az oldalakon. Nincs ezzel semmi baj, mert a helyzet teljesen normális, ha nem egy, hanem ...

Egy nagyon fontos szerepe van a húr hosszát. Például, ha a húr olyan méretű foglal több mint a fele az oldalon, a szabad felében az oldal nem fogja használni. Ennek eredményeként, a növekedés a sorok számának növelése nem használt helyet az adatbázisban fognak tartani.

Ahhoz, hogy kezelni ezt a fajta töredezettség áll a színpadon, hogy elkészítse a kör, azaz a. E. kiválasztása az ilyen típusú adatok, amelyek illeszkednek a kompakt oldalakon.

2. elaprózódásához index struktúrák

A fő oka az ilyen típusú töredezettség - hasítás oldal. Például, szerkezetének megfelelően az elsődleges kulcs, egy új sor kell beilleszteni egy adott index oldal, de ez az oldal nem elég hely a behelyezett adatokat.

Ebben az esetben egy új oldalt, ahol mozogni mintegy fele a feljegyzések a régi oldalon. Az új oldal gyakran nem fizikai összeköttetésben a régi, és ezért jelöli a rendszer széttagolt.

Mindenesetre, töredezettség növekedéséhez vezet az oldalak számát tárolja az azonos mennyiségű információ. Ez automatikusan növeli az adatbázis mérete és növeli a nem használt helyet.

Amikor futtatja a lekérdezést, amelyben van egy hivatkozás a töredezettség indexek, többre van szükség, IO műveleteket. Ezen túlmenően, töredezettség ró további költségeket a nagyon kiszolgáló memóriájában, amelyet meg kell tárolni a cache extra oldalakon.

Fragmentáció elkerüléséhez az Arsenal egy SQL Server által biztosított parancsot átszervezése és újjáépíteni az indexeket.

A szerkezetátalakítási eltávolítását foglalja magában a régi index és hozzon létre új példányt az index, amely az adatokat az oldalakon finoman nyomva és a szervezett lehető folyamatosan lehetséges. Meg kell jegyezni, hogy a művelet, hogy újjáépítsék az index nagyon költséges.

Ezért, amikor a töredezettség alacsony, akkor előnyös, hogy átszervezi a meglévő index. Ez a művelet kevesebb erőforrást igényel, mint az index újraépítése, és az átszervezés levél szintű oldalak. Ezen felül, ha lehetséges, átszervezés tömöríti index oldal.

A fragmentáció mértékét egy adott index lehet beszerezni a dinamikus rendszer reprezentációk sys.dm_db_index_physical_stats:


Ebben a lekérdezésben az utolsó paraméter határozza meg a módot, amelynek értéke lehet gyorsan, de nem teljesen pontos szintjének meghatározására töredezettség index (Limited / NULL módban). Ezért ajánlott, hogy kérje MINTAVÉTELBEN / RÉSZLETES mód.

Tudjuk, hogyan lehet egy listát a töredezett indexek. Most szükség van mindegyikre, hogy létrehoz egy megfelelő ALTER INDEX parancs. Hagyományosan ez történik a kurzor:


Ahhoz, hogy gyorsítsák fel a folyamatot újjáépítése az index ajánlott emellett meghatározza SORT_IN_TEMPDB lehetőségek és online.

Az első lehetővé teszi, hogy újjáépítsék indexek az adatbázisban tempdb, ami különösen hasznos nagy indexek hiánya esetén a memória és egyéb - figyelmen kívül hagyja. Ezen felül, ha a tempdb adatbázis egy másik meghajtón található - ez jelentősen csökkenti az idő a teremtés az index. A második opció lehetővé teszi, hogy újra létre az index nem blokkolja a lekérdezéseket a célokat, amelyekre az index jön létre.

Amint látható, a töredezettségmentesítést indexek alacsony fokú töredezettség, vagy egy kis oldalak száma nem hoz jelentős javulást, hogy a termelékenység növelése, amikor dolgozik velük.

Ezen túlmenően, a fenti lekérdezés átírható használata nélkül a kurzor:


Ennek eredményeként mind a lekérdezések generál, ha a kérelmeket töredezettségmentesítést indexek problémás:


Valójában, ez az első rész, hogy hozzon létre egy karbantartási terv az adatbázis készül. A következő részben fogunk foglalkozni a megkeresést, hogy automatikusan frissíti a statisztika.

Ez annak a ténynek köszönhető, hogy lehet (és kell is) kiváltó, hogy megindulnak a változó egyes tabletta. Például van egy asztal, egy kézi - spr, számos területen könyvtárban. Hogyan lehet nyomon követni, hogy az adott felhasználó pontosan mi változott? Tedd a ravaszt, ami spr_his táblázat az írás minden megváltozik.

1) Nos, itt épülnek újra az indexek? Ki akadályoz meg újjáépíteni indexek jelenlétében a ravaszt, akkor nem hiszem, hogy ez váltja ugyanabban az időben? ;)
2) indítja kell semmit senkinek. Nos, azzal a különbséggel, hogy van 2-Zvenkov. És van az összes adat az adatbázis változását át egy réteg az alkalmazás szerver, és kijelentkezett (kérésre), ha kell.

Az online = ON. A második opció lehetővé teszi, hogy újra létre az index nem blokkolja a lekérdezéseket a célokat, amelyekre az index jön létre. Itt csak annyit jelentett SELECT lekérdezést.
2) Itt ízlés kérdése. Számomra a logikája központi tárolása sokkal kényelmesebb / gyakorlati / gyorsabb szolgáltatást, stb stb Ugyanúgy, „hranimki” nem kell alkalmazniuk mindenhol, de csak akkor, ha szükség van rá / szükséges / könnyebb.

Nem gag. Akkor kihúzta ezt a kifejezést az összefüggésben a bekezdésben a teljesítményt. Ott csak azt mondta, hogy az erőforrások UPDATE / beszúrás / törlés töltött sokkal több. Tudja, hogy miért? Mivel az összes ezeket a kéréseket sorban állnak a puffer, és csak ezután újjáépíteni az index, ezek a változások az adatbázisban történt. Ezért az ezzel a lehetőséggel nagyban tölteni a szerverre.

hadd kérdezzem: milyen projekt tett így kezelni bázis és mi a súlya a lemezen?
PS: az irodájában adta a maximális hatás egy normális telepítő lemez polcok (sok orsók, egy pár vezérlők, cache akkumulátort a raid.). Bármely töredezettségmentesítés indexek és statisztikai tisztítás után nőtt a termelékenység értékre illik kerethibákat. MSSQL szerver 1C

Valószínűleg nem fontos alap méret és a méret az egyes táblázatokban. amelyek nagy és kellemetlen funkció - az adatok gyakran változtatja őket. Ez az e táblák - célszerű tenni defragmentálás indexek.

A jelzett idő az időzóna, amely fel van szerelve a készülék.