问题标签 [postgresql-9.4]
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.
performance - 性能 postgresql 9.1.9/9.3.6 与 9.4.1
我在比较 9.1.9/9.3.6 和 9.4.1。我认为 9.4.1 的性能应该更好,或者至少不会更差。但我这里有个问题。我已经在同一台机器上安装了两个数据库,恢复了相同的转储,使用了 ANALYZE 并且我有 2 个结果,我看到由于某种原因 9.1.9 工作得更快 - 118ms 对 452ms。我用 EXPLAIN ANALYZE 检查了相同的 sql 查询(具有相同的 work_mem =8MB 和 shared_buffers = 128MB)。
1) 9.1.9
2) 9.4.1
3) 9.3.6
当然,也许 sql-query 不太好,但我想了解为什么 9.4.1 需要更多时间 x4!你能帮我做什么吗?
UPD。我安装了 9.3.6 并尝试了相同的查询。结果比 9.4.1 好得多。
sql - jsonb查询与数组中的嵌套对象
我正在使用 PostgreSQL 9.4 和一个teams
包含jsonb
名为json
. 我正在寻找一个查询,我可以在其中获取所有拥有 Players 的球队3
,4
以及7
他们的球员数组。
该表包含两行,其中包含以下json
数据:
第一排:
第二行:
查询必须如何才能获得所需的团队列表?我尝试了一个查询,我将从成员玩家创建一个数组jsonb_array_elements(json -> 'members' -> 'players')->'id'
并比较它们,但我所能完成的只是一个结果,其中任何比较的玩家 ID 在团队中可用,而不是全部可用。
postgresql-9.4 - PostgreSQL 9.4 查询调优
我有一个运行速度太慢的查询。
该函数sysdate()
返回没有时区的当前系统时间戳,last_day()
返回代表该月最后一天的时间戳。我创建这些是因为 Hibernate 不喜欢 Postgres 转换符号。
问题是规划器在有索引的地方进行全表扫描。以下是上述查询的解释计划:
请注意,规划器选择在最大的表上执行非常昂贵的全表扫描 -ip_address_usage_histories
并且vm_ip_address_histories
. 我尝试将配置参数更改enable_seqscan
为关闭,但这使问题变得更糟,总执行时间达到 63 秒。
以下是上述表格的描述:
Postgres 似乎没有指导计划者的查询提示。我也尝试了 from 子句inner join ... on ...
语法,但这也没有改善。
更新 1
我没有尝试用标准函数替换此函数,因为据我所知,Postgres 没有返回每月第一天的函数。
performance - Postgres 8.3 中的位图扫描比索引扫描 Postgres 9.4 快 2 倍?
在新硬件上将Postgres 从8.3.8升级到9.4.1。一组具有代表性的查询表明,新系统的性能提高了 1 倍到 3 倍。但是,我们的高负载区域之一总是较慢。
EXPLAIN
输出
8.3.8:
9.4.1:
索引
设置
改变以下范围并没有改善这种情况……</p>
我们也看到了类似的结果something%
。
在我们放弃这个几年之前,我想知道我是否可以做更多的事情来优化这些重要的案例。
陈述
表定义
简化和消毒。
新的测试结果
我已经尝试了一系列 default_statistics_target。
(在测试周期之间分析和预热)
该值可以在我们应用程序的其他领域产生重大影响。500 似乎很理想,5000+ 导致其他区域减速 3 倍到 10 倍。
我们的工具包的设计使得整个数据库应该始终在内存中。
使用 enable_bitmapscan = off @ 362 ms(结果与预期的计划相同)
早些时候我也试过 enable_indexscan = off @ 491 ms (当然触发了不同的计划)
是的,pg 8.3 的计划使用索引和位图索引扫描——我认为这是这个问题的“坚果”。
感谢您提供相关文章的链接。
关于列顺序的建议非常有趣。
在我们的规模和增长中,以下模式的最佳字段顺序是什么?
重组已加载表上的列顺序以实现收益的最有效方法是什么?
素数具有:
数据具有:
- 在这种方法中没有观察到可测量的差异,相同的计划(+/- 5 毫秒)
- 我们一般先尝试缩小data中搜索记录的范围,先用prime来检查acl、status等(prime是大小的1/10)
为了处理未锚定的情况,我们使用操作符类“text_pattern_ops”有第二个索引。
我们之前评估过多列 GIN 索引,但没有实现预期的收益。复杂,因为 A) 在 acl、状态和类似方面要满足多个标准,B) 需要点击“精确短语”,这需要重新检查结果短语。我对长期使用全文方法持乐观态度,到目前为止,我们尝试过的食谱并不比老式的 BTREE 方法更快或更稳定;然而。
杜松子酒试验 1
杜松子酒试验 2
我们已经有一个带有“ppid,deleted,tid”的素数索引,抱歉,最初并不清楚。
sql - Postgresql多个表具有相同的外键唯一约束
我在 PostgreSQL 9.4 上有以下表格
是否可以强制user_id
value 在表中是唯一dealer
的affiliate
?
postgresql - postgres 函数在 psql 控制台中运行良好,但在脚本中执行时挂起
我有一个通过循环运行并调用另一个函数的函数(我也尝试过使用同一函数中的所有代码)。内部函数通过另一个循环运行并在非临时表上插入。
会发生什么......当我在 psql 提示符下调用这个函数时,它运行没有问题,速度一致。
当我从脚本中调用它时
它运行了一段时间,似乎变慢了,然后基本上就挂在那里,没有抛出错误。整个过程在控制台中需要 1.5 小时,当尝试从脚本运行时,它持续了 30 多个小时,之后我终止了该进程。系统上没有运行任何其他可能导致访问冲突的程序。我检查了所有锁,没有发现任何问题。
有什么想法吗?
postgresql-9.4 - 在 postgreSQL 上使用本机复制或使用 Slony 复制 dbs
谁能帮我解决为什么他们使用 Slony 复制数据库而不使用 PostgreSQL 的本机复制的问题?谢谢
postgresql - PostgreSQL 中的反斜杠和单引号说明
我创建了一个类似这样的触发器:
当我执行触发器并得到结果时:
这是否意味着该\n
部分是真正的换行符?还是反斜杠 ( \
) 和n
字面上的字符?
sql - 有人可以举例说明 PostgreSQL 9.4 中有序集函数的用例吗?
我刚刚阅读了文档,特别是此页面,但我无法找出一个示例(例如分析中此功能的用例),我将在其中使用它,请您帮我解决这个问题吗?
postgresql - SELECT * 除了第 n 列
例如,是否可以SELECT *
但没有n-th
列2nd
?
我有一些视图有 4 列和 5 列(每列都有不同的列名,第二列除外),但我不想显示第二列。
无需列出所有列(因为它们都有不同的列名)。