sql >> Database >  >> RDS >> PostgreSQL

Het uitvoeringsplan van de query in postgresql handmatig wijzigen?

Gebruik een subquery of CTE om bepaalde handelingen eerst te forceren. Vind ik leuk:

SELECT *
FROM  (
   SELECT *
   FROM   tbl
   LIMIT  10
   ) x
ORDER  BY 1;

Je moet begrijpen wat je doet het natuurlijk. In het voorbeeld selecteer ik 10 willekeurige rijen en sorteer ze vervolgens op de eerste kolom.
U kunt meerdere lagen subquery's of meerdere CTE's achter elkaar gebruiken.

Hetzelfde voorbeeld als CTE:

WITH x AS (
   SELECT *
   FROM   tbl
   LIMIT  10
   )
SELECT *
FROM   x
ORDER  BY 1;

Een subquery is meestal sneller voor eenvoudige zoekopdrachten, een CTE biedt extra functies (zoals het hergebruiken van dezelfde CTE op meerdere plaatsen op verschillende queryniveaus).



  1. python mysql.connector DictCursor?

  2. PostgreSQL:geef alle machtigingen aan een gebruiker op een PostgreSQL-database

  3. Entity Framework gebruiken in .net 4.0 met Oracle-database - mogelijk?

  4. Draaien van meerdere kolommen in T-SQL