SQL Server 2005 – Particionálás
A particionálás lényege az, hogy a tábla index adatit szétosszuk több FileGropuba. Így a nagyméretű táblákat hatékonyabban tudjuk kezelni, valamint hatékonyabb és gyorsabb az adathozzáférés is. És arról nem is beszélve, hogy részeket önállóan tudjuk menteni és karbantartani. Tehát egészébe nézve a particionálás segítségével a terhelés kiegyensúlyozható.
De nem csak előnyei vannak a partcionálásnak. Sajnos az adminisztráció és a probléma tér is megnő a partíciók használatával. (Egységként kezelés).
Nézzük meg, hogy milyen lépések is szükségesek ahhoz, hogy az SQL Serverben egy partíciót létrehozzunk.
- Particionálló függvény létrehozása
- Partíció séma létrehozása (Partíció függvényen alapszik)
- Tábla, index kötése a particionálási sémához.
- Információs adatok lekérdezése
A Paricionáló függvény célja az, hogy a rekord tartalma alapján a rekordnak a helyét kijelöljük.
Főbb tulajdonságai:
- Csak tartomány alapú lehet (Nincs Hash)
- Egy kulcsintervallumhoz egy célhely tartozik
CREATE PARTITION FUNCTION fnev (kulcs_tipus) AS RANGE LEFT | RIGHT FOR VALUES (v1,v2,…) |
A Particionálási séma szerepe az, hogy megadja a tartományok tárolási helyét valamint az értéktartományok helyét hozzáadja a FileGrouphoz.
CREATE PARTITION SCHEMA pnev AS PARTITION pfnev TO ([filegroup1] [filegroup2],…) |
Tábla particionálás
Létrehozáskori kötés
- Partíció séma megadása
- Aktuális kulcsmező kijelölése
CREATE TABLE db.sema.tabla (mezolista) ON particio_séma (aktuális_kulcs) … |
Index particionálása
Egy Cluster Index létrehozásával utólag is particionálható a tábla.
CREATE INDEX db.sema.index ON (mezolista) ON particio_séma (aktuális_kulcs) |
Partíciók adatai
Partíció függvények:
SELECT … FROM SYS.PARTITION_RANGE_VALUES |
Partíció séma:
SYS.PARTITION_SCHEMES |
Particiók:
SYS.PARTITIONS |
Particiós függvény
Függvény meghívása
SELECT … $PARTITION.par_fuggv(pp) |
Függvény módosítása
Intervallum szétvágása
ALTER PARTITION FUNCTION fnev SPLIT (hatar) |
Intervallum összevonása
ALTER PARTITION FUNCTION fnev MERGE (hatar) |