Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az SQL programozott használatának technikáinak megvitatása előtt meg kell vitatni az SQL-utasítások feldolgozásának módját. Az érintett lépések mindhárom technika esetében gyakoriak, bár mindegyik technika különböző időpontokban hajtja végre őket. Az alábbi ábra egy SQL-utasítás feldolgozásának lépéseit mutatja be, amelyekről a szakasz további részében olvashat.
SQL-utasítás feldolgozásához a DBMS a következő öt lépést hajtja végre:
A DBMS először elemzi az SQL-utasítást. Az utasítást különálló szavakra, úgynevezett tokenekre bontja, gondoskodik arról, hogy az utasítás érvényes igével és érvényes tagmondatokkal rendelkezzen, és így tovább. Ebben a lépésben szintaxishibák és elírások észlelhetők.
A DBMS ellenőrzi az utasítást. Ellenőrzi az utasítást a rendszerkatalógusban. Az utasításban megnevezett összes tábla megtalálható az adatbázisban? Létezik az összes oszlop, és egyértelműek az oszlopok nevei? Rendelkezik a felhasználó az utasítás végrehajtásához szükséges jogosultságokkal? Ebben a lépésben bizonyos szemantikai hibák észlelhetők.
A DBMS létrehoz egy hozzáférési tervet az utasításhoz. A hozzáférési terv az utasítás végrehajtásához szükséges lépések bináris ábrázolása; ez a végrehajtható kód DBMS-ekvivalensének felel meg.
A DBMS optimalizálja a hozzáférési tervet. A hozzáférési terv végrehajtásának különböző módjait ismerteti. Használható index a keresés felgyorsítására? Először a DBMS alkalmazza a keresési feltételt az A táblára, majd csatlakoztassa a B táblához, vagy kezdje az illesztéssel, és használja utána a keresési feltételt? Elkerülhetők a táblákon végzett szekvenciális keresések, vagy a tábla egy részhalmazára csökkenthetők? Az alternatívák felfedezése után a DBMS kiválaszt egyet közülük.
A DBMS a hozzáférési terv futtatásával hajtja végre az utasítást.
Az SQL-utasítások feldolgozásának lépései az általuk igényelt adatbázis-hozzáférés és a szükséges idő függvényében változnak. Az SQL-utasítások elemzése nem igényel hozzáférést az adatbázishoz, és nagyon gyorsan elvégezhető. Az optimalizálás viszont nagyon processzorigényes folyamat, és hozzáférést igényel a rendszerkatalógushoz. Összetett, többtáblás lekérdezés esetén az optimalizáló több ezer különböző módon végezheti el ugyanazt a lekérdezést. A lekérdezés nem hatékony végrehajtásának költsége azonban általában olyan magas, hogy az optimalizálással töltött idő nagyobb, mint a lekérdezés végrehajtásának megnövekedett sebessége. Ez még fontosabb, ha ugyanazt az optimalizált hozzáférési tervet újra és újra használhatja ismétlődő lekérdezések végrehajtásához.