Wat betekent het parseren van een query?

De meeste relationele databases behandelen een JDBC / SQL-query in vier stappen:

  1. Ontleed de inkomende SQL-query
  2. Compileer de SQL-query
  3. Plan / optimaliseer het gegevensverwervingspad
  4. voer de geoptimaliseerde query / acquire en retourgegevens uit

Ik wil weten wat “de inkomende query” echt betekent? En wat betekent “plan / optimaliseren data-acquisitiepad”?


Antwoord 1, Autoriteit 100%

  1. PARSING betekent het onderzoeken van de input van de tekens die worden ingevoerd en herkent als een opdracht of verklaring door door de tekens te kijken naar zoekwoorden en identificatoren, opmerkingen negeren, genoteerde porties als snaarconstanten en het matchen van de algehele structuur met het maken van de algemene structuur zin van alles.

  2. Plan / Optimize middelen Zoek de beste manier (van alle mogelijke manieren) uit om het resultaat te bepalen, meestal met betrekking tot uitvoeringstijd. Het kan ook betekenen dat het aantal benodigde vergrendelingen wordt geminimaliseerd. Misschien kunnen sommige delen van de query worden genegeerd (where ... and 1 == 1) of een tabel hoeft helemaal niet toegankelijk te zijn, enz.


Antwoord 2, Autoriteit 100%

Het parseren is een van het proces van compilatie.

fasen van een compiler:

Bron: fasen van compiler


Antwoord 3, Autoriteit 50%

1) parseren: syntactische analyse van de query volgens de SQL-grammatica-regels, enz. En probeert de query “tokenize” in het elementaire onderdelenformulier toe te passen.

2) Planning/optimalisatie: in dat stadium probeert de SQL-engine te evalueren wat de beste manier is om uw query uit te voeren. Het probeert te profiteren van bestaande indexen, clusters en tabelrelaties; manieren vinden om scans van volledige tabellen te omzeilen, caching effectief gebruiken door herhaalde gegevenslezingen te vermijden, enzovoort.

Other episodes