相关疑难解决方法(0)

功能表现

来自 MySQL 背景,其中存储过程性能(旧文章)可用性值得怀疑,我正在评估 PostgreSQL 为我公司的新产品。

我想做的一件事是将一些应用程序逻辑移到存储过程中,所以我在这里询问有关在 PostgreSQL (9.0) 中使用函数的 DO 和 DON'T(最佳实践),特别是关于性能陷阱。

postgresql best-practices plpgsql

63
推荐指数
4
解决办法
4万
查看次数

在 Postgresql 存储过程中正确使用 VOLATILE COST(和 ROWS)指示

在查看pl/pythonand 的几个示例时pl/pgsql,我看到许多(但不是全部)使用volatile cost.

IE:

CREATE OR REPLACE FUNCTION my_function()
RETURNS setof record AS
$BODY$
-- code
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
Run Code Online (Sandbox Code Playgroud)

搜索有关volatile cost我的更多信息时发现(乍一看)大约至少 90% 的网络示例都在使用volatile cost 100,有时有时会使用volatile cost 1。(因为rows它是 1000)。

据我了解,此指示有助于查询计划优化器决定如何在短路布尔运算中设置优先级。

如果我开始给出估计值costrows对我的每个存储过程进行估计,是否过早优化?我应该只在我想优化某些查询时才这样做吗?选择成本的良好价值是一门艺术吗?

我知道命令explain,我还没有学会。这个命令对估计有帮助cost吗?

postgresql stored-procedures optimization postgresql-9.1

4
推荐指数
1
解决办法
7937
查看次数