Questions tagged «postgresql»

PostgreSQL的所有版本。如果该上下文很重要,请添加其他特定于版本的标记,例如postgresql-11。

1
在PostgreSQL Windows服务中登录文件
我需要一种替代方法来运行以下命令: C:\xxx\pgsql\bin\pg_ctl" -D "C:\xxx\pgsql\data" -l "C:\yyy\log\pgsql.log" start。 这样,服务器将启动并登录到C:\yyy\log\pgsql.log。但是,当我尝试将服务器注册为服务时-没有可用的日志记录选项,并且服务器将记录到事件查看器。从pg_ctl文档中: pg_ctl注册[-N服务名] [-U用户名] [-P密码] [-D数据目录] [-S a [uto] | d [emand]] [-w] [-t秒] [-s] [-o选项] 如何强制服务器登录文件?注意:我不想使用一键式安装程序,我只想使用解压缩的二进制文件。

1
将输入限制为几个不同的字符串
嗨,我似乎无法以我期望的方式在postgreSQL中获得约束。从pgadmin内部,我执行以下SQL查询。 -- Check: "TypeCheck" -- ALTER TABLE "ComLog" DROP CONSTRAINT "TypeCheck"; ALTER TABLE "ComLog" ADD CONSTRAINT "TypeCheck" CHECK ("Type" SIMILAR TO 'email|post|IRL|minutes'); COMMENT ON CONSTRAINT "TypeCheck" ON "ComLog" IS 'One of email|post|IRL|minutes'; 执行后将转换为。 -- Check: "TypeCheck" -- ALTER TABLE "ComLog" DROP CONSTRAINT "TypeCheck"; ALTER TABLE "ComLog" ADD CONSTRAINT "TypeCheck" CHECK …

1
在“创建数据库”命令中指定表空间时,为什么会收到PostgreSQL权限错误?
当我在PostgreSQL中创建数据库而未明确指定默认表空间时,创建该数据库没有问题(我以pgsys用户身份登录): postgres =>创建数据库rich1; 创建数据库 postgres => \ l + 数据库清单 姓名| 业主| 编码| 整理| Ctype | 访问权限| 尺寸 表空间| 描述 ----------- + ---------- + ---------- + ------------- +- ----------- + ------------------------------------- + ----------- + ------------ + ------------------------- ------------------- postgres | pgsys | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | | 7455 …

1
PostgreSQL:default_statistics_target值的真正含义是什么?
增加default_statistics_target值可以使您的数据库更快,特别是在分析之后。 阅读这篇文章后,我看到https://discuss.pivotal.io/hc/en-us/articles/201581033-default-statistics-target-Explained (...)简而言之,此参数控制着统计信息的收集方式,其中值1是估计/准确度最低的统计信息,值1000是最准确的统计信息,显然这会浪费时间/资源(CPU,内存等)/空间。通常,默认值足以获得准确的计划,但是如果您具有复杂的数据分布/或者查询中经常引用某列,则设置较高的值可能有助于获取更好的表统计信息,因此优化程序执行的更好计划。 这是一个很好的解释,但是例如,如果我将default_statistics_target = 1000设置为1000,这到底意味着什么?正在生成1000 KB的统计信息吗?还是分析了1000行表?也许是1000列?每次分析可能需要1000秒... 所以我的问题是,这个数字是如何真正影响分析或查询计划者的?很明显,我知道default_statistics_target = 1000会获得比100更长的运行分析时间,并且1000会生成更好的统计信息...
11 postgresql 

1
获取任何Postgres元命令的等效SQL查询
我希望标题是可自我描述的。我希望能够以某种方式将任何Postgres元命令转换为其相应/底层的SQL查询,至少要了解有关Postgres及其在表中存储元信息的方式的更多信息。 有什么想法可能吗? 例如: 当连接到数据库EXAMPLE时, \dt并SELECT table_schema,table_name FROM information_schema.tables ORDER BY table_schema,table_name;返回相同的结果。 如果可能,我想找到一种SELECT table_schema,table_name FROM information_schema.tables ORDER BY table_schema,table_name;在输入\dt函数/宏/任何内容时获取值的方法。
11 postgresql 

1
PostgreSQL:设置默认的psql客户端编码
当我使用连接到Postgresql数据库时psql,通常会收到以下消息: => SELECT * FROM question_view ; ERROR: character with byte sequence 0xd7 0x9e in encoding "UTF8" has no equivalent in encoding "LATIN1" 按照这个答案,我知道我应该相应地更改客户端编码: SET client_encoding = 'UTF8'; client_encoding每次连接数据库时都要进行更改。有没有办法在.pgpass文件中或其他任何地方永久配置此设置?

1
从远程服务器复制PostgreSQL数据库
当我使用MySQL时,我可以运行一个通过SSH进入服务器的命令,并将数据库复制到本地计算机上。 ssh -t remoteserver'mysqldump --compress -u dbuser --password =“密码” db_name'| / usr / local / mysql / bin / mysql -u root --password =“密码” local_db_name 如何使用PostgreSQL做同样的事情?
11 postgresql 


1
在Postgres中优化2000万行的“最新”查询
我的表如下所示: Column | Type | -----------------------+-------------------+ id | integer | source_id | integer | timestamp | integer | observation_timestamp | integer | value | double precision | 索引存在于source_id,timestamp以及timestamp和id(CREATE INDEX timeseries_id_timestamp_combo_idx ON timeseries (id, timeseries DESC NULLS LAST))的组合上 其中有2000万行(好的,有120M,但是有source_id = 1的20M)。它有许多相同的条目,timestamp且有所不同observation_timestamp,描述了一个value发生在timestamp报告或观察到的事件observation_timestamp。例如,明天下午2点预测的温度与今天上午12点预测的温度相同。 理想情况下,此表可以很好地完成一些工作: 批量插入新条目,有时一次插入10万 选择观察到的时间范围内的数据(“一月到三月的温度预测是多少”) 选择从某个点观察到的时间范围内观察到的数据(“如我们在11月1日所想到的,从1月到3月的温度预测如何看待”) 第二个是这个问题的核心。 表中的数据如下所示 id source_id timestamp observation_timestamp …

3
在PostgreSQL中为不能为null的字段不指定NOT NULL有什么后果?
我有一个应用程序(数据存储在PostgreSQL中),其中表中的大多数字段始终不为null,但是这些表的架构并未强制执行此操作。例如看这个假表: CREATE TABLE "tbl" ( "id" serial, "name" varchar(40), "num" int, "time" timestamp PRIMARY KEY ("id"), UNIQUE ("id") ); 此外name,num,time没有明确提及的NOT NULL,在现实中是这样,因为执行发生在应用端。 我的感觉是应该对其进行更改,但相反的是,应用程序级别确保此处不会出现空值,并且没有其他人手动修改该表。 我的问题是:通过设置显式NOT NULL约束? 我们拥有一个良好的代码审查流程和一个相当不错的文档,因此,某些新人提交的东西可能会破坏此约束,这实际上不足以证明更改是正确的。 这不是我的决定,所以这正是我在寻找其他理由的原因。我认为,如果某些内容不能为null,并且数据库允许您指定某些内容不为null,则只需执行此操作即可。特别是如果更改非常简单。

1
同一列中日期的总间隔
如何最好地总结交织行之间同一列中日期范围的差异?我有一个Datetime列,想计算行之间的差异。我想以秒为单位。这个问题不是关于如何获得两个时间戳之间的差异,而是更多地集中于如何最有效地计算同一表的行之间的差异。在我的情况下,每一行都有一个datetime偶数类型,该类型将两行逻辑地链接在一起。 详细信息与如何对开始和结束事件类型进行分组有关。(Andriy M的问题)“应该”是连续的开始和结束。如果起点没有后续终点,则应将其排除在总和之外。移至下一个“开始”以查看其是否结束。仅应将连续的开始-结束对添加到总秒数之和。 在PostgreSQL 9.x中工作... 表中的示例数据; eventtype, eventdate START, 2015-01-01 14:00 END, 2015-01-01 14:25 START, 2015-01-01 14:30 END, 2015-01-01 14:43 START, 2015-01-01 14:45 END, 2015-01-01 14:49 START, 2015-01-01 14:52 END, 2015-01-01 14:55 注意,所有开始日期和结束日期将是连续的。 这是我的第一次尝试。似乎正在工作。 SELECT -- starts.* SUM(EXTRACT(EPOCH FROM (eventdate_next - eventdate))) AS duration_seconds FROM ( WITH x AS ( …

2
如何确定行的可见性?
在最简单的情况下,当我们在表中插入新行(并且提交事务)时,所有后续事务都将看到该行。xmax在此示例中看到为0: CREATE TABLE vis ( id serial, is_active boolean ); INSERT INTO vis (is_active) VALUES (FALSE); SELECT ctid, xmin, xmax, * FROM vis; ctid │xmin │ xmax │ id │ is_active ───────┼─────┼──────┼────┼─────────── (0,1) │2699 │ 0 │ 1 │ f 当我们更新它时(因为该标志被FALSE意外设置为),它会发生一些变化: UPDATE vis SET is_active = TRUE; SELECT ctid, xmin, …

3
如何避免3个表之间的循环依赖关系(循环引用)?
我有3张桌子: 人 发布 喜欢 当我设计ER模型时,它具有循环依赖性: 1:N 人-------- <帖子 1:N 发表---------- <喜欢 1:N 人-------- <喜欢 逻辑是: 1人可以发表很多帖子。 1个帖子有很多赞。 1个人可以喜欢许多帖子(创建的人不能喜欢自己的帖子)。 如何删除这种循环设计?还是我的数据库设计错误?

1
是否可以在PostgreSQL的日志活动中排除特定用户?
我需要监视数据库中用户的活动。我在中设置了以下参数postgresql.conf: log_min_duration_statement = 0 log_connections = on log_disconnections = on log_line_prefix = '%t %a %d %h %u |' 但是,我意识到大多数日志文件都充满了postgres用户执行的语句,我为维护任务编写的脚本使用了这些语句:重新计算实例化视图,pg_dump,pg_restore,将视图提取为列表文件等,其结果是每日的大小超过12 Mb的日志文件。 有没有办法从日志中排除特定用户的活动?
10 postgresql  log 

1
报告的索引大小和执行计划中的缓冲区数之间存在巨大的不匹配
问题 我们有一个类似的查询 SELECT COUNT(1) FROM article JOIN reservation ON a_id = r_article_id WHERE r_last_modified < now() - '8 weeks'::interval AND r_group_id = 1 AND r_status = 'OPEN'; 由于超时(通常在10分钟后)更多,因此我决定调查此问题。 该EXPLAIN (ANALYZE, BUFFERS)输出如下所示: Aggregate (cost=264775.48..264775.49 rows=1 width=0) (actual time=238960.290..238960.291 rows=1 loops=1) Buffers: shared hit=200483 read=64361 dirtied=666 written=8, temp read=3631 written=3617 I/O Timings: …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.