欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > postgresql insert into select無法使用并行查詢的解決

postgresql insert into select無法使用并行查詢的解決

熱門標(biāo)簽:海豐有多少商家沒有地圖標(biāo)注 合肥公司外呼系統(tǒng)運營商 美容工作室地圖標(biāo)注 漯河外呼電話系統(tǒng) 辦公外呼電話系統(tǒng) 外呼調(diào)研系統(tǒng) 地圖標(biāo)注和圖片名稱的區(qū)別 重慶自動外呼系統(tǒng)定制 打電話智能電銷機器人授權(quán)

本文信息基于PG13.1。

從PG9.6開始支持并行查詢。PG11開始支持CREATE TABLE … AS、SELECT INTO以及CREATE MATERIALIZED VIEW的并行查詢。

先說結(jié)論:

換用create table as 或者select into或者導(dǎo)入導(dǎo)出。

首先跟蹤如下查詢語句的執(zhí)行計劃:

select count(*) from test t1,test1 t2 where t1.id = t2.id ;
postgres=# explain analyze select count(*) from test t1,test1 t2 where t1.id = t2.id ;
                                    QUERY PLAN                                    
--------------------------------------------------------------------------------------------------------------------------------------------------------
 Finalize Aggregate (cost=34244.16..34244.17 rows=1 width=8) (actual time=683.246..715.324 rows=1 loops=1)
  -> Gather (cost=34243.95..34244.16 rows=2 width=8) (actual time=681.474..715.311 rows=3 loops=1)
     Workers Planned: 2
     Workers Launched: 2
     -> Partial Aggregate (cost=33243.95..33243.96 rows=1 width=8) (actual time=674.689..675.285 rows=1 loops=3)
        -> Parallel Hash Join (cost=15428.00..32202.28 rows=416667 width=0) (actual time=447.799..645.689 rows=333333 loops=3)
           Hash Cond: (t1.id = t2.id)
           -> Parallel Seq Scan on test t1 (cost=0.00..8591.67 rows=416667 width=4) (actual time=0.025..74.010 rows=333333 loops=3)
           -> Parallel Hash (cost=8591.67..8591.67 rows=416667 width=4) (actual time=260.052..260.053 rows=333333 loops=3)
              Buckets: 131072 Batches: 16 Memory Usage: 3520kB
              -> Parallel Seq Scan on test1 t2 (cost=0.00..8591.67 rows=416667 width=4) (actual time=0.032..104.804 rows=333333 loops=3)
 Planning Time: 0.420 ms
 Execution Time: 715.447 ms
(13 rows)

可以看到走了兩個Workers。

下邊看一下insert into select:

postgres=# explain analyze insert into va select count(*) from test t1,test1 t2 where t1.id = t2.id ;     
                                  QUERY PLAN                                  
--------------------------------------------------------------------------------------------------------------------------------------------------
 Insert on va (cost=73228.00..73228.02 rows=1 width=4) (actual time=3744.179..3744.187 rows=0 loops=1)
  -> Subquery Scan on "*SELECT*" (cost=73228.00..73228.02 rows=1 width=4) (actual time=3743.343..3743.352 rows=1 loops=1)
     -> Aggregate (cost=73228.00..73228.01 rows=1 width=8) (actual time=3743.247..3743.254 rows=1 loops=1)
        -> Hash Join (cost=30832.00..70728.00 rows=1000000 width=0) (actual time=1092.295..3511.301 rows=1000000 loops=1)
           Hash Cond: (t1.id = t2.id)
           -> Seq Scan on test t1 (cost=0.00..14425.00 rows=1000000 width=4) (actual time=0.030..421.537 rows=1000000 loops=1)
           -> Hash (cost=14425.00..14425.00 rows=1000000 width=4) (actual time=1090.078..1090.081 rows=1000000 loops=1)
              Buckets: 131072 Batches: 16 Memory Usage: 3227kB
              -> Seq Scan on test1 t2 (cost=0.00..14425.00 rows=1000000 width=4) (actual time=0.021..422.768 rows=1000000 loops=1)
 Planning Time: 0.511 ms
 Execution Time: 3745.633 ms
(11 rows)

可以看到并沒有Workers的指示,沒有啟用并行查詢。

即使開啟強制并行,也無法走并行查詢。

postgres=# set force_parallel_mode =on;
SET
postgres=# explain analyze insert into va select count(*) from test t1,test1 t2 where t1.id = t2.id ;
                                  QUERY PLAN                                  
--------------------------------------------------------------------------------------------------------------------------------------------------
 Insert on va (cost=73228.00..73228.02 rows=1 width=4) (actual time=3825.042..3825.049 rows=0 loops=1)
  -> Subquery Scan on "*SELECT*" (cost=73228.00..73228.02 rows=1 width=4) (actual time=3824.976..3824.984 rows=1 loops=1)
     -> Aggregate (cost=73228.00..73228.01 rows=1 width=8) (actual time=3824.972..3824.978 rows=1 loops=1)
        -> Hash Join (cost=30832.00..70728.00 rows=1000000 width=0) (actual time=1073.587..3599.402 rows=1000000 loops=1)
           Hash Cond: (t1.id = t2.id)
           -> Seq Scan on test t1 (cost=0.00..14425.00 rows=1000000 width=4) (actual time=0.034..414.965 rows=1000000 loops=1)
           -> Hash (cost=14425.00..14425.00 rows=1000000 width=4) (actual time=1072.441..1072.443 rows=1000000 loops=1)
              Buckets: 131072 Batches: 16 Memory Usage: 3227kB
              -> Seq Scan on test1 t2 (cost=0.00..14425.00 rows=1000000 width=4) (actual time=0.022..400.624 rows=1000000 loops=1)
 Planning Time: 0.577 ms
 Execution Time: 3825.923 ms
(11 rows)

原因在官方文檔有寫:

The query writes any data or locks any database rows. If a query contains a data-modifying operation either at the top level or within a CTE, no parallel plans for that query will be generated. As an exception, the commands CREATE TABLE … AS, SELECT INTO, and CREATE MATERIALIZED VIEW which create a new table and populate it can use a parallel plan.

解決方案有如下三種:

1.select into

postgres=# explain analyze select count(*) into vaa from test t1,test1 t2 where t1.id = t2.id ;
                                    QUERY PLAN                                    
--------------------------------------------------------------------------------------------------------------------------------------------------------
 Finalize Aggregate (cost=34244.16..34244.17 rows=1 width=8) (actual time=742.736..774.923 rows=1 loops=1)
  -> Gather (cost=34243.95..34244.16 rows=2 width=8) (actual time=740.223..774.907 rows=3 loops=1)
     Workers Planned: 2
     Workers Launched: 2
     -> Partial Aggregate (cost=33243.95..33243.96 rows=1 width=8) (actual time=731.408..731.413 rows=1 loops=3)
        -> Parallel Hash Join (cost=15428.00..32202.28 rows=416667 width=0) (actual time=489.880..700.830 rows=333333 loops=3)
           Hash Cond: (t1.id = t2.id)
           -> Parallel Seq Scan on test t1 (cost=0.00..8591.67 rows=416667 width=4) (actual time=0.033..87.479 rows=333333 loops=3)
           -> Parallel Hash (cost=8591.67..8591.67 rows=416667 width=4) (actual time=266.839..266.840 rows=333333 loops=3)
              Buckets: 131072 Batches: 16 Memory Usage: 3520kB
              -> Parallel Seq Scan on test1 t2 (cost=0.00..8591.67 rows=416667 width=4) (actual time=0.058..106.874 rows=333333 loops=3)
 Planning Time: 0.319 ms
 Execution Time: 783.300 ms
(13 rows)

2.create table as

postgres=# explain analyze create table vb as select count(*) from test t1,test1 t2 where t1.id = t2.id ;
                                   QUERY PLAN                                    
-------------------------------------------------------------------------------------------------------------------------------------------------------
 Finalize Aggregate (cost=34244.16..34244.17 rows=1 width=8) (actual time=540.120..563.733 rows=1 loops=1)
  -> Gather (cost=34243.95..34244.16 rows=2 width=8) (actual time=537.982..563.720 rows=3 loops=1)
     Workers Planned: 2
     Workers Launched: 2
     -> Partial Aggregate (cost=33243.95..33243.96 rows=1 width=8) (actual time=526.602..527.136 rows=1 loops=3)
        -> Parallel Hash Join (cost=15428.00..32202.28 rows=416667 width=0) (actual time=334.532..502.793 rows=333333 loops=3)
           Hash Cond: (t1.id = t2.id)
           -> Parallel Seq Scan on test t1 (cost=0.00..8591.67 rows=416667 width=4) (actual time=0.018..57.819 rows=333333 loops=3)
           -> Parallel Hash (cost=8591.67..8591.67 rows=416667 width=4) (actual time=189.502..189.503 rows=333333 loops=3)
              Buckets: 131072 Batches: 16 Memory Usage: 3520kB
              -> Parallel Seq Scan on test1 t2 (cost=0.00..8591.67 rows=416667 width=4) (actual time=0.023..77.786 rows=333333 loops=3)
 Planning Time: 0.189 ms
 Execution Time: 565.448 ms
(13 rows)

3.或者通過導(dǎo)入導(dǎo)出的方式,例如:

psql -h localhost -d postgres -U postgres -c "select count(*) from test t1,test1 t2 where t1.id = t2.id " -o result.csv -A -t -F ","
psql -h localhost -d postgres -U postgres -c "COPY va FROM 'result.csv' WITH (FORMAT CSV, DELIMITER ',', HEADER FALSE, ENCODING 'windows-1252')"

一些場景下也會比非并行快。

到此這篇關(guān)于postgresql insert into select無法使用并行查詢的解決的文章就介紹到這了,更多相關(guān)postgresql insert into select并行查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • postgresql 13.1 insert into select并行查詢的實現(xiàn)
  • mysql 中 replace into 與 insert into on duplicate key update 的用法和不同點實例分析
  • SELECT INTO 和 INSERT INTO SELECT 兩種表復(fù)制語句詳解(SQL數(shù)據(jù)庫和Oracle數(shù)據(jù)庫的區(qū)別)
  • php mysql insert into 結(jié)合詳解及實例代碼
  • PHP+MySQL之Insert Into數(shù)據(jù)插入用法分析
  • 正確使用MySQL INSERT INTO語句
  • MySql中使用INSERT INTO語句更新多條數(shù)據(jù)的例子
  • SQL insert into語句寫法講解

標(biāo)簽:株洲 烏海 來賓 蚌埠 珠海 衡陽 錦州 晉城

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《postgresql insert into select無法使用并行查詢的解決》,本文關(guān)鍵詞  postgresql,insert,into,select,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《postgresql insert into select無法使用并行查詢的解決》相關(guān)的同類信息!
  • 本頁收集關(guān)于postgresql insert into select無法使用并行查詢的解決的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    亚洲超碰97人人做人人爱| 91色在线porny| 波多野结衣av在线免费观看| 欧美日韩一区在线观看| 亚洲人成网站色在线观看| 国产九色sp调教91| 四虎国产成人精品免费一女五男| 欧美刺激脚交jootjob| 免费一级欧美片在线观看| 水蜜桃av无码| 欧美一级淫片007| 丝袜美腿一区二区三区| 玖玖爱在线精品视频| 欧美一区二区视频在线观看2020| 午夜精品久久久久| 黄色录像a级片| 欧美成人福利视频| 精品亚洲国内自在自线福利| 国产成人一区二区在线观看| 久久这里只有精品视频网| 极品少妇一区二区三区精品视频| 中文字幕av久久爽一区| 国产女同互慰高潮91漫画| 国产成人av资源| 色婷婷久久一区二区三区麻豆| 亚洲日韩欧美一区二区在线| 69久久精品无码一区二区 | 国产在线观看一区二区| 亚洲一二三精品| 中文字幕不卡一区| 9i在线看片成人免费| 欧美色图免费看| 视频在线在亚洲| 亚洲国产日韩一区无码精品久久久| 久久精品日产第一区二区三区高清版| 国产精品亚洲人在线观看| 午夜国产福利一区二区| 一区二区理论电影在线观看| 在线看黄色的网站| 精品国产网站在线观看| 懂色av中文字幕一区二区三区| 91精品91久久久中77777| 亚洲第一搞黄网站| 国产三级av在线播放| 国产精品色婷婷| 亚洲女则毛耸耸bbw| 日韩美女一区二区三区四区| 国产一区二区网址| 91久久香蕉国产日韩欧美9色| 午夜av电影一区| 国产三级黄色片| 亚洲激情图片qvod| 男女黄床上色视频| 中文字幕在线观看不卡| 亚洲美女精品视频| 久久午夜国产精品| 99久久99久久综合| 日韩一级免费观看| 粉嫩一区二区三区性色av| 欧美日韩日本视频| 国产一区啦啦啦在线观看| 国产女人18水真多毛片18精品| 亚洲超碰97人人做人人爱| 亚洲色图日韩精品| 亚洲第一综合色| 97在线观看视频免费| 性欧美疯狂xxxxbbbb| 欧美性生给视频| 香蕉成人伊视频在线观看| 国产精品久久国产精麻豆96堂| 亚洲香蕉伊在人在线观| 国产123在线| 一区二区三区免费在线观看| 蜜桃av乱码一区二区三区| 一区二区三区毛片| 国产精品久久国产精麻豆96堂| 五月激情综合色| 丝袜美腿小色网| 久久成人麻豆午夜电影| 欧美吻胸吃奶大尺度电影| 国产一区二区三区不卡在线观看| 欧美日韩国产一区二区三区地区| 国产成a人无v码亚洲福利| 欧美一区二区三区四区视频| 成人精品视频一区| 久久亚洲捆绑美女| 欧类av怡春院| 亚洲精品ww久久久久久p站 | 奇米精品一区二区三区在线观看| av女名字大全列表| 国产中文字幕一区| 日韩一区二区三区免费看| 91丝袜美腿高跟国产极品老师| 久久奇米777| 最近中文字幕无免费| 一区二区三区产品免费精品久久75| 波多野结衣欲乱| 蜜桃视频在线一区| 欧美美女喷水视频| 91首页免费视频| 中文字幕不卡三区| wwwww黄色| 六月丁香综合在线视频| 91麻豆精品国产91久久久| 91免费国产在线| 中文字幕亚洲一区二区va在线| 国产第一页精品| 久草精品在线观看| 欧美大片一区二区三区| 日本一卡二卡在线| 亚洲一卡二卡三卡四卡| 日本高清不卡aⅴ免费网站| 国产91色综合久久免费分享| 久久综合网色—综合色88| 右手影院亚洲欧美| 日本成人在线网站| 日韩一区二区在线看| 男人的天堂影院| 五月婷婷久久丁香| 51久久夜色精品国产麻豆| 亚洲欧洲国产视频| 亚洲韩国一区二区三区| 欧美午夜不卡视频| 国产伦理在线观看| 亚洲国产成人tv| 欧美精品乱码久久久久久按摩| 制服下的诱惑暮生| 亚洲一区二区三区四区中文字幕| 在线观看视频欧美| 日本成人在线免费观看| 夜夜揉揉日日人人青青一国产精品| 在线观看免费一区| 2018国产精品| 午夜a成v人精品| 精品少妇一区二区三区在线视频| 超碰97人人干| 国产一区二区三区在线观看精品 | 国产精品私人自拍| 色欲人妻综合网| 91小视频在线| 亚洲国产精品久久人人爱| 欧美精品免费视频| 播金莲一级淫片aaaaaaa| 久久精品国产免费看久久精品| 精品少妇一区二区三区在线播放 | 久久久久久久网| 男人天堂资源网| 成人精品视频网站| 一区二区三区成人| 丁香婷婷综合五月| 亚洲欧美日韩国产另类专区| 欧洲精品在线观看| 欧美熟妇精品一区二区蜜桃视频| 奇米影视在线99精品| 久久久av毛片精品| 色综合天天综合网国产成人综合天| 91网址在线看| 天堂久久久久va久久久久| 欧美tk丨vk视频| 成人无码精品1区2区3区免费看| 成人黄色电影在线 | 欧美日韩久久一区二区| 欧亚乱熟女一区二区在线| 美女国产一区二区三区| 国产欧美一区二区三区网站| 色系网站成人免费| 国产精品入口麻豆| 国产又粗又猛又爽又黄91精品| 国产精品乱码妇女bbbb| 欧美日韩一区二区三区在线看 | 亚洲天堂av网站| 精品写真视频在线观看| 中文字幕一区二区在线播放| 欧美日韩日日摸| 91社区视频在线观看| 99久久99久久精品免费看蜜桃| 日韩精品欧美精品| 亚洲国产精品99久久久久久久久| 欧美丝袜第三区| 少妇无套高潮一二三区| 99久久久国产精品免费蜜臀| 日韩vs国产vs欧美| 国产精品久久777777| 91精品国产一区二区三区蜜臀| 一级免费黄色录像| 亚洲视频 中文字幕| 国产麻豆一精品一av一免费| 亚洲男人的天堂在线aⅴ视频| 日韩精品在线网站| 91国产丝袜在线播放| 国产熟妇搡bbbb搡bbbb| 99精品黄色片免费大全| 麻豆精品一区二区三区| 亚洲免费观看高清| 久久久一区二区三区捆绑**| 欧美午夜一区二区三区| 国产18无套直看片| 先锋资源av在线| 99久久精品国产网站| 精品一区免费av|