gpt4 book ai didi

postgresql - 定义函数的 session 级别估计

转载 作者:行者123 更新时间:2023-11-29 13:27:00 24 4
gpt4 key购买 nike

在函数定义中 I can specify estimations for plannerROWS 1000COST 100。但是该函数可以根据条件返回一行或一百万行。是否有任何“条件方式”来定义估计?当然,这并不是每次都改变函数定义。

最佳答案

不,没有条件方法。

我能想到的唯一异常(exception)是非常简单的 SQL 函数,它们可以在外部查询中“内联”(plpgsql 函数不可能)。然后 Postgres 应用默认估计而不是为黑盒声明的估计,否则黑盒将对查询计划器起作用。 (内联基本上丢弃了函数包装器,并将主体中的 SQL 合并到外部查询中。)

COSTROWS 的设置并不重要,只要函数没有嵌套到(复杂的)更大的查询中,就是这种情况您应该避免使用无法内联的用户定义的集合返回函数。您可以这样做,但它可能会导致次优查询计划 - 其中 COSTROWS 设置也不是最重要的问题.查询规划器无法优化整个查询的计划,但必须针对功能和查询的其余部分分别进行优化。
相关:

关于postgresql - 定义函数的 session 级别估计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32004054/

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