Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Voordat u de technieken voor het gebruik van SQL programmatisch bespreekt, moet u bespreken hoe een SQL-instructie wordt verwerkt. De betrokken stappen zijn gebruikelijk voor alle drie de technieken, hoewel elke techniek deze op verschillende tijdstippen uitvoert. In de volgende afbeelding ziet u de stappen voor het verwerken van een SQL-instructie, die in de rest van deze sectie worden besproken.
Een DBMS voert de volgende vijf stappen uit om een SQL-instructie te verwerken:
De DBMS parseert eerst de SQL-instructie. De uitspraak wordt opgesplitst in afzonderlijke woorden, tokens genoemd, zorgt ervoor dat de uitspraak een geldig werkwoord en geldige zinsdelen heeft, enzovoort. In deze stap kunnen syntaxisfouten en spelfouten worden gedetecteerd.
De DBMS valideert de instructie. De verklaring wordt gecontroleerd op basis van de systeemcatalogus. Bestaan alle tabellen met de naam in de instructie in de database? Bestaan alle kolommen en zijn de kolomnamen ondubbelzinnig? Heeft de gebruiker de vereiste bevoegdheden om de instructie uit te voeren? In deze stap kunnen bepaalde semantische fouten worden gedetecteerd.
De DBMS genereert een accessplan voor de query. Het toegangsplan is een binaire weergave van de stappen die nodig zijn om de instructie uit te voeren; het is het DBMS-equivalent van uitvoerbare code.
DbMS optimaliseert het toegangsplan. Het verkent verschillende manieren om het toegangsplan uit te voeren. Kan een index worden gebruikt om een zoekopdracht te versnellen? Moet de DBMS eerst een zoekvoorwaarde toepassen op tabel A en deze vervolgens toevoegen aan tabel B, of moet deze beginnen met de join en daarna de zoekvoorwaarde gebruiken? Kan een sequentiële zoekopdracht via een tabel worden vermeden of verkleind tot een subset van de tabel? Nadat u de alternatieven hebt verkend, kiest dbms er een.
De DBMS voert de instructie uit door het toegangsplan uit te voeren.
De stappen die worden gebruikt voor het verwerken van een SQL-instructie variëren in de hoeveelheid databasetoegang die ze nodig hebben en de hoeveelheid tijd die ze nodig hebben. Het parseren van een SQL-instructie vereist geen toegang tot de database en kan zeer snel worden uitgevoerd. Optimalisatie is daarentegen een zeer CPU-intensief proces en vereist toegang tot de systeemcatalogus. Voor een complexe, multitabele query kan de optimizer duizenden verschillende manieren verkennen om dezelfde query uit te voeren. Echter, de kosten van het inefficiënt uitvoeren van de query zijn meestal zo hoog dat de tijd die wordt besteed aan optimalisatie meer dan wordt gecompenseerd door de verhoogde query-uitvoeringssnelheid. Dit is nog belangrijker als hetzelfde geoptimaliseerde toegangsplan kan worden gebruikt om herhaaldelijke query's uit te voeren.