介绍
无法在postgresql中使用插入选择进行查询如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
换用创建表或者选择进入或者导入导出。
首先跟踪如下查询语句的执行计划:
select count(*),得到test t1, test1 t2 where t1.id =, t2.id ; postgres=#, explain analyze  select count(*),得到test t1, test1 t2 where t1.id =, t2.id ; ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,QUERY PLAN ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ------------------------------------------------------------------------------------------- Finalize Aggregate (成本=34244.16,34244.17,行=1,宽度=8),(actual 时间=683.246,715.324,行=1,循环=1) →,才能Gather (成本=34243.95,34244.16,行=2,宽度=8),(actual 时间=681.474,715.311,行=3,循环=1) ,,,,Workers 计划:2 ,,,,Workers 启动:2 ,,,,,,Partial Aggregate (成本=33243.95,33243.96,行=1,宽度=8),(actual 时间=674.689,675.285,行=1,循环=3) ,,,,,,,,,Parallel Hash Join (成本=15428.00,32202.28,行=416667,宽度=0),(actual 时间=447.799,645.689,行=333333,循环=3) ,,,,,,,,,,Hash 电导率:,(=t1.id t2.id) ,,,,,,,,,,,,Parallel Seq Scan 提醒test t1 (成本=0.00,8591.67,行=416667,宽度=4),(actual 时间=0.025,74.010,行=333333,循环=3) ,,,,,,,,,,,,Parallel Hash (成本=8591.67,8591.67,行=416667,宽度=4),(actual 时间=260.052,260.053,行=333333,循环=3) ,,,,,,,,,,,,,桶:,131072,批次:,16,Memory 用法:3520 kb ,,,,,,,,,,,,,,,Parallel Seq Scan 提醒test1 t2 (成本=0.00,8591.67,行=416667,宽度=4),(actual 时间=0.032,104.804,行=333333,循环=3) ,Planning 时间:0.420,女士 ,Execution 时间:715.447,女士 (13,行)
可以看到走了两个工人。
下边看一下插入选择:
postgres=#, explain analyze insert into va select count(*),得到test t1, test1 t2 where t1.id =, t2.id ,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,QUERY PLAN ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ------------------------------------------------------------------------------------------- Insert 提醒va (成本=73228.00,73228.02,行=1,宽度=4),(actual 时间=3744.179,3744.187,行=0,循环=1) →,才能Subquery Scan 提醒“* SELECT *“,(成本=73228.00,73228.02,行=1,宽度=4),(actual 时间=3743.343,3743.352,行=1,循环=1) ,,,,,,Aggregate (成本=73228.00,73228.01,行=1,宽度=8),(actual 时间=3743.247,3743.254,行=1,循环=1) ,,,,,,,,,Hash Join (成本=30832.00,70728.00,行=1000000,宽度=0),(actual 时间=1092.295,3511.301,行=1000000,循环=1) ,,,,,,,,,,Hash 电导率:,(=t1.id t2.id) ,,,,,,,,,,,,Seq Scan 提醒test t1 (成本=0.00,14425.00,行=1000000,宽度=4),(actual 时间=0.030,421.537,行=1000000,循环=1) null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null无法在postgresql中使用插入选择进行查询如何解决