Sql 循环解释和分析

Sql 循环解释和分析,sql,postgresql,Sql,Postgresql,我想运行大约500k次更新查询,以计算计划和执行查询所需的平均、最高和最低时间 EXPLAIN-ANALYZE似乎可以很好地实现这一点,但前提是我一次只执行一个查询更新 如果我在循环中这样做,我会得到以下错误 42601错误:查询没有结果数据的目标 有没有办法在循环中实现这一点?还是更好的方法来计算查询的计划和执行时间的平均值、最高值和最低值 只是一个循环,它不断地在25和35之间改变状态值 do $$ begin for r in 1..500000 loop

我想运行大约500k次更新查询,以计算计划和执行查询所需的平均、最高和最低时间

EXPLAIN-ANALYZE似乎可以很好地实现这一点,但前提是我一次只执行一个查询更新

如果我在循环中这样做,我会得到以下错误

42601错误:查询没有结果数据的目标

有没有办法在循环中实现这一点?还是更好的方法来计算查询的计划和执行时间的平均值、最高值和最低值

只是一个循环,它不断地在25和35之间改变状态值

do $$
    begin
        for r in 1..500000 loop
            if mod(r, 2) > 0 then
                -- EXPLAIN ANALYZE can't use it here. 
                UPDATE user SET status=25, WHERE id = '75';
            else
                UPDATE user SET status=35, WHERE id = '75';
            end if;
        end loop;
    end;
$$;
在单个查询上完成时效果良好

EXPLAIN ANALYZE
UPDATE user SET status=25, WHERE id = '75';

作为一个非postgresql的人,我能告诉你的是,你不能像在匿名代码块中那样使用
EXPLAIN ANALYZE
。您希望解释计划如何显示为输出。可能您正在寻找类似于
updateusersetstatus=25的东西,其中id='75'执行“解释(分析)”怎么样?@wildplasser删除分号显示语法错误。