小编Dyl*_*hal的帖子

PostgreSQL内联函数行为

我想知道是否有人可以确认PostgreSQL Inlining的预期行为?

从Microsoft SQL的世界来看,任何确定为内联的函数都将在多个行的单个迭代中使用(该函数主体实质上已注入到调用程序语句中,使其成为基于集合的[一个调用],而不是每个输入数据行都有一个探针(多次调用))。

我和我的团队正在努力在没有诸如MSSQL之类的Profiler的情况下证明这一点,但我们最终得以证明这一点,并发现我们认为函数内联的迭代次数与它所处的行数成正比。运作。

为此,我们在函数(pg_sleep)中引入了有意的等待,在其中我们可以看到等待N秒会导致Rows * N的总执行时间,即输入6行,等待1秒就是6秒,等待2是12,依此类推。

因此,我们的问题是:

  1. PostgreSQL内联是我们的想法吗(相当于MSSQLs内联函数[Type ='IF'])?
  2. 有没有可以像MSSQL中的Profiler一样清楚地显示这一点的分析工具?
  3. 我们是否可以查看任何元数据标记来确认/否认我们的功能确实可以内联?

postgresql query-optimization set-based

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

标签 统计

postgresql ×1

query-optimization ×1

set-based ×1