暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

PostgreSQL问答-第20230319期

原创 Maleah 2023-03-19
1326

Q1. 后端类型为parallel worker是并行吗?

问题描述

在PostgreSQL 中,pg_stat_activity视图中查看的backend_type字段是parallel worker,是开始了并行查询么?

image.png

问题解答

值为parallel worker是指并行查询的worker

13版本pg_stat_activity新增leader_pid字段,在并行操作时leader_pid显示并行worker的leader进程的pid,leader进程的该字段为空

例:

maleah_db=# SELECT query, leader_pid,
  array_agg(pid) filter(WHERE leader_pid != pid) AS members
FROM pg_stat_activity
WHERE leader_pid IS NOT NULL AND datname = 'maleah_db'
GROUP BY query, leader_pid;
                     query                          | leader_pid |    members
------------------------------------------------+------------+---------------
 vacuum (VERBOSE on,parallel 2) vacparal_test ; |       5193  | {17752,17753}
(1 row)

Q2. 如何定位函数中最耗时的SQL?

问题描述

PostgreSQL中函数执行时间长,有多条SQL,但是pg_stat_activity只能查看调用函数的语句。如何定位函数中是哪条SQL更慢呢?

问题解答

image.png

引用文章指路:https://blog.csdn.net/Hehuyi_In/article/details/102855303

Q3. 如何查看当前会话事务的隔离级别?

问题描述

PostgreSQL中,有什么办法能够查看当前事务的隔离级别吗?

问题解答

transaction_isolation参数可以查看当前事务的隔离级别

PostgreSQL中查看某个参数的值有以下三种方法:

  • show + 参数 ;
  • 从pg_settings 视图中查看
  • 使用 current_setting() 函数查看

例如:

postgres=# start transaction isolation level repeatable read;
START TRANSACTION
postgres=*# select current_setting('transaction_isolation');
 current_setting 
-----------------
 repeatable read
(1 row)

Q4. psql命令导入执行文件如何指定schema?

问题描述

在PostgreSQL数据库中,psql -f导入文件时,可以指定schema吗?

问题解答

有以下两种方式:

  • psql -c "set search_path=abc" -f
  • psql "dbname=postgres options=-csearch_path=abc"

Q5. pg和openGauss的jdbc驱动对于upsert是否支持?

  • PostgreSQL里的upsert场景,都可以正常执行
  • 对于openGauss,使用openGauss-jdbc驱动执行insert on duplicate语句时,如果打开了autoGeneratedKeys参数,则会出现如下错误:
ERROR: RETURNING clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement.

原因是openGauss-jdbc还未实现insert on duplicate场景通过returning返回数据库自动生成的主键。

在执行upsert语句(insert on duplicate)时不能同时使用autoGeneratedKeys参数,需要修改为statement.executeUpdate(sql);

最后修改时间:2023-03-20 09:56:56
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论