From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | "Guillermo E(dot) Villanueva" <guillermovil(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Optimización de consulta |
Date: | 2022-06-07 17:59:10 |
Message-ID: | 202206071759.xzta2sbfnyot@alvherre.pgsql |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Guillermo E. Villanueva escribió:
> *product_.status = 1 and and product_.qty > 0*
>
> provocan seq. scan y el mayor costo y tiempo de mi consulta
> la tabla product_ tiene 69300 filas
> status = 1 son 49500
> qty > 0 son 65700
>
> el explain me dice:
> -> Parallel Seq Scan on product_ (cost=0.00..19483.64 rows=19580
> width=30) (actual time=0.032..39.454 rows=15674 loops=3)
> Filter: ((qty > '0'::numeric) AND (status = 1))
> Rows Removed by Filter: 7454
>
> Si creo índices individuales o combinando ambas columnas no mejora, sigue
> haciendo seq. scan
La tabla es muy pequeña y las cláusulas son poco selectivas, así que el
seqscan ya es la mejor estrategia. Pero prueba haciendo "set
enable_seqscan to 0" a ver si usando un índice anda más rápido (dudoso).
Si la tabla fuera muy grande y la fracción de registros que tienen
status=1 AND qty>0 es suficientemente pequeña, podría resultar en un
plan distinto/mejor.
--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
"Oh, great altar of passive entertainment, bestow upon me thy discordant images
at such speed as to render linear thought impossible" (Calvin a la TV)
From | Date | Subject | |
---|---|---|---|
Next Message | Guillermo E. Villanueva | 2022-06-07 18:04:23 | Re: Optimización de consulta |
Previous Message | Daymel Bonne Solís | 2022-06-07 17:58:20 | Re: Optimización de consulta |