欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PostgreSQL并行計算算法及參數(shù)強制并行度設(shè)置方法

 更新時間:2022年04月06日 15:12:57   作者:數(shù)據(jù)庫集中營  
這篇文章主要介紹了PostgreSQL 并行計算算法,參數(shù),強制并行度設(shè)置,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、優(yōu)化器并行計算的并行度計算方法

1、總worker進程數(shù)

postgres=# show  ;      
 max_worker_processes     
----------------------    
 128    
(1 row)   

2、所有會話,在同一時刻的QUERY,并行計算最大允許開啟的WORKER數(shù)。

max_parallel_workers    

3、單條QUERY中,每個node最多允許開啟的并行計算WORKER數(shù)

postgres=# show max_parallel_workers_per_gather ;    
 max_parallel_workers_per_gather     
---------------------------------    
 0    
(1 row)    

4、單個query, node的并行度

Min(parallel_workers(表級設(shè)置,沒有設(shè)置則,根據(jù)表大小計算得到), max_parallel_workers_per_gather)    

5、表級并行度參數(shù),默認不設(shè)置,從表大小計算。

postgres=# alter table pa set (parallel_workers =32);    
ALTER TABLE    

6、真實并行度算法

min (max_worker_processes - 已運行workers ,     
     max_parallel_workers - 其他會話當前真實啟用的并行度 ,      
     Min(parallel_workers(表級設(shè)置,沒有設(shè)置則,根據(jù)表大小計算得到), max_parallel_workers_per_gather)     
)   

二、優(yōu)化器是否選擇并行計算

優(yōu)化器是否使用并行計算,取決于CBO,選擇成本最低的方法,并行計算成本估算,成本因子參數(shù)如下:

postgres=# show parallel_tuple_cost ;    
 parallel_tuple_cost     
---------------------    
 0    
(1 row)    
postgres=# show parallel_setup_cost ;    
 parallel_setup_cost     
---------------------    
 0    
(1 row)    

如果非并行計算的執(zhí)行計劃成本低于并行計算的成本,則不使用并行計算。

三、優(yōu)化器是否忽略并行計算

如果表掃描或索引掃描的表或索引低于設(shè)置的閾值,這個表掃描或索引掃描則不啟用并行計算。

postgres=# show min_parallel_table_scan_size ;    
 min_parallel_table_scan_size     
------------------------------    
 0    
(1 row)    
postgres=# show min_parallel_index_scan_size ;    
 min_parallel_index_scan_size     
------------------------------    
 0    
(1 row)    

四、優(yōu)化器強制選擇并行計算參數(shù)

#force_parallel_mode = on

五、并行計算相關(guān)參數(shù)

1、創(chuàng)建索引,CREATE TABLE AS,SELECT INTO 的并行度

postgres=# show max_parallel_maintenance_workers ;    
 max_parallel_maintenance_workers     
----------------------------------    
 24    
(1 row)   

2、并行分區(qū)表JOIN

#enable_partitionwise_join = on    

3、并行分區(qū)表分區(qū)聚合

#enable_partitionwise_aggregate = on    

4、并行HASH計算

#enable_parallel_hash = on    

5、LEADER主動獲取并行WORKER的返回結(jié)果

parallel_leader_participation = on 

6、并行APPEND(分區(qū)表),UNION ALL查詢

#enable_parallel_append = on    

六、強行并行

強制并行度24

1、總的可開啟的WORKER足夠大  
postgres=# show max_worker_processes ;  
 max_worker_processes   
----------------------  
 128  
(1 row)  
  
2、所有會話同時執(zhí)行并行計算的并行度足夠大  
postgres=# set max_parallel_workers=64;  
SET  
3、單個QUERY中并行計算NODE開啟的WORKER=24  
postgres=# set max_parallel_workers_per_gather =24;  
4、所有表和索引掃描允許并行  
postgres=# set min_parallel_table_scan_size =0;  
postgres=# set min_parallel_index_scan_size =0;  
5、并行計算優(yōu)化器成本設(shè)置為0  
postgres=# set parallel_tuple_cost =0;  
postgres=# set parallel_setup_cost =0;  
6、設(shè)置表級并行度為24  
postgres=# alter table pa set (parallel_workers =24);  
ALTER TABLE  
7、效果,強制24并行。  
postgres=# explain (analyze) select count(*) from pa;  
                                                             QUERY PLAN                                                                
-------------------------------------------------------------------------------------------------------------------------------------  
 Finalize Aggregate  (cost=1615.89..1615.89 rows=1 width=8) (actual time=81.711..81.711 rows=1 loops=1)  
   ->  Gather  (cost=1615.83..1615.83 rows=24 width=8) (actual time=81.572..90.278 rows=25 loops=1)  
         Workers Planned: 24  
         Workers Launched: 24  
         ->  Partial Aggregate  (cost=1615.83..1615.83 rows=1 width=8) (actual time=58.411..58.411 rows=1 loops=25)  
               ->  Parallel Seq Scan on pa  (cost=0.00..712.71 rows=416667 width=0) (actual time=0.012..35.428 rows=400000 loops=25)  
 Planning Time: 0.449 ms  
 Execution Time: 90.335 ms  
(8 rows)  

七、函數(shù)并行

1、并行函數(shù)

create or replace function ftest(int) returns boolean as $$    
  select $1<1000;    
$$ language sql strict    
parallel safe;    
    
-- parallel safe 語法  

2、并行聚合函數(shù)

combinefunc    

到此這篇關(guān)于PostgreSQL 并行計算算法,參數(shù),強制并行度設(shè)置的文章就介紹到這了,更多相關(guān)PostgreSQL 并行計算算法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mac系統(tǒng)重置PostgreSQL密碼的方法示例代碼

    Mac系統(tǒng)重置PostgreSQL密碼的方法示例代碼

    PostgreSQL 是一個免費的對象-關(guān)系數(shù)據(jù)庫服務(wù)器(ORDBMS),在靈活的BSD許可證下發(fā)行。這篇文章主要介紹了Mac系統(tǒng)重置PostgreSQL密碼的方法示例代碼,需要的朋友可以參考下
    2020-02-02
  • postgreSQL 數(shù)字與字符串類型轉(zhuǎn)換操作

    postgreSQL 數(shù)字與字符串類型轉(zhuǎn)換操作

    這篇文章主要介紹了postgreSQL 數(shù)字與字符串類型轉(zhuǎn)換操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • PostgreSQL教程(二):模式Schema詳解

    PostgreSQL教程(二):模式Schema詳解

    這篇文章主要介紹了PostgreSQL教程(二):模式Schema詳解,本文講解了創(chuàng)建模式、public模式、權(quán)限、刪除模式、模式搜索路徑等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • PostgreSQL 創(chuàng)建表分區(qū)

    PostgreSQL 創(chuàng)建表分區(qū)

    在pg里表分區(qū)是通過表繼承來實現(xiàn)的,一般都是建立一個主表,里面是空,然后每個分區(qū)都去繼承它。
    2009-09-09
  • 如何獲取PostgreSQL數(shù)據(jù)庫中的JSON值

    如何獲取PostgreSQL數(shù)據(jù)庫中的JSON值

    這篇文章主要介紹了如何獲取PostgreSQL數(shù)據(jù)庫中的JSON值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 在Ubuntu中安裝Postgresql數(shù)據(jù)庫的步驟詳解

    在Ubuntu中安裝Postgresql數(shù)據(jù)庫的步驟詳解

    PostgreSQL 是一款強大的,開源的,對象關(guān)系型數(shù)據(jù)庫系統(tǒng)。它支持所有的主流操作系統(tǒng),包括 Linux、Unix(AIX、BSD、HP-UX,SGI IRIX、Mac OS、Solaris、Tru64) 以及 Windows 操作系統(tǒng)。本文給大家介紹了在Ubuntu中安裝Postgresql數(shù)據(jù)庫的步驟,需要的朋友可以參考下。
    2017-09-09
  • pgsql之pg_stat_replication的使用詳解

    pgsql之pg_stat_replication的使用詳解

    這篇文章主要介紹了pgsql之pg_stat_replication的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL教程(二十):PL/pgSQL過程語言

    PostgreSQL教程(二十):PL/pgSQL過程語言

    這篇文章主要介紹了PostgreSQL教程(二十):PL/pgSQL過程語言,本文講解了、PL/pgSQL概述、PL/pgSQL的結(jié)構(gòu)、聲明、基本語句、控制結(jié)構(gòu)等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • postgresql踩坑系列之關(guān)于to_date()問題

    postgresql踩坑系列之關(guān)于to_date()問題

    這篇文章主要介紹了postgresql踩坑系列之關(guān)于to_date()問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • PostgreSQL?Log日志模塊原理及存在的問題詳解

    PostgreSQL?Log日志模塊原理及存在的問題詳解

    這篇文章主要給大家介紹了關(guān)于PostgreSQL?Log日志模塊原理及存在的問題的相關(guān)資料,先日志在我們開發(fā)過程中占據(jù)了一個非常重要的地位,是開發(fā)和運維管理之間的橋梁,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-02-02

最新評論