sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Acelerar plpgsql que cuenta los tipos de documentos en un bucle?

Debería ser más rápido asignar las cuatro variables en una consulta (solo una tabla o escaneo de índice):

SELECT INTO validador, validador2, validador3, validador4
            sum(CASE id_tipo_cifra WHEN 901 THEN 1 ELSE 0 END)
           ,sum(CASE id_tipo_cifra WHEN 902 THEN 1 ELSE 0 END)
           ,sum(CASE id_tipo_cifra WHEN 905 THEN 1 ELSE 0 END)
           ,sum(CASE id_tipo_cifra WHEN 907 THEN 1 ELSE 0 END)
FROM   webdte.doc_tip_cifra
WHERE  id_doc = id_documento;

Mismo resultado.

Normalmente tendrías que comprobar id_doc para NULL además, pero como tienes un WHERE condición con = en él, no puede ser NULL .