GaussDB(DWS)迁移 - hana迁移 -- 视图传参计算

举报
譡里个檔 发表于 2024/09/26 09:52:47 2024/09/26
【摘要】 本文简述DWS中的视图的传参计算方法
CREATE TABLE total_mem_history (
    sampletime timestamptz,
    nodename text,
    sessid text,
    sesstype text,
    contextname text,
    level smallint,
    parent text,
    totalsize bigint,
    freesize bigint,
    usedsize bigint,
    ptotalsize text,
    pfreesize text,
    pusedsize text,
    freerate numeric(5,2)
)
WITH (orientation=row, compression=no)      
DISTRIBUTE BY ROUNDROBIN;

CREATE VIEW total_mem_history_last AS
SELECT * FROM total_mem_history
WHERE sampletime > now() - interval '1min'
AND nodename = read_global_var('my.node')::text; /*read_global_var函数的输出要显示转换为对应的类型*/

使用之前要先设置环境变量my.node,否则执行会报错。

postgres=# EXPLAIN PERFORMANCE SELECT * FROM total_mem_history_last;
ERROR:  unrecognized configuration parameter "my.node"

正确的执行方式需要在语句执行之前设置环境变量my.node,然后执行语句,具体如下

postgres=# SET my.node = 'dn_6001_6002';
SET
postgres=# EXPLAIN PERFORMANCE SELECT * FROM total_mem_history_last ORDER BY sampletime;
                                                                                                                                                                                                        QUERY PLAN                                                                                                      
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  id |                   operation                    |     A-time     | A-rows | E-rows | E-distinct | Peak Memory  | E-memory | A-width | E-width | E-costs
 ----+------------------------------------------------+----------------+--------+--------+------------+--------------+----------+---------+---------+---------
   1 | ->  Streaming (type: GATHER)                   | 1.994          |      0 |      2 |            | 96KB         |          |         |     302 | 16.24
   2 |    ->  Sort                                    | [0.016, 0.017] |      0 |      2 |            | [40KB, 40KB] | 16MB     |         |     302 | 10.24
   3 |       ->  Seq Scan on public.total_mem_history | [0.001, 0.002] |      0 |      1 |            | [32KB, 32KB] | 1MB      |         |     302 | 10.22

                                                            RunTime Analyze Information
 -------------------------------------------------------------------------------------------------------------------------------------------------
         normal runtime analyze on "public.total_mem_history" times:13.592ms, stats:sync, change:0(0 in xact), alive:0.000000, threshold:50.000000

                                                     Predicate Information (identified by plan id)
 -----------------------------------------------------------------------------------------------------------------------------------------------------
   3 --Seq Scan on public.total_mem_history
         Filter: ((total_mem_history.nodename = read_global_var('my.node'::text)) AND (total_mem_history.sampletime > (now() - '00:01:00'::interval)))

           Memory Information (identified by plan id)
 ---------------------------------------------------------------
 Coordinator Query Peak Memory:
         Query Peak Memory: 0MB
 DataNode Query Peak Memory
         dn_6001_6002 Query Peak Memory: 0MB
         dn_6003_6004 Query Peak Memory: 0MB
   1 --Streaming (type: GATHER)
         Peak Memory: 96KB, Estimate Memory: 32768MB
   2 --Sort
         dn_6001_6002 Peak Memory: 40KB, Estimate Memory: 16MB
         dn_6003_6004 Peak Memory: 40KB, Estimate Memory: 16MB
         dn_6001_6002 Sort Method: quicksort  Memory: 25kB
         dn_6003_6004 Sort Method: quicksort  Memory: 25kB
   3 --Seq Scan on public.total_mem_history
         dn_6001_6002 Peak Memory: 32KB, Estimate Memory: 1024KB
         dn_6003_6004 Peak Memory: 32KB, Estimate Memory: 1024KB

                                                                                                                                                                                      Targetlist Information (identified by plan id)                                                                                    
 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   1 --Streaming (type: GATHER)
         Output: total_mem_history.sampletime, total_mem_history.nodename, total_mem_history.sessid, total_mem_history.sesstype, total_mem_history.contextname, total_mem_history.level, total_mem_history.parent, total_mem_history.totalsize, total_mem_history.freesize, total_mem_history.usedsize, total_mem_history.ptotalsize, total_mem_history.pfreesize, total_mem_history.pusedsize, total_mem_history.freerate
         Merge Sort Key: total_mem_history.sampletime
         Node/s: All datanodes (group_version1, bucket:16384)
   2 --Sort
         Output: total_mem_history.sampletime, total_mem_history.nodename, total_mem_history.sessid, total_mem_history.sesstype, total_mem_history.contextname, total_mem_history.level, total_mem_history.parent, total_mem_history.totalsize, total_mem_history.freesize, total_mem_history.usedsize, total_mem_history.ptotalsize, total_mem_history.pfreesize, total_mem_history.pusedsize, total_mem_history.freerate
         Sort Key: total_mem_history.sampletime
   3 --Seq Scan on public.total_mem_history
         Output: total_mem_history.sampletime, total_mem_history.nodename, total_mem_history.sessid, total_mem_history.sesstype, total_mem_history.contextname, total_mem_history.level, total_mem_history.parent, total_mem_history.totalsize, total_mem_history.freesize, total_mem_history.usedsize, total_mem_history.ptotalsize, total_mem_history.pfreesize, total_mem_history.pusedsize, total_mem_history.freerate

                    Datanode Information (identified by plan id)
 ----------------------------------------------------------------------------------
   1 --Streaming (type: GATHER)
         (actual time=1.994..1.994 rows=0 loops=1)
         (Buffers: shared hit=4)
         (CPU: ex c/r=0, ex row=0, ex cyc=4784992, inc cyc=4784992)
   2 --Sort
         dn_6001_6002 (actual time=0.017..0.017 rows=0 loops=1)
         dn_6003_6004 (actual time=0.016..0.016 rows=0 loops=1)
         dn_6001_6002 (Buffers: 0)
         dn_6003_6004 (Buffers: 0)
         dn_6001_6002 (CPU: ex c/r=0, ex row=0, ex cyc=34844, inc cyc=39684)
         dn_6003_6004 (CPU: ex c/r=0, ex row=0, ex cyc=34022, inc cyc=37928)
   3 --Seq Scan on public.total_mem_history
         dn_6001_6002 (actual time=0.002..0.002 rows=0 loops=1) (filter time=0.000)
         dn_6003_6004 (actual time=0.001..0.001 rows=0 loops=1) (filter time=0.000)
         dn_6001_6002 (Buffers: 0)
         dn_6003_6004 (Buffers: 0)
         dn_6001_6002 (CPU: ex c/r=0, ex row=0, ex cyc=4840, inc cyc=4840)
         dn_6003_6004 (CPU: ex c/r=0, ex row=0, ex cyc=3906, inc cyc=3906)

                      User Define Profiling
 ----------------------------------------------------------------
 Plan Node id: 1  Track name: coordinator get datanode connection
       cn_5001 (time=0.002 total_calls=1 loops=1)
 Plan Node id: 1  Track name: coordinator begin transaction
       cn_5001 (time=0.003 total_calls=1 loops=1)
 Plan Node id: 1  Track name: coordinator send command
       cn_5001 (time=0.036 total_calls=2 loops=1)
 Plan Node id: 1  Track name: coordinator get the first tuple
       cn_5001 (time=0.198 total_calls=1 loops=1)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。