标签: postgresql-12

PostgreSQL 12 CTE 物化选项何时提供优化优势?

编辑:我已将这个问题移至 ,因为dba.stackexchange我收到了建议,认为该社区可以更好地解决我的问题。

我一直在阅读有关 PostgreSQL 的新 CTE 功能 - MATERIALIZED 或 NOT MATERIALIZED 关键字 - 它可以在某些情况下提供额外的优化机会,前提是这样做是安全的。对此PostgreSQL 更新的评论如下:

...用户可以通过指定 MATERIALIZED 强制旧行为 [LESS OPTIMIZED];当查询故意使用WITH作为优化栅栏以防止计划选择不当时,这主要有用。

我一直想知道,考虑到在某种情况下使用 CTE 优化(不是 MATERIALIZED 关键字)是安全的,在这种情况下,优化程度较低的“MATERIALIZED”关键字可以“防止错误的计划选择”,如引用所述或提供更好的计划?

postgresql common-table-expression postgresql-12

5
推荐指数
1
解决办法
2107
查看次数

如何在 postgreapp 中设置 PostgreSQL 的密码?

我正在使用 PostgreSQL 的 postgresapp,无需密码我就能够连接到数据库并执行操作。我很好奇想知道密码。我还使用 Postico 作为界面。接受任何建议。

passwords postgresql jdbc postgresql-12

4
推荐指数
1
解决办法
2104
查看次数

如何在 PostgreSQL 中的数组上添加外键约束?

如何在 PostgreSQL 中的数组上添加外键约束?

角色查找表

CREATE TABLE party_role_cd
(
  party_role_cd bigint NOT NULL,
  code character varying(80) NOT NULL,
  CONSTRAINT party_role_cd PRIMARY KEY (party_role_cd)
);
Run Code Online (Sandbox Code Playgroud)

参与方可以有零个或多个角色 [0-N 关系]

CREATE TABLE party
(
  party_id biging NOT NULL,
  party_role_cd bigint[] NOT NULL,
  CONSTRAINT party_id PRIMARY KEY (party_id)
);
Run Code Online (Sandbox Code Playgroud)

如何在表中添加foreign key约束?party_role_cd arrayparty

arrays postgresql constraints postgresql-12 postgresql-13

4
推荐指数
1
解决办法
3476
查看次数

如何配置 pg_config/pgxs/make 以获取 Makefile 中的 CPPFLAGS 和 CFLAGS 来构建 Postgres C/C++ 扩展?

我想添加编译器标志来构建我的 Postgres C/C++ 扩展。我已经尝试过标准 Makefile 实践,但 pg_config 没有选择我添加的任何编译器标志。

生成文件如下:

  1 # the extensions name
  2 EXTENSION     = extension_one
  3 DATA          = $(wildcard *--*.sql)            # script files to install
  4 TESTS         = $(wildcard test/sql/*.sql)      # use appropriate testfiles
  5 
  6 CFLAGS   = -std=c99
  7 CPPFLAGS = -std=c++17
  8 
  9 # find the sql and expected directories under test
 10 # load plpgsql into test db
 11 # load extension into test db
 12 # dbname
 13 REGRESS_OPTS  = --inputdir=test         \
 14 …
Run Code Online (Sandbox Code Playgroud)

c c++ postgresql postgresql-12

4
推荐指数
1
解决办法
1518
查看次数

AWS RDS Postgres:更改 rds.logic_replication = 1 后,WAL_LEVEL 未设置为“逻辑”

我正在设置 Debezium 以与 AWS Aurora Postgres(postgres 版本 12.6)配合使用。

为了让 Debezium 工作,WAL(预写日志记录)必须设置为“逻辑”而不是“副本”。在 AWS 上,这需要 DBA 将rds.logical_replication参数组中的参数设置为 1。

以上就完成了。数据库实例已重新启动。

为了验证 WAL 级别是否更改为“逻辑”,我运行了以下查询:

show wal_level

然而,在目标数据库上的 postgres 中运行此查询后,结果显示replica

我进一步查看了AWS管理控制台中的日志事件,我看到了这些日志事件。

在此输入图像描述

有人知道为什么会这样吗?在另一个环境中,我们能够成功地将 设为rds.logical_replication1,并且在数据库重新启动后,WAL 被设为logical。但对于我们的主要环境来说,情况并非如此。从参数组来看,这两个环境之间是相同的。

任何帮助/建议表示赞赏。谢谢。

postgresql amazon-web-services amazon-aurora postgresql-12

4
推荐指数
1
解决办法
4980
查看次数

PostgreSQL 程序不存在

我已经创建了插入新记录的过程

CREATE OR REPLACE PROCEDURE PUBLIC."saveStudent"(
    "fName_val" character varying,
    "sName_val" character varying,
    patr_val character varying,
    "DoB_val" DATE,
    GROUP_ID INTEGER,
    instructor_id INTEGER)
LANGUAGE 'plpgsql'

AS $BODY$ BEGIN
 INSERT INTO PUBLIC.student(
    "fName", "sName", "patronymic", "DoB", "group", instructor)
    VALUES (fName_val, sName_val, patr_val, DoB_val, GROUP_ID,instructor_id);
END; $BODY$
Run Code Online (Sandbox Code Playgroud)

但是当我尝试调用它时出现错误

CALL public.saveStudent(
    'It', 
    'is', 
    'Test', 
    '23/09/1999', 
    0, 
    1
)
Run Code Online (Sandbox Code Playgroud)

过程 savestudent(未知,未知,未知,未知,整数,整数)不存在

是什么原因造成的呢?

sql postgresql postgresql-11 postgresql-12

3
推荐指数
1
解决办法
7443
查看次数

在 Alpine 中安装较旧的软件包版本

所以最近(9 月 5 日)Alpine Linux 包 repo 更新为 postgresql-client 12.4

我在我的 Dockerfile ( apk add postgresql-client=~12.3) 中引用了 12.3 版。现在不能安装那个版本吗?

我想更新我的时间和条款,为什么我现在要被迫更新?我可以添加另一个存储库以使用旧版本吗?

谢谢

alpine-linux postgresql-12

3
推荐指数
1
解决办法
3174
查看次数

错误:“PGDMP”处或附近的语法错误第 1 行:PGDMP

我正在尝试将 postgres 数据库备份文件上传到我的托管服务器。但我收到这些错误。不知道这个文件有什么问题。在此输入图像描述

postgresql phppgadmin postgresql-12

3
推荐指数
1
解决办法
3217
查看次数

PostgreSQL 通过 RAMdisk 进行基准测试?

我考虑迁移到 RAMdisk 的想法已经有一段时间了。我知道它的风险,但只是想做一点基准测试。我只有两个问题:(a)在读取查询计划时,它仍然会区分磁盘和缓冲区命中吗?如果是这样,我应该假设两者同样昂贵还是应该假设它们之间存在差异?(b) RAM 磁盘不是持久性的,但如果我想将一些结果导出到持久性存储,需要采取一些预防措施吗?它与通常的 COPY 命令相同吗?

postgresql main-memory-database postgresql-copy postgresql-12

2
推荐指数
1
解决办法
1439
查看次数

PgAdmin-Postgres:无法连接到服务器:连接被拒绝(0x0000274D/10061)

您好,我想在学校项目中使用PostgreSQL ,每当我在Pg Admin中打开服务器时,我都会遇到同样的问题

当我第一次打开 Pg Admin 时,我输入在安装中输入的密码,当我单击服务器(1)时,它需要用户“postgres”的密码,我使用相同的密码,但它告诉我:

could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 1500? could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 1500?
Run Code Online (Sandbox Code Playgroud)

我不知道它的真正含义是什么..因为我是数据库和服务器的新手

  • 我重新安装了所有 postgres 和 Pg admin:同样的问题
  • 我在 services-postgres 中重新启动服务器..:同样的问题

我在 Windows-10 中使用 PostgreSQL-12 和 Pg Admin-4

图像

请帮忙 !!谢谢你!

database postgresql pgadmin-4 postgresql-12

2
推荐指数
1
解决办法
2万
查看次数