sql >> Database >  >> RDS >> PostgreSQL

Wat betekent gehasht subplan in PostgreSQL?

U heeft de misvatting dat de optimizer de SQL-instructie herschrijft. Dat is niet het geval. Het herschrijven van de query is de taak van de query rewriter , die bijvoorbeeld views vervangt door hun definitie. De optimizer komt met een reeks uitvoeringsstappen om het resultaat te berekenen. Het produceert een plan , geen SQL-instructie.

De optimizer plant twee alternatieven:ofwel voer subplan 1 uit voor elke gevonden rij, of voer subplan 2 één keer uit (merk op dat het onafhankelijk is van a ), bouw een hash-tabel van het resultaat en test die hash voor elke rij gevonden in a .

Op het moment van uitvoering besluit PostgreSQL de laatste strategie te gebruiken, daarom wordt subplan 1 nooit uitgevoerd.




  1. Opgeslagen Java-procedure versus PL/SQL-opgeslagen procedure

  2. hoe je willekeurige rijen in orakel sneller kunt selecteren met een tabel met miljoenen rijen

  3. SUM() Functie in SQL Server

  4. Django ORM, voeg geen datetime in als 0 in MySQL