Megosztjuk táblák és indexek

Particionálás a nagy táblák vagy indexek a következő előnyöket a kezelhetőséget és a teljesítményt.

Ez lehetővé teszi, hogy gyorsan és hatékonyan át adathalmaz és az azokhoz való hozzáférést, miközben a integritását az adathalmaz. Például, egy ilyen művelet például az adatok betöltése az OLAP az OLTP rendszer végre másodperc helyett perc vagy óra, mint abban az esetben nem particionált adatok.

Szolgáltatás műveletek végezhetők el gyorsabban, egy vagy több részből áll. Műveletek hatékonyabb, mivel csak végrehajtott adatkészletek és nem az egész táblát. Például, lehetséges, hogy az adatok tömörítésére, egy vagy több részre vagy rekonstruálni egy vagy több szakaszát az index.

Javíthatja lekérdezési teljesítmény függően kérelmeket, amelyeket gyakran a hardverrel. Például, a lekérdezés optimalizáló gyorsan végezhet lekérdezéseket a equi-join két vagy több partíciós táblázatot, ha ezek a táblázatok ugyanazok particionáló oszlopokat, mert akkor csatlakozni magad oldalunkon.

A folyamat során a rendezési adatok IOPS SQL Server először végzett az adatok rendezésének szakaszokra. SQL Server egyidejű hozzáférése csak egy meghajtó, ami lassítja a teljesítményt. Ahhoz, hogy gyorsítsák fel a válogatás az adatok célszerű terjeszteni adatfájlok több merevlemezen, ami RAID partíciók. Így annak ellenére, hogy az adatokat rendezni részén, az SQL Server egyszerre elérheti az összes merevlemez az egyes szakaszok.

Ezenkívül a termelékenység javulása alkalmazásával zár szinten szakaszok, és nem az egész táblát. Ez csökkentheti a konfliktusok száma zár az asztalra.

A következő kifejezések az asztal és indexpartícionálás.

partíciós függvény
A adatbázis-objektum, amely meghatározza a megoszlása ​​a táblázat sorait, vagy index szakaszokra értékei alapján az egyes oszlopok, oszlopok úgynevezett szakaszoló. Ez azt jelenti, partíciós függvény meghatározza a partíciók számát a táblázatban, és úgy kerül meghatározásra, a partíció határait. Például egy táblázat, ami tartalmazza a vevői rendelések adatait, akkor lehet, hogy osztható 12 havi ülések értékek datetime oszlopban. például az értékesítés dátumát.

particionáló sémája
Az objektum-adatbázis, amely leképezi a rész egy sor Fájlcsoportok particionálás. A fő ok, amiért a szakaszok választják el egymástól különböző fájl csoportokat, hogy szükség van egy független biztonsági ezen részek, mint mindig külön-külön történik az egyes fájlok csoportban.

particionálás oszlop
oszlop a tábla vagy index partíció funkció használható partíció a tábla vagy index. Számított oszlopok részt a partíciós függvény kifejezetten meg kell jelölni megmaradt. Minden adattípusok használatra engedélyezett, mint egy oszlop index lehet használni a particionálás az oszlopokon, kivéve időbélyeg. Az adattípusok ntext. szöveget. képet. xml. varchar (max). nvarchar (max), vagy varbinary (max) nem lehet megadni. Is, akkor nem adja meg egy felhasználó által definiált típusú Microsoft .NET Framework CLR környezet adatokat és oszlopok adattípus alias.

bélelt index
Az index, amely alapján ugyanazon a partíción rendszert, mint a megfelelő táblázatot. Ha a tábla és indexeket rendezi, SQL Server gyorsan váltani szakaszról szakaszra, miközben a szerkezet, mint egy asztal szakaszok, valamint a mutatók. Hogy összehangolják a táblához indexpartícionálás adott esetben használni a funkciót az azonos nevű. Azonban, nincs funkciója kell partíció a index táblázat, és a bázis jelentősen változhat, azaz 1) a partíció függvényargumentumok kell ugyanazokat az adatokat típusú, 2) a funkciók kell határoznia az azonos szakaszok száma és a 3) függvény kell határoznia az azonos szakasz határ értékeket.

unaligned index
Index megosztjuk függetlenül vonatkozó táblázatban. E. Index egy másik particionálási rendszert, és nem az, hogy a fájl csoport, ahol a táblához. Létrehozása unaligned megosztjuk index hasznos lehet a következő esetekben:

A táblához nem particionált.

A kulcs index egyedi, és nem tartalmazza az elválasztó oszlop a táblázatban.

táblához van szükség, hogy részt vegyenek az ízületek vonalban táblákat többi oszlop kapcsolatokat.

Hibaelhárítás fejezetben
Az a folyamat, amely a lekérdezés optimalizáló utal csak bizonyos szakaszok összhangban szűrőlekérdezésnek.

Minél nagyobb a maximális számú új szakaszok (15000) hatása a memória műveletek particionált indexek, a DBCC parancsokat és lekérdezéseket. Ez a fejezet bemutatja, hogyan befolyásolja a teljesítményét egy 1000 szakaszok és hogyan lehet megkerülni a problémát. Növeli a maximális szakaszok száma legfeljebb 15 000 tárolja az adatokat tovább. Azonban javasoljuk, hogy tárolja az adatokat csak addig, amíg szükséges, és fenntartsa az egyensúlyt a teljesítmény és a szakaszok számát.

Memóriahasználat és ajánlások

RAM nem kevesebb, mint 16 GB ajánlott nagyszámú szakaszok használni. Ha a rendszer nem rendelkezik elegendő memóriával meghiúsulhat adatkezelési nyelvet utasítások (DML), az adatok meghatározása nyelv utasításait (DDL) és egyéb műveletek hiánya miatt a memória. Azokban a rendszerekben, 16 GB RAM-mal és egy nagyszámú eljárás, memória- és nem műveletek dolgozik egy nagy szakaszok száma, hiánya miatt a memóriát. Ezért minél több van meghaladó 16 MB memóriával rendelkezik, annál kisebb az esélye a problémák teljesítmény és a memória.

RAM korlátai teljesítményét befolyásolhatja, vagy arra, hogy hozzon létre egy partícionált index. Ez történik például, ha az index nem igazodik a táblához, vagy a fürtözött index, ha létezik a táblázatban.

particionált index művelet

RAM korlátai teljesítményét befolyásolhatja, vagy arra, hogy hozzon létre egy partícionált index. Ez különösen érvényes a unaligned indexek. Létrehozása és átalakítása nem kötelezett indexeket a táblázatban, a szakaszok száma, amelyben több mint 1000 lehetséges, de nem támogatottak. Ez ahhoz vezethet, hogy a gyenge teljesítmény vagy túlzott Memóriafelhasználás ilyen műveletek során.

A teremtés és átrendeződése rendezi indexek több időt vehet igénybe, mint a szakaszok számát. Nem ajánlott több parancs végrehajtását létrehozni és index-újraszervezés, mivel előfordulhat, hogy a problémákat a teljesítmény és a memória.

Ha az összetevő SQL Server végez osztályozó létrehozásához megosztjuk indexek, először egy bizonyos fajta táblázat az egyes részekben. Ezt követően vagy a megfelelő fájl-csoport, minden egyes szakasz a tempdb. Ha az opció SORT_IN_TEMPDB index készült építőiparban a válogató asztal. Minden válogatás asztalok, minimális mennyiségű RAM szükséges. Amikor az épület egy particionált index, igazodik a táblához, sort táblák jönnek létre egyesével, kiadások takarékosan memóriát. Ugyanakkor az építőiparban unaligned megosztjuk index válogató táblák jönnek létre egyszerre. Ennek eredményeként megfelelő mennyiségű memória kell kezelni őket párhuzamosan. Minél nagyobb a szakaszok száma, annál több memóriát szükség. Minden egyes szakasz a rendezési tábla mérete legalább 40 oldalas 8KB egyes. Például, az el nem kötelezett particionált index, osztva 100 szakaszok, a RAM szükséges egyidejű válogatására 4000 oldal (40 * 100). Ha ilyen memória áll rendelkezésre, ami működés sikeres lesz, de a teljesítmény romolhat. Ha ilyen memória nem áll rendelkezésre, az épület művelet sikertelen lesz. A igazított particionált index, osztva 100 szakaszok, válogatás mindössze 40 oldal, mert az a fajta nem egyidejűleg végezzük.

Mindkét rendezi és el nem kötelezett az indexek szükség lehet több RAM, ha az SQL Server a párhuzamosságát létrehozni művelet többprocesszoros számítógépre. A nagyobb mértékű a párhuzamosság, annál több memóriát szükség. Például, ha az SQL Server beállítja a párhuzamosságát 4, az el nem kötelezett megosztjuk index 100 szakaszokat memória négy processzort egyszerre fajta 4000 oldal, azaz 16.000 oldalakon. Ha a megosztjuk index van igazítva, a memória csökken akár 40 oldalak mind a négy processzor, azaz, 160 oldal (4 * 40). Az index paraméter MAXDOP manuálisan csökkenteni a mértékét a párhuzamosság.

DBCC parancsot

Több szakaszból DBCC végrehajtás utasítás több időt vehet igénybe, mint a szakaszok számát.

Lekérdezések segítségével funkciója eltávolítására szakaszok lehetnek hasonló vagy magasabb teljesítmény egy nagyszámú szakaszt. Kérés nem használja a működése csökkenti szakaszok több időt vehet igénybe, mint a szakaszok számát.

Tegyük fel, táblázatnak 100 millió sorok és oszlopok A. B és C A példában az 1. táblázat van osztva 1000 szakaszok az A. oszlop A példában a 2. táblázat van osztva oszlopban lévő szakaszok 10.000 A. lekérdezőtábla, amely képletekben ajánlatot szűrjük oszlopon A. végre a funkciója eltávolítására szakaszok és egy szakasz scan. Ugyanezt a kérést lehet gyorsabb a 2. példában, mivel kevesebb sor a részben a szkenneléshez. Kérés tartalmazza AHOL ajánlatot szerinti szűrő a B oszlopban, átvizsgálja minden szakasz. Az 1. példában ezt a kérelmet lehet gyorsabb, mint a 2. példában, mivel ebben az esetben kisebb szakaszokra szkenneléshez.

Lekérdezések használó szereplők, mint a felső vagy a MAX / MIN, az oszlopok kivételével az oszlop elválasztó tapasztalhatnak csökkent teljesítményt particionálás, hiszen minden szakasz értékelni kell.

Kapcsolódó cikkek