PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Alterar o plano de execução da consulta no postgresql manualmente?


Use uma subconsulta ou CTE para forçar certas operações primeiro. Curti:
SELECT *
FROM  (
   SELECT *
   FROM   tbl
   LIMIT  10
   ) x
ORDER  BY 1;

Você precisa entender o que você está fazendo, é claro. No exemplo, seleciono 10 arbitrários linhas e, em seguida, ordene-as pela primeira coluna.
Você pode usar várias camadas de subconsultas ou vários CTEs em uma linha.

Mesmo exemplo do CTE:
WITH x AS (
   SELECT *
   FROM   tbl
   LIMIT  10
   )
SELECT *
FROM   x
ORDER  BY 1;

Uma subconsulta geralmente é mais rápida para consultas simples, um CTE oferece recursos adicionais (como reutilizar o mesmo CTE em vários locais em diferentes níveis de consulta).