我在服务器组中列出了大量已配置的连接,有没有办法保存它?不仅保存密码,还保存服务器组设置

我想psql作为单个事务按顺序执行多个 sql 脚本来设置我的数据库架构。做这个的最好方式是什么?过去我知道我有一个psql包含其他文件的主脚本,但是我不记得这个脚本的语法。
我有一个物化视图Postgres 9.3,我想用新列进行更新。但是,其他物化视图也依赖于该视图,并且错误消息表明当其他对象依赖于该视图时,无法删除该视图。
错误:无法删除物化视图 latest_charges 因为其他对象依赖它
从文档中还可以看出 REPLACE 关键字对物化视图无效。除了删除所有依赖对象并重建每个对象之外,还有其他捷径吗?
我正在执行更新,我需要一个tstzrange变量完全相等。修改了大约 100 万行,查询需要大约 13 分钟。的结果EXPLAIN ANALYZE可以在这里看到,实际结果与查询计划器估计的结果有很大的不同。问题是索引扫描t_range期望返回单行。
这似乎与范围类型的统计信息与其他类型的统计信息的存储方式有关。pg_stats查看列的视图,n_distinct是 -1,其他字段(例如most_common_vals,most_common_freqs)为空。
但是,必须在t_range某处存储统计信息。我在 t_range 上使用 'within' 而不是完全相等的极其相似的更新需要大约 4 分钟才能执行,并且使用了完全不同的查询计划(请参阅此处)。第二个查询计划对我来说很有意义,因为将使用临时表中的每一行和历史表的很大一部分。更重要的是,查询规划器为 上的过滤器预测了近似正确的行数t_range。
的分布t_range有点不寻常。我正在使用这个表来存储另一个表的历史状态,并且对另一个表的更改在大转储中同时发生,因此没有很多不同的t_range. 以下是与 的每个唯一值对应的计数t_range:
t_range | count
-------------------------------------------------------------------+---------
["2014-06-12 20:58:21.447478+00","2014-06-27 07:00:00+00") | 994676
["2014-06-12 20:58:21.447478+00","2014-08-01 01:22:14.621887+00") | 36791
["2014-06-27 07:00:00+00","2014-08-01 07:00:01+00") | 1000403
["2014-06-27 07:00:00+00",infinity) | 36791
["2014-08-01 07:00:01+00",infinity) | 999753
Run Code Online (Sandbox Code Playgroud)
t_range上面distinct的计数是完整的,所以基数是~3M(其中~1M会受到任一更新查询的影响)。
为什么查询 1 的性能比查询 2 …
postgresql performance postgresql-9.3 range-types query-performance
我正在使用pg_dump(纯文本格式)转储我的 Postgres 数据库,然后简单地使用psql(带有-f选项)来恢复它。
这就引出了一个问题:我不使用pg_restore这似乎是一个专门的恢复工具(与通用相比),我是否遗漏了什么psql?
我可以通过使用pg_dump参数来控制诸如禁用触发器等选项。那么,是pg_restore用来做什么的呢?非纯文本转储格式?
我正在尝试组合多个日期范围(我的负载大约为最多 500 个,大多数情况下为 10 个),这些日期范围可能会或可能不会重叠到最大的可能连续日期范围中。例如:
数据:
CREATE TABLE test (
id SERIAL PRIMARY KEY NOT NULL,
range DATERANGE
);
INSERT INTO test (range) VALUES
(DATERANGE('2015-01-01', '2015-01-05')),
(DATERANGE('2015-01-01', '2015-01-03')),
(DATERANGE('2015-01-03', '2015-01-06')),
(DATERANGE('2015-01-07', '2015-01-09')),
(DATERANGE('2015-01-08', '2015-01-09')),
(DATERANGE('2015-01-12', NULL)),
(DATERANGE('2015-01-10', '2015-01-12')),
(DATERANGE('2015-01-10', '2015-01-12'));
Run Code Online (Sandbox Code Playgroud)
表看起来像:
id | range
----+-------------------------
1 | [2015-01-01,2015-01-05)
2 | [2015-01-01,2015-01-03)
3 | [2015-01-03,2015-01-06)
4 | [2015-01-07,2015-01-09)
5 | [2015-01-08,2015-01-09)
6 | [2015-01-12,)
7 | [2015-01-10,2015-01-12)
8 | [2015-01-10,2015-01-12)
(8 rows)
Run Code Online (Sandbox Code Playgroud)
预期结果:
combined
--------------------------
[2015-01-01, 2015-01-06)
[2015-01-07, 2015-01-09)
[2015-01-10, ) …Run Code Online (Sandbox Code Playgroud) 我需要将现有数据库(包括其架构和结构)复制到另一个新数据库。我在 shell 命令环境中需要这个,而不是在 pgadmin 中。请帮助我。
nohup pg_dump exampledb > example-01.sql
createdb -O postgres exampledbclone_01
Run Code Online (Sandbox Code Playgroud)
我的用户是“postgres”
nohup psql exampledbclone_01 < example-01.sql
Run Code Online (Sandbox Code Playgroud)
$ pg_dump mydb > db.sql
$ psql -d newdb -f db.sql
Run Code Online (Sandbox Code Playgroud) 我需要使用 PostgreSQL 将双精度值转换为 Bigint。我怎样才能做到这一点?
我试过,to_bigint(myvalue)但该功能不存在。
有人可以解决我对pg_stat_activitypostgres 9.5 的以下疑问吗?
state IDLE行中的表示是pg_stat_activity什么吗?它是否像检查所有打开的 postgres 连接,如果连接没有执行任何查询,则IDLE表示该连接执行的最后一个查询?select * from pg_stat_activity我看到有行state IDLE和query_start_date超过2天?这意味着什么?我应该担心这个吗?Select * from pg_stat_activity它是从 postgres 维护的某个快照中生成详细信息,还是检查 postgres 中打开的当前连接以提供详细信息?在 PostgreSQL 和 SQL Server 中,默认页面大小为 8 KB,在 MySQL 中为 16 KB,在 IBM DB2 和 Oracle 中仅为 4 KB。
为什么这些页面尺寸如此之小?
是否有历史或内存使用原因?
postgresql ×10
range-types ×2
aggregate ×1
datatypes ×1
db2 ×1
mysql ×1
performance ×1
pgadmin ×1
psql ×1
size ×1
sql-server ×1
view ×1