问题标签 [postgresql-14]
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.
perl - 使用 PostgreSQL 14 运行 Ora2Pg
我有PostgreSQL v14服务器,可以使用ora2pg工具版本 22.1从旧 Oracle 服务器迁移数据。
当我尝试执行时出现问题ora2pg -c properties.conf
,这给了我以下输出:
[========================>] 2/2 表 (100.0%) 扫描结束。DBI connect('dbname=postgres;host=hostname;port=5432','username',...) 失败:C:/Strawberry/perl/site/lib/Ora2Pg.pm 第 2100 行不支持身份验证方法 10。 FATAL: 1 ... 身份验证方法 10 不支持 Aborting export ...
当我做了一些研究时,我知道这authentication method 10
可能是一种SCRAM 身份验证方法,这是 PostgreSQL 14 的默认设置。
我尝试使用 安装 perl 包Authen::SCRAM
,cpan
但我不熟悉 perl 编程,这对我没有帮助。
问题是:
- 有没有办法
authentication method 10
在 ora2pg 中启用? - 如果是这样,我该怎么做?
java-11 - 我该如何解决这个问题,它说'queryForObject(java.lang.String,java.lang.Object [],java.lang.Class)' 已弃用
我不知道如何解决这个问题,因为我上周四才开始做 Spring Boot 项目。不幸的是,今天是我项目的截止日期,坦率地说,我现在很恐慌:/
这是我的示例问题代码:
下面是 Java 类的整体代码:
}
postgresql - PostgreSQL 中的高效全文搜索,在另一列上排序
在 PostgreSQL 中,如何有效地对一列进行全文搜索,对另一列进行排序?
假设我有一个tbl
包含列a
, b
, c
, ... 和许多(> 一百万)行的表。我想对列进行全文搜索a
并按其他列对结果进行排序。
所以我va
从 column创建一个 tsvector a
,
为此创建一个索引iva
,
ib
和列的索引b
,
然后我像这样查询
现在 Postgres 明显的执行策略是:
ib
使用、过滤va @@ 'test'::tsquery
和在 100 次匹配后停止对常用词进行索引扫描,而对于稀有词使用
iva
with condition 进行(位图)索引扫描va @@ 'test'::tsquery
,然后b
手动排序
但是,Postgres 的查询规划器似乎没有考虑词频:
对于低
LIMIT
(例如100
),它总是使用策略 1(正如我检查过的EXPLAIN
),并且在我的情况下,对于稀有(或不出现)的单词需要一分钟以上的时间。但是,如果我通过设置 large (或 no) 来欺骗它使用策略 2LIMIT
,它会在一毫秒内返回!反之亦然,对于较大的
LIMIT
(例如200
),它总是使用策略 2,该策略适用于稀有词,但对于常用词非常慢
那么如何让 Postgres 在每种情况下都使用一个好的查询计划呢?
由于目前似乎没有办法让 Postgres 自动选择正确的计划,
如何获得包含特定词位的行数,以便决定最佳策略?
(
SELECT COUNT(*) FROM tbl WHERE va @@ to_tsquery('english', 'test')
非常慢(对于 10000 行中出现的词位约 1 秒),而且ts_stat
似乎也无济于事,除了建立我自己的词频列表)然后我如何告诉 Postgres 使用这个策略?
这里有一个具体的例子
我有一个items
包含 150 万行的表,其中有一个 tsvector 列v3
,我在其中进行文本搜索,还有一个列rating
进行排序。在这种情况下,如果 LIMIT 小于或等于 135,我确定查询规划器始终选择策略 1,否则选择策略 2
这里是对 LIMIT 135 的稀有词“aberdeen”(出现在 132 行中)的 EXPLAIN ANALYZE:
并使用 LIMIT 136:
这里是 LIMIT 135 的常用词“游戏”(出现在 240464 行中):
并使用 LIMIT 136:
postgresql - 在 Windows 10 上使用 createdb 命令 postgresql 时出错
我是 PostgreSQL 的新用户,我正在学习它以便可以将它与 Django 一起使用,所以我尝试使用该createdb
命令创建一个新数据库,但即使我为我的帐户输入了正确的密码,我收到此错误。我重新安装了所有东西并检查了我能想到的所有东西,但我无法解决这个错误。所以,如果我能在这个问题上得到一些帮助,那就太好了。
即使使用 commandpsql
并提交正确的密码,也会出现同样的错误。
我正在使用 Windows 10。
据我检查,我需要输入安装 PostgreSQL 时使用的密码。
顺便说一句,我使用的是最新版本的 PostgreSQL 14.1
我使用的命令:
postgresql - PostgreSQL 崩溃:由于 postmaster 意外退出而终止连接
我正在使用 Python 线程执行从 Python 运行 60 个并行进程的数据迁移任务。
过了一会儿,PG崩溃了,看PG日志文件的结尾:
有没有人知道问题是什么?我正在使用本地磁盘的物理 Windows 服务器上运行它。PG 版本 14。
感谢您的任何意见。谷歌搜索这个问题并没有给我任何有用的提示。
上面的 SQL 代码(“......”)是
我浏览了我的 PG 日志文件以查找此错误,结果发现,每次都在相同的代码上崩溃。
安装的扩展:
- pg_routing
- plpgsql
- 地理信息系统
- postgis_sfcgal
- uuid-ossp
postgresql - SQL 状态函数的 Postgres 错误:42601
显示的错误消息并且我没有看到错误,因为我以多种方式进行了探测,同样继续显示的是斐波那契数列
postgresql - 建议对查询进行存储修改以更有效地运行?
假设我有一个查询返回属性 R:a 具有第二高的不同值(返回表名和属性名)。我的任务是:
对于相同属性 R:a 的每个不同值,将不同值返回为 val,并将 R 中具有此值的元组数返回为计数。显示这些不同值的结果,例如 20% 的 R 元组具有等于或低于 R:a 值,20% 的 R 元组具有更高或等于 R:a 值。
建议对存储进行修改,以便查询尽可能高效地运行。
我编写了一个查询来返回不同的值和计数,但是我如何显示 20% 的结果以及在这种情况下存储修改意味着什么?
postgresql - PostgreSQL:“refcursor”处或附近的语法错误
当我使用 Microsoft SQL Server 数据库时,我有时会从存储过程返回多个结果集。我经常返回这么多,以至于很难理解哪个是哪个。为了解决这个问题,我遵循从同事那里学到的约定:第一个结果集是一个“地图”,它定义了第二个和其他结果集的名称。它有一条记录,其中每个字段名称是结果集的名称,相应的字段值是它在返回的结果集数组中的索引。客户端代码通过首先按名称查找索引来访问特定的结果集。
下面的简单示例展示了这个想法:
在此示例中,第一个结果集(索引:0)给出了另外 2 个结果集:一个称为“结果”(索引:1),另一个称为“错误”(索引:2)。两者都只包含一条记录:分别是除法的结果和错误代码。
示例调用 #1:
JSON 格式的结果集:
示例调用 #2:
JSON 格式的结果集:
我尝试使用官方文档,尤其是这个页面将这种技术移植到PostgreSQL 14。我想出了这个:
不幸的是,我收到一个错误:syntax error at or near "refcursor"
,指的是refcursor
之后的第一行中的declare
。
postgresql - PostgreSQL 14.2:内存不足 - 在内存上下文“TupleSort main”中请求大小为 24576 时失败
我最近在我的 RedHat 服务器上安装了一个 PostgreSQL 14.1,与我的旧 12.9 并行。两个实例都在运行它们的默认配置。服务器本身有 48 个 CPU 和 188 GB RAM,对于 12.9 来说似乎绰绰有余
一切都按预期工作,但我不断收到错误消息。
SQL 表:pos 有 18 584 522 行 // orderedposteps 有 18 行 // posteps 有 18 行
我能看到的唯一区别是内存利用率,由 htop 显示。虽然 12.9 只消耗最多 10 GB 的 RAM,但 14.1 增长到 62 GB 并在达到或多或少 62 GB 时崩溃。
我已经尝试通过增加 work_mem
也使用 pgtune 来更改其他一些值,但没有任何显着影响。
我很确定可以简化和调整 SQL,我可以这样做,但我想了解 12.9 和 14.1 之间的区别在哪里,或者要明智地更改配置,而不是重构一个函数以使用最新版本。