sql >> Databasteknik >  >> RDS >> PostgreSQL

Ändra exekveringsplanen för frågan i postgresql manuellt?

Använd en underfråga eller CTE att tvinga fram vissa operationer först. Gilla:

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

Du måste förstå vad du gör såklart. I exemplet väljer jag 10 godtyckliga rader och sortera dem sedan efter den första kolumnen.
Du kan använda flera lager av underfrågor eller flera CTE i en rad.

Samma exempel som CTE:

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

En underfråga är vanligtvis snabbare för enkla frågor, en CTE erbjuder ytterligare funktioner (som att återanvända samma CTE på flera ställen på olika frågenivåer).



  1. Kapslade loopar och Performance Spools

  2. konvertera Unix epok tidsstämplar till JavaScript datum tidsstämplar

  3. Hitta kombinationer som uppfyller olika kriterier

  4. Hur man väljer binär data från postgres-kolumnen