PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Acelerar o plpgsql que conta os tipos de documentos em um loop?


Deve ser mais rápido atribuir todas as quatro variáveis ​​em uma consulta (apenas uma tabela ou varredura 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;

Mesmo resultado.

Normalmente você teria que verificar id_doc para NULL além disso, mas como você tem um WHERE condição com = nele, não pode ser NULL .