semillero-INVIMA/benchmarks/migrations/query02_optimization_up.sql

19 lines
993 B
SQL

-- Optimizacion reversible para query_02: catalogo general paginado.
-- El ORDER BY real es:
-- fecha_vencimiento DESC NULLS LAST, producto ASC NULLS LAST
--
-- No se crea un indice compuesto con producto porque existen valores de
-- producto extremadamente largos y PostgreSQL puede exceder el limite de tupla
-- de btree. Este indice estrecho permite leer primero las fechas mas recientes
-- y aplicar el orden secundario sobre un conjunto mucho menor.
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_query02_catalog_vencimiento_desc_nullslast
ON invima_api_catalog (fecha_vencimiento DESC NULLS LAST);
ALTER TABLE invima_api_catalog ALTER COLUMN fecha_vencimiento SET STATISTICS 1000;
ALTER TABLE invima_api_catalog ALTER COLUMN producto SET STATISTICS 1000;
-- ANALYZE se omite en esta base local porque la tabla contiene bytes con
-- codificacion invalida que hacen fallar el escaneo estadistico completo.
-- Si los datos se normalizan, ejecutar manualmente: ANALYZE invima_api_catalog;