gpt4 book ai didi

postgresql - 加快在循环中计算文档类型的 plpgsql?

转载 作者:行者123 更新时间:2023-11-29 12:47:33 26 4
gpt4 key购买 nike

有没有一种方法可以加速我们的 plpgsql 函数,该函数在循环执行的一个查询中计算某些类型的文档?全部在一个查询中?

validador := (select count(id_doc) from webdte.doc_tip_cifra
where id_doc = id_documento and id_tipo_cifra = 901);

validador2 := (select count(id_doc) from webdte.doc_tip_cifra
where id_doc = id_documento and id_tipo_cifra = 902);

validador3 := (select count(id_doc) from webdte.doc_tip_cifra
where id_doc = id_documento and id_tipo_cifra = 905);

validador4 := (select count(id_doc) from webdte.doc_tip_cifra
where id_doc = id_documento and id_tipo_cifra = 907);

最佳答案

在一个查询中分配所有四个变量应该会更快(只有一个表或索引扫描):

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;

同样的结果。

通常您还必须检查 id_doc 是否有 NULL,但是因为您有一个 WHERE 条件 =,不能为NULL

关于postgresql - 加快在循环中计算文档类型的 plpgsql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11613257/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com