13. Tétel — Modern processzor megoldások és relációs lekérdezések optimalizálása

Frissítve: 2026-09-09

Ez a tétel két nagyobb témakört fed le: a modern processzorok teljesítménynövelő megoldásait (futószalag, sorrenden kívüli és spekulatív végrehajtás, szuperskalár, VLIW és vektorprocesszorok), valamint a relációs lekérdezések optimalizálását és kiértékelését.

Témák

I. Témakör: Modern processzor megoldások

II. Témakör: Relációs lekérdezések optimalizálása és kiértékelése

Hirdetés

I. Témakör: Modern processzor megoldások

1. A futószalag elv (Pipelining)

A futószalagos feldolgozás alapjai

A végrehajtási folyamatot több, rövidebb, önálló, egymással párhuzamosítható fázisra bontjuk. Egy klasszikus, ötfázisú futószalag lépései a következők:

A futószalag akadályai: Veszélyforrások (Hazards)

2. Sorrenden kívüli (Out-of-Order, OoO) végrehajtás

A hagyományos futószalagok teljesítménybeli korlátainak túllépésére fejlesztették ki a szuperskalár processzorokat. Egy szuperskalár architektúra nemcsak átlapolja az utasításokat, hanem több párhuzamos futószalaggal is rendelkezik, így órajelciklusonként egynél több utasítást képes lehívni, dekódolni és kibocsátani.

A szuperskalár rendszerek hatékonyságának kulcsa a sorrenden kívüli végrehajtás. A merev, programozói sorrendet követő (In-Order) feldolgozás során, ha egy utasítás blokkolódik, a mögötte lévő összes utasítás megáll.

Az OoO motor ezzel szemben a következő mechanizmust használja:

3. Szuperskalár processzorok

A szuperskalár processzor olyan mikroarchitektúra-kialakítás, amelyben a processzor képes egyetlen órajel alatt egynél több utasítást végrehajtani azáltal, hogy több párhuzamos végrehajtó egységet alkalmaz.

Azonban a szuperskalár végrehajtásnak is korlátot szabnak a már ismert hazardok, különösen az adatfüggőségek. Egy egyszerű, soron belüli (in-order) szuperskalár processzorban, ha az i. utasítás eredményére van szüksége az i+1. utasításnak, és az i. utasítás egy lassú művelet, akkor az i+1. utasításnak és az összes utána következőnek is várakoznia kell. A párhuzamos futószalagok kihasználatlanul állnak, hiába lennének a programban később olyan, teljesen független utasítások, amelyeket végre lehetne hajtani. Ezt a problémát oldja meg a soron kívüli végrehajtás (Out-of-Order Execution, OoO).

4. Spekulatív végrehajtás (Speculative Execution)

A szuperskalár és OoO processzorok teljesítményét nagymértékben növeli a spekulatív végrehajtás, amely közvetlenül a vezérlési veszélyek (elágazások) negatív hatásait küszöböli ki.

5. VLIW (Very Long Instruction Word) és Vektorprocesszorok

A VLIW architektúra alapgondolata, hogy a párhuzamosan végrehajtható utasítások felkutatásának és ütemezésének terhét vegyük le a processzor hardverének válláról, és adjuk át a fordítóprogramnak. A fordítóprogram, amely a teljes programkódot ismeri, statikusan, fordítási időben elemzi a függőségeket, és több, egymástól független, egyszerű műveletet egyetlen, nagyon hosszú utasításszóba csomagol.

Hirdetés

II. Témakör: Relációs lekérdezések optimalizálása és kiértékelése

1. Relációs lekérdezések optimalizálása és kiértékelése

A relációs adatbázis-kezelő rendszerekben a lekérdezések megfogalmazására szolgáló nyelvek (mint például az SQL) deklaratív jellegűek. Ez azt jelenti, hogy a felhasználó vagy a fejlesztő megmondja, hogy mit szeretne kapni az adatbázistól, de nem határozza meg, hogy hogyan, azaz milyen fizikai lépésekkel, milyen sorrendben és milyen algoritmusok alkalmazásával olvassa ki az adatokat a háttértárból a rendszer.

A lekérdezés-optimalizáló (query optimizer) az egyik legfontosabb és legösszetettebb komponense. Feladata, hogy az SQL-utasításból előállítson egy végrehajtási tervet (execution plan), amely minimálisra csökkenti az erőforrás-felhasználást (elsősorban a háttértárból történő lemezműveletek/I/O számát, valamint a CPU-időt).

A lekérdezés feldolgozásának fő fázisai a következők:

2. Relációalgebrai fa alapú (Logikai) optimalizálás

A relációalgebra alapjai

A relációalgebra olyan formális matematikai nyelv, amely relációkon végez műveleteket. A legfontosabb relációalgebrai operátorok:

Heurisztikus átalakítási szabályok (Ekvivalencia-szabályok)

A logikai optimalizálás során a kiinduló relációalgebrai fát úgy alakítjuk át ekvivalens (pontosan ugyanazt az eredményt adó, de kedvezőbb szerkezetű) fává, hogy közben betartunk bizonyos heurisztikus szabályokat:

3. Költségalapú (Fizikai) optimalizálás

Fizikai operátorok és algoritmusok

A költségmodell elemei és a statisztika

Az optimalizáló matematikai költségfüggvényt használ az alternatív tervek összehasonlítására. A költséget leggyakrabban az alábbi tényezők határozzák meg:

A költségbecsléshez az RDBMS a katalógusban (System Catalog) tárolt statisztikákat használja:

Hirdetés

Hasznosnak találtad ezt a tételt?

Ezek a kidolgozások minden hallgató számára ingyenesek. Ha időt spóroltál vele, fontold meg egy borravaló hagyását.

☕ Hívj meg egy kávéra