问题描述
我有这两个表(由于安全原因不能共享)这两个表每个表都有近 250,000 条记录,使用 Postgres 9.6 及以下版本是执行查询计划。此查询永远挂起。
有什么快速帮助吗?
CREATE TABLE test.TableA (
last_update_date date NULL,src_party_country_id varchar(255) NULL,src_party_id varchar(255) NULL,country_cd varchar(255) NULL,lifecycle_status_cd varchar(10) NULL DEFAULT 'A'::character varying,violated varchar(1) NULL
);
CREATE TABLE test.TableB (
last_update_date timestamp NULL,"name" varchar(300) NULL,.....
);
TableA
ACCT PROCID 1499 A 1970-01-01 00:00:00 MIGHTY PDF 19582 3951931 A DMIGHTY Y
ACCT PROCID 1525 A 2019-05-17 00:00:00 MIGHTY 79175 PDF 19583 10005322 A DMIGHTY Y
-- There Could be multiple duplicate records or no records maching
TableB
ACCT PROCID 1525 A 17-05-19 12:00:00 MIGHTY 79175 PDF 630 10005322 A DMIGHTY N
ACCT PROCID 1499 A 01-01-70 12:00:00 MIGHTY PDF 629 3951931 A DMIGHTY N
这里是解释-
nested Loop (cost=0.42..1258454.96 rows=489356232944 width=1409)
-> Seq Scan on TableA child (cost=0.00..7323.64 rows=233382 width=60)
Filter: (((src_system)::text = 'ABC'::text) AND ((isBuly)::text = 'N'::text) AND ((status)::text = ANY ('{A,P,T,X}'::text[])))
-> Index Scan using TableA_id_idx on c_l_party parent (cost=0.42..3.59 rows=177 width=1349)
Index Cond: ((src_party_id)::text = (child.src_party_id)::text)
即使是这个查询也被拖延了
SELECT count(*) FROM
test.TableA_COUNTRY CHILD
test.TableB PARENT,WHERE
PARENT.violated = CHILD.violated;
AND CHILD.SRC_SYstem = 'ABC'
AND CHILD.isBuly = 'N' ;
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)