问题标签 [postgresql-8.3]

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 投票
2 回答
4028 浏览

postgresql - 在非常大的表上运行 AUTO_VACUUM(以防止回绕)的问题

我遇到了问题,需要一些建议。我通常是一名开发人员,但是由于最近我公司的人员变动,我现在是唯一的 IT 人员,所以我不得不涉足许多未知领域并且确实需要一些帮助。

我们正在运行 postgres 8.3。数据库正在尝试在大型对象表 (pg_catalog.pg_large_object) 上运行 AUTO_VACUUM 以防止事务 ID 回绕。我想我理解这意味着什么的基础知识。问题是,这张表是 750G,有 4.52 亿行。AUTO_VACUUM 大量写入磁盘,占用了磁盘空间(昨天它消耗了我们最后 250GB 的 1TB)。紧急中断后,我们以 1100GB 的空间和 100GB 的可用空间恢复运行。然而,一旦 postgres 重新启动并运行,它就会再次启动 AUTO_VACUUM 进程。如果我终止交易(我确定不推荐这样做),它就会重新启动。

所以这是我的问题:

1) 对于该表,完成 AUTO_VACUUM 进程需要多少空间?我如何确定这一点?

2) 有没有更好的方法来配置服务器来处理这种情况,以便在需要时不需要大量的磁盘空间?

3)如果不是 2,你建议如何解决这个问题?

我不是 DBA,也没有 linux 服务器管理经验,只是一个被要求身兼数职的开发人员。我正试图让 DBA 顾问帮助解决问题,但该公司正在回击。尽管我尽了最大努力,但他们似乎并不了解问题的严重性。

建议?注释?您可以提供的任何建议或指导将不胜感激。如果您需要更多信息,请告诉我。

0 投票
3 回答
4258 浏览

performance - 使用输入变量时,Postgres 的运行速度要慢得多

我在 Postgres 8.3.5 中有一个函数,它从多个表中选择数据并将结果转储到一个表中:

使用 PgAdmin 并执行此命令需要 113 秒才能完成此功能:

但是,如果我用这样的文字替换函数中的输入变量:

该函数在不到 5 秒内执行。

我是 Postgres 的新手,所以我可能缺少一些东西,但我似乎无法在任何地方找到答案。

0 投票
2 回答
358 浏览

sql - 从另一个数据库更新表

我需要更改三个表中的数据(更新一些现有行,添加一些新行,删除一些旧行)。我需要它在一瞬间完成。问题是需要手动更改数据,并且可能需要一些时间才能完成。所以我将使用测试服务器来进行更改。问题是:如何使用来自另一个数据库的数据更新生产服务器?

我的解决方案从 beta 服务器转储数据并在生产中恢复。
缺陷:我必须首先删除生产中的所有数据,并且由于外键而存在问题(我可以先关闭键,但有没有办法避免它?)。

我发现了类似的问题,其中一个答案建议使用dblink命令。我想我可以写更新语句,但这似乎还是有点矫枉过正。

编辑(补充说明):
有生产服务器(我们称之为Production),有开发服务器(我们称之为Beta)。所以我需要在生产上更改一些数据(3 个相互连接的表,它们也被数据库中的其他表引用)。准确地说 - 这些表格包含学习计划 - 主题、主题组和子主题。有引用这些元素的寄存器。但我需要立即完成这些更改(意思是:通过 SQL 脚本)。为了实现这一点,我将使用 Beta 服务器 - 它拥有生产数据库的副本(在特定时刻完成,没有实时同步)。所以我将在 Beta 服务器上的 3 个表中更新数据,我需要将这些数据移动到生产环境。

0 投票
1 回答
293 浏览

sql - postgresql:从视图中选择非异常值

使用 8.3 版(在这件事上别无选择)。

我不能使用“;WITH x AS”样式查询,因为它不受支持(从我在 8.3 中可以看出。我试图使用它们但它们未被识别)。我当然也不能使用 TOP,因为我不在 SQL Server 中。我尝试使用以下限制查询,但因以下错误而受阻:

这并不理想,因为它不会移除较低的 5%,但我只能忍受最高的 5% 被移除。

0 投票
2 回答
3457 浏览

postgresql - 如何从 pl/pgsql 函数中调用 shell 命令?

我想做这样的事情,但它不起作用......

PostgreSQL 8.3

升级不是一种选择,对不起...

0 投票
1 回答
204 浏览

postgresql - 使用另一个 TYPE 的 SETOF 字段创建一个 TYPE

我在尝试创建一个包含另一个 TYPE 的字段的 TYPE 时遇到了一些麻烦:

但这不起作用。Postgres 给出一个错误:

我需要返回这个结构,尽管只返回图像数据(bytea 类型)而不返回 subType 中图像的文件名是可以接受的。它应该支持多张照片。

有人可以阐明如何做到这一点吗?

0 投票
1 回答
360 浏览

sql - 重命名主键和外键的 VALUES

有两个这样的表:

目标是重命名 rid 的键(值,而不是表或列),如下所示:

当然,这会导致外键约束错误。

在重命名的上下文中,经常调用“sp_rename”。但我是这样理解的,它只适用于表和列,而不适用于值。

如何重命名外键约束的值?

.

解决了:

0 投票
3 回答
854 浏览

multithreading - 从 Postgres 函数中生成新进程

是否可以生成一个新进程来从 postgress 函数中运行函数?还是根据文档,我是否仅限于发起请求的每个数据库连接一个线程?

单独的进程正在创建和填充动态命名的表,不返回任何数据,并且独立于生成函数。在 Postgresql 8.3 上。

0 投票
1 回答
870 浏览

sql - 从 varchar 中选择子字符串并转换为整数数组

我的存储过程中有一个数字的 VARCHAR,这些数字被组织为数组,我将在下面展示一个示例:

我想做一个FOR循环来每次从这个集合中选择一个子字符串,{}并将其转换为一个整数数组。

所以第一次在我的循环中我会有:

所以我将使用它array_to_string来将其转换为integer[]

第二次我将拥有:

并继续使用array_to_string

有小费吗?小心,因为不幸的是我使用的是 PostgreSQL 8.3!

0 投票
1 回答
2225 浏览

sql - 从 Postgresql 上的数组数组中迭代每个元素

我的存储过程中有一个数字的 VARCHAR,这些数字被组织为数组,我将在下面展示一个示例:

现在在另一个人的帮助下,我正在使用它来获取整数数组integer[]

我将有一组记录,每个记录都有一个数组,见下文:

我正在尝试,但我无法弄清楚如何FOR对这些数组中的每个元素进行迭代,以调用另一个过程来处理每个数组中的每个元素。

{1,2,3,4,5,6,7,8,9}我将调用的数组示例my_array

我收到此错误:

我需要将我的每个记录结果转换为一个数组,所以我可以使用 array_cat 或其他函数来迭代数组元素

我的过程代码如下:

提示或技巧?