问题标签 [postgresql-11]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2000 浏览

postgresql - PostgreSQL 11 对索引应该足够的分区表进行并行 seq 扫描

问题是我不断在一个相当简单的查询上进行 seq 扫描,以进行非常简单的设置。我究竟做错了什么?

  • Windows Server 2016 上的 Postgres 11
  • 配置更改完成:constraint_exclusion = partition
  • 单表分区为 200 个子表,每个分区数千万条记录。
  • 有问题的字段的索引(假设一个也被分区)

这是创建语句:

有问题的查询:

这总是会进行需要几分钟的序列扫描,而很明显根本不需要表数据,因为日期字段已被索引,我只是要求其 B 树的第一叶和最后一叶。

最初索引是打开的(K, Date),它很快就向我展示了 Postgres 在我认为它正在使用的任何查询中都不会尊重一个。(Date)其他查询起到了作用,似乎 Postgres 声称自动分区索引。然而,这个特定的简单查询总是用于 seq 扫描。

任何想法表示赞赏!

更新

查询计划(analyze, buffers)如下:

更新 2只是为了避免未来的评论,如“你应该索引(K,日期)”:

具有两个索引的查询计划完全相同,分析数量相同,甚至缓冲区命中/读取也几乎相同。

0 投票
3 回答
5664 浏览

postgresql - 获取分区表的表大小(Postgres 10+)

我每周在 Postgres上遇到这个查询,它显示了表格、它们的大小、toast 大小和索引大小(以字节为单位):

我知道 Postgres 正在为每个分区创建一个表,所以我分别为每个分区获取条目,但是有没有办法让每个表有一行,不管这个表是否分区?

0 投票
15 回答
211906 浏览

postgresql - 致命:用户“postgres”的密码验证失败(带有 pgAdmin 4 的 postgresql 11)

我最近安装了 Postgresql 11,在安装过程中,没有为 Postgres 输入密码和用户名的步骤。现在在 pgAdmin 4 中,我想将数据库连接到服务器,它要求我输入密码,而我一开始没有输入任何密码。任何人都知道发生了什么。谢谢!

0 投票
2 回答
456 浏览

postgresql - 删除我用“ALTER SYSTEM SET”输入的错误参数

我正在输入一堆ALTER SYSTEM SET命令,其中一个我打错了。现在我不断得到:

无法识别的配置参数

如何删除该配置参数?

我正在使用PostgreSQL 11,并且在输入这些 set 命令时正在使用psql,因此它不在PostgreSQL.conf文件中。

0 投票
1 回答
1451 浏览

postgresql - 如何让 pg_ctl reload 工作?要求 postgres 用户的密码,但不接受

yum我已经按照网站上的 Postgres 说明在CentOS 7 VM 上安装了 PostgreSQL 11 。安装后,我做到了

然后去配置postgresql.conf文件。

现在我需要重新加载数据库以使这些更改生效。

我尝试sudo pg_ctl reload使用该postgres帐户,然后提示我输入postgres密码。据我了解,此帐户是在初始化时创建的,并且没有密码,但不接受仅按 Enter 键。

然后,我尝试通过su -u postgres psql postgres从 root 执行并在 shell 执行中更改密码,ALTER USER postgres PASSWORD 'myPasswordHere';这确实ALTER ROLE作为确认返回。如上重试重新加载,新密码仍然不被接受。

然后我尝试systemctl restart postgres-11以 root 身份进行操作,但这似乎完全破坏了数据库,不允许我执行任何涉及数据库的进程,甚至无法访问 Postgres shell。

我不得不删除数据目录并重新运行initdb上面的命令以重新启动一切(pg_ctl命令仍然不接受我的密码)。

如何正确重新加载数据库以便postgresql.conf实施我的更改?

0 投票
2 回答
1096 浏览

ruby-on-rails - Travis CI 未连接到 PostgreSQL 11.2

我在为 PostgreSQL 11.2 数据库构建 Rails 应用程序时遇到问题。

这是.travis.yml文件:

但是,构建失败:

在此处输入图像描述

任何建议将不胜感激。

0 投票
1 回答
382 浏览

postgresql-11 - 在 pgAgent 中设置文件导出

我是 pgAgent 的新手,并试图设置一个每 5 分钟导出一次文件的作业(仅用于测试;一旦我掌握了语法,它将分散到许多作业中)。当我在查询编辑器中运行以下测试代码时,它可以正常工作,但是 pgAgent 似乎不喜欢它。对我需要更改的内容有什么帮助吗?

就正在发生的事情而言,我找不到任何类型的错误;相反,当我手动运行作业或让计划运行时,文件不会出现。

0 投票
1 回答
149 浏览

xml - 如何在 Postgres 11 和 Postgres 9.1.2 中解析 XML

在 Postgres 9.1.2 中,下面的脚本会产生正确的结果:

在 Postgres 11 中,它会产生错误的结果:

如何使它也可以在 Postgres 上的较新版本中工作?

0 投票
0 回答
49 浏览

postgresql - hotstandby postgresql 服务器具有主服务器的密码

  1. 主服务器:有一个名为“test”的 postgresql 用户,密码为“mytest-password-formaster”

  2. 从服务器:一个名为“test”的 postgresql 用户在那里,密码为“mytest-password-forslave”

现在,我创建了 HA 设置,如下所示:

  1. 修改了 master 上的 postgresql.conf 和 pg_hba.conf 需要充当“master”

  2. 在从服务器上:清理 data_dir,修改 postgresql.conf,使用“pg_basebackup”从 master 备份 data_dir,并创建 reconvery.conf 以在 hotstandby 模式下启动 postgresql。

现在,上述步骤工作正常,我的 HA 设置也正常工作。现在,当我使用 'pg_promote' 提升从服务器时,它使 postgresql 写入启用。现在'test'用户的密码是master。即'mytest-password-formaster'。

我想要的是,当我使用“pg_promote”提升备用节点时,它应该有其用户的旧密码,即“mytest-password-forslave”。

如何做到这一点?当我在设置备用配置时清理从站上的 data_dir 时,它正在发生吗?

0 投票
0 回答
29 浏览

postgresql - 无法运行 Postgres 存储过程

我有一个非常简单的存储过程:

我正在尝试使用以下方法运行 SP:

我得到的错误如下:

错误:查询没有结果数据的目的地 提示:如果要丢弃 SELECT 的结果,请改用 PERFORM。CONTEXT:PL/pgSQL 函数 delivery.get_assets(integer) 第 3 行在 SQL 语句 SQL 状态:42601

我正在使用 PostgresQL 11。

在 SQL Server 中,我所要做的就是调用 SP。我在 Postgres 中读到过,你不需要像使用函数那样的 return 语句。任何帮助表示赞赏!

***根据下面的评论,我已将 SP 更改为函数(谢谢 JSpratt 和没有名字的马)。

我快到了,但是现在当我调用该函数时,它以以下格式返回:

返回数据

如何让它作为网格中的普通数据集返回?