暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

AntDB 数据库分布式功能-FQS增强7

tocata 2024-09-02
25
distinctClause 且 distinctClause 里面没有分布列
# 测试用表和数据请参加附录
# 单节点(绑定变量的):distinctClause且distinctClause里面没有分布列的
antdb=# prepare s_distinct_single(int) as SELECT distinct province FROM fqs_window_test WHERE id = $1;
PREPARE
antdb=# EXPLAIN (verbose) execute s_distinct_single(1);
                                              QUERY PLAN
------------------------------------------------------------------------------------------------------
 Data Node Scan on "__REMOTE_FQS_QUERY__"  (cost=0.00..0.00 rows=0 width=0)
   Output: fqs_window_test.province
   Node expr: $1
   Remote query: SELECT DISTINCT province FROM public.fqs_window_test fqs_window_test WHERE (id = $1)
(4 rows)


# 单节点(静态常量的):distinctClause且distinctClause里面没有分布列的
antdb=# EXPLAIN (verbose) SELECT distinct province FROM fqs_window_test WHERE id = 1;
                                             QUERY PLAN
-----------------------------------------------------------------------------------------------------
 Data Node Scan on "__REMOTE_FQS_QUERY__"  (cost=0.00..0.00 rows=0 width=0)
   Output: fqs_window_test.province
   Node/s: DN2
   Remote query: SELECT DISTINCT province FROM public.fqs_window_test fqs_window_test WHERE (id = 1)
(4 rows)
复制
普通子查询
# 测试用表和数据请参加附录
# 带动态参数的普通子查询
antdb=# prepare s_common_subquery(int) as SELECT * FROM (SELECT * FROM fqs_window_test WHERE id = $1) a;
PREPARE
antdb=# EXPLAIN (verbose) execute s_common_subquery(2);
                                                                                                QUERY PLAN

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------
 Data Node Scan on "__REMOTE_FQS_QUERY__"  (cost=0.00..0.00 rows=0 width=0)
   Output: a.id, a.province, a.city
   Node expr: $1
   Remote query: SELECT id, province, city FROM (SELECT fqs_window_test.id, fqs_window_test.province, fqs_window_test.city FROM public.fqs_window_test fqs_window_test WHERE (fqs_window_tes
t.id = $1)) a
(4 rows)


# 带静态常量的普通子查询
antdb=# EXPLAIN (verbose) SELECT * FROM (SELECT * FROM fqs_window_test WHERE id = 2) a;
                                                                                               QUERY PLAN

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------
 Data Node Scan on "__REMOTE_FQS_QUERY__"  (cost=0.00..0.00 rows=0 width=0)
   Output: a.id, a.province, a.city
   Node/s: DN1
   Remote query: SELECT id, province, city FROM (SELECT fqs_window_test.id, fqs_window_test.province, fqs_window_test.city FROM public.fqs_window_test fqs_window_test WHERE (fqs_window_tes
t.id = 2)) a
(4 rows)
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论