Megosztás:


SQL-utasítás feldolgozása

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.

Az SQL-utasítás pr01 feldolgozásának lépései

SQL-utasítás feldolgozásához a DBMS a következő öt lépést hajtja végre:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.