Re: porque no emplea indice para algunas funciones agregadas (max,min)

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Hellmuth Vargas <hivs77(at)gmail(dot)com>
Cc: Anthony Sotolongo <asotolongo(at)gmail(dot)com>, POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: porque no emplea indice para algunas funciones agregadas (max,min)
Date: 2019-11-29 18:48:27
Message-ID: 20191129184827.GA21706@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hellmuth Vargas escribió:
> Hola Anthony
>
> NO, eso es claro que sale mas costoso.. pero la pregunta va a que si tengo
> un indice por centro y id (este ordenado desc) no debería poder sacar el
> máximo por cada centro empleando exclusivamente el indice?

La razón es que no está implementado hacerlo más rápido. Hay un parche
propuesto para la versión 13 que me parece resuelve tu problema

https://commitfest.postgresql.org/25/1124/

Lo probé con la tabla vacía (no diste un mecanismo para generar datos) y
seteando enable_seqscan off me da este plan:

QUERY PLAN
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────
GroupAggregate (cost=0.14..45.64 rows=50 width=524)
Group Key: centrocodigo
-> Index Only Scan using idx_oportunidadcitas_desc on oportunidadcitas (cost=0.14..44.89 rows=50 width=524)
(3 filas)

que supongo que es lo que buscas, pero no estoy seguro.

Sugiero que verifiques si el parche hace mejor el plan, y si es así,
le damos un +1 a ese parche (que lleva harto tiempo pendiente)

saludos

--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Carlos T. Groero Carmona 2019-11-30 05:09:05 Re: Consulta sobre actualizacion
Previous Message Diego 2019-11-29 18:23:59 Re: Consulta sobre actualizacion