文章 2018-10-02 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 15章 并行查询_15.4. 并行安全性

15.4. 并行安全性 15.4.1. 为函数和聚合加并行标签 规划器把查询中涉及的操作分类成并行安全、并行受限 或者并行不安全。并行安全的操作不会与并行查询的使用产生冲突。 并行受限的操作不能在并行工作者中执行,但是能够在并行查询的领导者中执行。 因此,并行受限的操作不能出现在Gather或Gather Merge节点之下, 但是能够出现在包含有这样节点的计划的其他位置。并行...

文章 2018-10-02 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 15章 并行查询_15.3. 并行计划

15.3. 并行计划 15.3.1. 并行扫描 15.3.2. 并行连接 15.3.3. 并行聚合 15.3.4. 并行计划小贴士 因为每个工作者只执行完成计划的并行部分,所以不可能简单地产生一个普通查询计划并使用多个工作者运行它。每个工作者都会产生输出结果集的一个完全拷贝,因而查询并不会比普通查询运行得更快甚至还会产生不正确的结果。相反,计划的并行部分一定被查询优化器在内部当作一个部分...

文章 2018-10-02 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 15章 并行查询_15.2. 何时会用到并行查询?

15.2. 何时会用到并行查询? 有几种设置会导致查询规划器在任何情况下都不生成并行查询计划。为了让并行查询计划能够被生成,必须配置好下列设置。 max_parallel_workers_per_gather必须被设置为大于零的值。这是一种特殊情况,更加普遍的原则是所用的工作者数量不能超过max_parallel_workers_per_gather所配置的数量。 dynamic_s.....

文章 2018-10-02 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 15章 并行查询_15.1. 并行查询如何工作

15.1. 并行查询如何工作 当优化器判断对于某一个特定的查询,并行查询是最快的执行策略时,优化器将创建一个查询计划。该计划包括一个Gather或Gather Merge节点。下面是一个简单的例子: EXPLAIN SELECT * FROM pgbench_accounts WHERE filler LIKE '%x%'; ...

文章 2018-10-02 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 14 章 性能提示

第 14 章 性能提示 目录 14.1. 使用EXPLAIN 14.1.1. EXPLAIN基础 14.1.2. EXPLAIN ANALYZE 14.1.3. 警告 14.2. 规划器使用的统计信息 14.2.1. 单列统计 14.2.2. 扩展统计 14.3. 用显式JOIN子句控制规划器 14.4. 填充一个数据库 14.4.1. 禁用自动提...

文章 2018-10-02 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 14 章 性能提示_14.5. 非持久设置

14.5. 非持久设置 持久性是数据库的一个保证已提交事务的记录的特性(即使是发生服务器崩溃或断电)。 然而,持久性会明显增加数据库的负荷,因此如果你的站点不需要这个保证,PostgreSQL可以被配置成运行更快。在这种情况下,你可以调整下列配置来提高性能。除了下面列出的,在数据库软件崩溃的情况下也能保证持久性。当这些设置被使用时,只有突然的操作系统停止会产生数据丢失或损坏的风险。 将....

文章 2018-10-02 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 14 章 性能提示_14.4. 填充一个数据库

14.4. 填充一个数据库 14.4.1. 禁用自动提交 14.4.2. 使用COPY 14.4.3. 移除索引 14.4.4. 移除外键约束 14.4.5. 增加maintenance_work_mem 14.4.6. 增加max_wal_size 14.4.7. 禁用 WAL 归档和流复制 14.4.8. 事后运行ANALYZE 14.4.9. 关于pg_dump的一些注记 第一次填...

文章 2018-10-02 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 14 章 性能提示_14.3. 用显式JOIN子句控制规划器

14.3. 用显式JOIN子句控制规划器 我们可以在一定程度上用显式JOIN语法控制查询规划器。要明白为什么需要它,我们首先需要一些背景知识。 在一个简单的连接查询中,例如: SELECT * FROM a, b, c WHERE a.id = b.id AND b.ref = c.id; 规划器可以自由地按照任何顺序连接给定的表。例如,它可以生成一个使用WHERE条件a.id = b....

文章 2018-10-02 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 14 章 性能提示_14.2. 规划器使用的统计信息

14.2. 规划器使用的统计信息 14.2.1. 单列统计 14.2.2. 扩展统计 14.2.1. 单列统计 如我们在上一节所见,查询规划器需要估计一个查询要检索的行数,这样才能对查询计划做出好的选择。 本节对系统用于这些估计的统计信息进行一个快速的介绍。 统计信息的一个部分就是每个表和索引中的项的总数,以及每个表和索引占用的磁盘块数。这些信息保存在pg_class表的rel...

文章 2018-10-02 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 14 章 性能提示_14.1. 使用EXPLAIN

14.1. 使用EXPLAIN 14.1.1. EXPLAIN基础 14.1.2. EXPLAIN ANALYZE 14.1.3. 警告 PostgreSQL为每个收到查询产生一个查询计划。 选择正确的计划来匹配查询结构和数据的属性对于好的性能来说绝对是最关键的,因此系统包含了一个复杂的规划器来尝试选择好的计划。 你可以使用EXPLAIN命令察看规划器为任何查询生成的...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

数据库

分享数据库前沿,解构实战干货,推动数据库技术变革

+关注