首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在postgresql中跟踪查询的时间而不查看日志文件的好方法是什么?

在postgresql中跟踪查询的时间而不查看日志文件的好方法是什么?
EN

Stack Overflow用户
提问于 2013-05-14 07:16:34
回答 1查看 194关注 0票数 0

我在postgres数据库中有一个函数,它进行了大量的分析;它由一系列update和insert语句组成,并最终抛出一些输出。我想找出哪些语句执行得很慢,而不需要查看日志文件。(与perl相比,我更习惯于使用SQL编写日期/时间算术查询,以便发现问题。)

我有张桌子,activity_log:

代码语言:javascript
复制
CREATE TABLE activity_log
(
action character varying(250),
action_date date,
action_tune time without time zone
);

然后在我的整个函数中,每次插入/更新之后,我都会编写如下语句

代码语言:javascript
复制
INSERT INTO activity_log (action_date, action_tune, action) 
VALUES (current_date, current_timestamp, 'INSERT to base_model');

这个函数看起来是这样的:

代码语言:javascript
复制
CREATE FUNCTION rebucket(pos_control character varying, absolute_max_cpc numeric, absolute_max_bucket character varying)
RETURNS integer AS
$BODY$
DECLARE qty INT;

BEGIN

INSERT INTO activity_log (action_date, action_tune, action) 
VALUES (current_date, current_timestamp, 'Off we go');

-- Do something that takes 5 minutes

INSERT INTO activity_log (action_date, action_tune, action) 
VALUES (current_date, current_timestamp, 'INSERT to base_model');

-- Then do something else that also takes about 5 minutes ...

INSERT INTO activity_log (action_date, action_tune, action) 
VALUES (current_date, current_timestamp, 'INSERT to diagnostics');

END 
$BODY$
LANGUAGE plpgsql VOLATILE

过去,我在其他数据库中使用过这种方法,但是当我在Postgres (Windows7上的9.1)中尝试这种方法时,每当我运行整个函数时,activity_log中的日期和时间对于函数中的每个语句都是完全相同的:在上面的例子中,

代码语言:javascript
复制
SELECT * FROM activity_log

让我

代码语言:javascript
复制
Off we go              2013-05-13  12:33:23:386
INSERT to base_model   2013-05-13  12:33:23:386
INSERT to diagnostics  2013-05-13  12:33:23:386

(该函数的运行时间从5分钟到一个小时不等,这取决于我们为其提供的参数,并且函数中有超过20个不同的语句,因此似乎很难在相同的1/100秒内完成所有语句。)

为什么会这样呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-14 08:23:30

您使用的时间戳总是给出当前事务的开始。如果您查看手册,您将看到您想要clock_timestamp()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16537201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档