-- 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;