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