Automatikus fizikai tervezési javaslatok XML adatbázisokhoz Balogh Bernadett Kresz Marcell Cseh Tamás
Előadás témája XML adatbázisok tervezésének automatizálása Legmegfelelőbb teljesítményjavító struktúrák kiválasztása Három tanácsadó bemutatása XML indexekhez XMLTable materializált nézetekhez Az előző kettőt egybe integrálóhoz
XML adatbázisok Háromféle megközelítés Natív XML adatbázis XML adat relációs adatbázisban (XMLType típusú tábla) XML oszloptípus Nálunk Relációs adatbázis egy táblájában, natívan, XML típusú oszlopban tárolt XML adat A legtöbb kereskedelmi adatbázis-kezelő rendszer támogatja
Lekérdezések végrehajtásának optimalizálása Közvetlen elérés biztosítása (indexek) Adatok egy részének csoportosítása (nézetek, partícionálás) Lekérdezés átírása kisebb adathalmazra
Fizikai tervezés általánosan Hogyan állapítsuk meg a lehetséges struktúrákat, melyek hasznosak a lekérdezés halmazon? Hogyan terjesszük ki a jelölteket általánosabb javaslatokra? Hogyan számítsuk ki a becsült költségét a fizikai tervnek? Hogyan válasszuk ki a lehetséges konfigurációk közül a legjobbat?
Alapfogalmak XPath XML csomópontok kiválasztása XQuery Lekérdezés XML dokumentumokban SQL/XML SQL kiterjesztése XML lekérdezésére
Alapfogalmak XML index Elemek kinyerésének gyorsítása Materializált nézet Hasonlít a táblákhoz: saját adatszegmenssel rendelkezik Valamint a nézetekhez: lekérdezés eredményét tárolja
Alapfogalmak XMLTable nézet XMLTable az SQL/XML egyik legfontosabb függvénye Kiértékeli az XQuery kifejezést, majd visszatér egy táblával A táblából nézetet készítünk Parciális index Az adathalmaz egy részén értelmezett index
Alapfogalmak Virtuális index Nincs külön szegmense Végrehajtási tervek készítésénél hasznos Hátizsák probléma Ismerjük a kapacitását, illetve az elemek méretét és értékét Melyikből mennyit kell belerakni, hogy maximális legyen az érték, de elférjenek Speciális esete: 0/1 hátizsák probléma (minden elem maximum egyszer szerepel)
XML indexek ajánlása A cél egy olyan tervezési tanácsadó létrehozása, amely a legjobb parciális indexeket ajánlja, figyelembe véve a költségeket Két új lekérdezés optimalizáló mód Index felsoroló Index kiértékelő
XML indexek ajánlásának lépései 1. Index jelöltek felsorolása Implementáció függő 2. Ezek általánosítása Lekérdezés specifikus indexek általánosítása
XML indexek ajánlásának lépései 3. Költségek becslése Előnyök és többlet költségek 4. Optimális konfiguráció megkeresése 0/1 hátizsák problémával ekvivalens Tudjuk minden index-jelöltre a költséget (mérete) és a hasznot Heurisztikus mohó algoritmussal oldjuk meg A lekérdezések, XML minták és általánosított jelöltek kapcsolatát irányított, körmentes gráffal (DAG) reprezentáljuk
XMLTable nézetek ajánlása Célunk egy olyan tanácsadó készítése, amely XQuery lekérdezésekhez XMLTable materializált nézeteket ajánl
XMLTable nézetek ajánlásának lépései 1. XQuery részekre bontása FOR, LET, WHERE, RETURN részekre 2. Lehetséges XMLTable nézetek felsorolása 3. SQL/XML lekérdezés generálása A már létrehozott nézeteket használja fel
XMLTable nézetek ajánlásának lépései 4. A lekérdezésre legjobban illeszkedő nézetek kiválasztása Költség alapján 5. Az eredeti lekérdezés átírása A javasolt nézetek használatával
Optimalizálási tanácsok A materializált nézetek mérete túl nagyra nőhet Elveszíti előnyét Parciális indexek mérete kisebb Nem minden esetben segít
Optimalizálási tanácsok 1. Előre navigálás Előre megnézzük az XML adat lekérdezésben használt elemeit Könnyen elérhető formában tároljuk 2. Táblák összekapcsolása XQuery lekérdezés gyorsítása Előre navigálunk a szükséges adatokhoz Relációs táblában eltároljuk Ezeket összekapcsoljuk
Optimalizálási tanácsok 3. Összesítés Előre csoportosítjuk és/vagy összesítjük a nézet adatait Mindhárom megközelítés jelentősen csökkenti a végrehajtási időt
Indexek és nézetek ajánlása egyszerre Célunk olyan tanácsadó létrehozása, amely figyelembe véve az indexeket és nézeteket, a legjobb konfigurációt ajánlja Háromféle jelöltet kapunk XML index XMLTable materializált nézet XMLTable materializált nézet indexekkel
Indexek és nézetek ajánlásának lépései 1. Jelöltek haszon/méret arány szerinti rendezése 2. Minden iterációban megnézzük, új lefedést ad-e a jelölt Ha igen és van elég tárhely, hozzáadjuk az ajánlottakhoz Különben, ha átfedés van a már lefedett lekérdezések és a jelölt lefedése között, heurisztikus szabályok alapján eldöntjük hozzáadjuk vagy ne
Hatékonyság Indexek keresése Heurisztikus mohó algoritmussal a leggyorsabb Indexek általánosítása Fentről lefelé keresés hatékonyabb a heurisztikus mohó algoritmusnál
Hatékonyság Összefésült (általános) XMLTable nézet ajánlása Összefésüléssel 16%-os méret csökkenés, de jelentősen csökkent a sebesség is Előny/méret arányban jobban megéri XMLTable nézet ajánlása relációs indexekkel 1,5 – 32,5 százalékos gyorsulás az index nélküli nézetekhez képest
Hatékonyság Index és nézet ajánlása Változó eredményeket kaphatunk Néha a csak Index Tanácsadót és néha a csak Nézet Tanácsadót használók teljesítménye jobb Az Integrált Tanácsadó teljesítménye kiegyensúlyozott, ezért javasolt
Implementált algoritmus Legelőnyösebb indexjelöltek részhalmazának keresése Heurisztikus A lekérdezésekre megadott indexjelöltek halmazából indul ki
Algoritmus lépései 1. Jelöltek haszon/méret arány szerinti rendezése 2. Minden iterációban vesszük a legnagyobb értékűt és eldöntjük, hozzáadjuk-e az ajánlott konfigurációhoz Ha van még rendelkezésre álló tárhely
Algoritmus megjegyzései
Köszönjük a figyelmet!