永发信息网

如何查看PostgreSQL执行效率低的SQL

答案:2  悬赏:30  手机版
解决时间 2021-03-21 01:58
如何查看PostgreSQL执行效率低的SQL
最佳答案
postgresql(8.2)的配置文件中有一个参数log_min_duration_statement,意思是只log执行时间大于设定值的语句,如果设为0,表示log所有语句;如果设为-1,表示不log任何语句。
看起来,这个配置选项对性能的调整是很有用的,比如可以设置:
log_min_duration_statement = 1000
则只log执行时间大于1s的语句,重点优化这些sql语句就好了。
然而,奇怪的,这个选项不太容易生效!经过反复试验,原来需要如下配置:
#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = off
log_connections = off
#log_disconnections = off
log_duration = off
log_line_prefix = '%t [%p]: [%l-1] ' # Special values:
# %u = user name
# %d = database name
# %r = remote host and port
# %h = remote host
# %p = PID
# %t = timestamp (no milliseconds)
# %m = timestamp with milliseconds
# %i = command tag
# %c = session id
# %l = session line number
# %s = session start timestamp
# %x = transaction id
# %q = stop here in non-session
# processes
# %% = '%'
# e.g. '<%u%%%d> '
log_statement = 'none' # none, mod, ddl, all
#log_statement = 'all' # none, mod, ddl, all
#log_hostname = off
注意看上面的其中两个选项的设置:
log_duration = off
log_statement = 'none'
这两个选项的意思是不log任何sql语句和执行时间,但是恰恰是关闭了这两个,log_min_duration_statement才会生效!可能postgresql内部 对这两个选项做了“互斥”处理吧。
全部回答
select procpid, start, now() - start as lap, current_query from (select backendid, pg_stat_get_backend_pid(s.backendid) as procpid, pg_stat_get_backend_activity_start(s.backendid) as start, pg_stat_get_backend_activity(s.backendid) as current_query from (select pg_stat_get_backend_idset() as backendid) as s ) as s where current_query <> '' order by lap desc; procpid:进程id start:进程开始时间 lap:经过时间 current_query:执行中的sql 怎样停止正在执行的sql select pg_cancel_backend(进程id); 或者用系统函数 kill -9 进程id;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
羽绒服洗皱了可以烫回来么
指传说中我国远古的部落酋长。猜成语
纹藏教九字真言忌讳什么
深圳大学心理学怎么样
夏目友人帐漫画和动画完全不一样是多少话
固原市原州区金海园幼儿园地址在哪,我要去那
去漳州立人学校分数线要多少分?
单选题下列关于热化学反应的描述中正确的是A.
韩国辣椒酱还能做什么菜,除了炒年糕和拌饭外
支付宝怎么即时提现?
手机没root能不能刷机?要怎么刷?
给你两个选择 学生时代恋爱不断初吻初夜都献
男人在山上挖草药,突然被一条五步蛇咬中右手
生育保险中断一年半了,可以补交吗?
300 背景数据块和共享数据块的区别
推荐资讯
永盛快餐城怎么去啊,有知道地址的么
糯米油炸糕要 怎么做才好吃,糯米油炸糕的做
一个猪头,两个口字,一个箭头,一只鸟什么成
微星 970a-g43的主板能用gtx980的显卡吗
为什么有些手机电池有3个金属触点,有的是2个
海圣精品鞋店我想知道这个在什么地方
丹阳市社保能一个月一个月的交保险吗?
下列有关君主专制不断强化的表述,错误的是A.
火灾报警控制器的主要性能有哪些
单选题下列事迹属于查理大帝的有①派人从埃及
根据短文内容,从短文后的七个选项中选出能填
交通事故车损鉴定的程序,申请车损鉴定要注意
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?