要获取estimated cost
查询,我使用EXPLAIN SELECT column FROM table;
,获取current cost
查询,我正在使用EXPLAIN ANALYSE SELECT column FROM table;
,我的问题是如何cost
自动获取查询,而不必explain
为每个查询手动运行。
我需要这样的东西:
DECLARE cost integer;
DECLARE highercost integer;
DECLARE query text;
highercost := 0;
i := 0;
query = '';
WHILE i < array_length( queryarray ,1) LOOP
cost := explain analyse queryarray[i];
IF cost > highercost THEN
highercost := cost;
query := queryarray[i];
END IF;
i := i+1;
END LOOP;
这个想法是创建一个脚本来检查 a 中的查询log
并运行psql
,或者将查询复制log
到数据库中的表并运行plain SQL
以验证最昂贵的查询,目前正是我所寻求的,无需担心关于cost
查询的实际情况(“成本”X“每分钟执行的次数”),成本INSERT
,UPDATE
等等DELETE
。
我希望这是可能的,如果不能,还有另一种方法可以搜索昂贵的查询而不用逐一检查吗?
基于这个答案 [ https://pt.stackoverflow.com/questions/155113][1]:
结果
另一个问题,我在使用$$时收到错误消息,但这将得到解决。