Skip to content

Latest commit

 

History

History
2715 lines (2660 loc) · 86.8 KB

20210904_04.md

File metadata and controls

2715 lines (2660 loc) · 86.8 KB

PostgreSQL 兼容Oracle sql_trace 10046 10053 方法 - SQL诊断跟踪

作者

digoal

日期

2021-09-04

标签

PostgreSQL , Oracle , sql_trace


背景

《PostgreSQL 兼容Oracle sql_trace 10046 10053 方法 - SQL诊断跟踪》

其他:

awr (perf insight, awr)

《PostgreSQL pg_stat_statements AWR 插件 pg_stat_monitor , 过去任何时间段性能分析 [推荐、收藏]》

历史会话 (perf insight)

《PostgreSQL 活跃会话历史记录插件 - pgsentinel 类似performance insight \ Oracle ASH Active Session History》
《PostgreSQL 13 preview - wait event sample - 等待事件统计(插件,hook) - ASH - performance insight》
《PostgreSQL Oracle 兼容性之 - performance insight - AWS performance insight 理念与实现解读 - 珍藏级》

跟踪项目

  • PARSER STATISTICS
  • PARSE ANALYSIS STATISTICS
  • parse tree
  • REWRITER STATISTICS
  • rewritten parse tree
  • PLANNER STATISTICS
  • plan
  • sort STATISTICS
  • EXECUTOR STATISTICS
  • QUERY PLAN
    • actual time
    • loops
    • mem usage
    • Buffers: shared hit
    • blocks
    • io timing
  • WAL
  • JIT
  • 死锁等

详见:
《2019-PostgreSQL 2天体系化培训 - 视频每周更新》

在psql中跟踪

打印到当前会话前台, 同时打印到日志

\set VERBOSITY verbose  
set log_min_messages = debug5;  
set log_min_error_statement = debug5;  
-- set trace_recovery_messages = DEBUG5;     # 只能启动前在参数文件中配置  
-- set track_commit_timestamp = on;     # 只能启动前在参数文件中配置  
-- set log_checkpoints = on;     # 只能启动前在参数文件中配置  
set log_error_verbosity = verbose;  
set log_lock_waits = on;  
set log_replication_commands = off;  
set log_temp_files = 0;  
set track_activities = on;  
set track_counts = on;  
set track_io_timing = on;  
set track_wal_io_timing = on;  
set track_functions = 'all';  
set trace_sort = on;  
-- set trace_locks = on;      # 要求 LOCK_DEBUG macro 定义  
-- set trace_lwlocks = on;    # 要求 LOCK_DEBUG macro 定义  
-- set trace_userlocks = on;   # 要求 LOCK_DEBUG macro 定义  
-- set trace_lock_oidmin   # 要求 LOCK_DEBUG macro 定义  
-- set trace_lock_table    # 要求 LOCK_DEBUG macro 定义  
-- set debug_deadlocks = on;    # 要求 LOCK_DEBUG macro 定义  
-- set log_btree_build_stats = on;   # 要求 BTREE_BUILD_STATS macro 定义  
-- set wal_debug = on;     # 要求 WAL_DEBUG macro 定义  
-- set jit_debugging_support = on;  # 只能启动前在参数文件中配置  
set jit_dump_bitcode = on;  
set jit_expressions = on;  
-- set jit_profiling_support = on;   # 只能启动前在参数文件中配置  
set jit_tuple_deforming = on;  
-- set log_statement_stats = on;  # 与log_statement_stats互斥, 可挑选使用   
set log_parser_stats = on;     --  与log_statement_stats互斥, 可挑选使用   
set log_planner_stats = on;    --  与log_statement_stats互斥, 可挑选使用   
set log_executor_stats = on;    --  与log_statement_stats互斥, 可挑选使用   
-- set log_autovacuum_min_duration = 0;   # 只能启动前在参数文件中配置  
set deadlock_timeout = '1s';  
set debug_print_parse = on;  
set debug_print_rewritten = on;  
set debug_print_plan = on;  
set debug_pretty_print = on;  
set lock_timeout = '1s';  
-- set log_recovery_conflict_waits = on;   # 只能启动前在参数文件中配置  
  
set client_min_messages = log;    -- 可选debug5,...debug1, log, notice, warning, error  

例子

postgres=# explain (analyze,verbose,timing,costs,buffers,WAL,SUMMARY) select count(*),relkind from pg_class group by relkind order by count(*) desc limit 1;  
LOG:  00000: PARSER STATISTICS  
DETAIL:  ! system usage stats:  
!	0.000101 s user, 0.000069 s system, 0.000168 s elapsed  
!	[0.005759 s user, 0.003854 s system total]  
!	4120 kB max resident size  
!	0/0 [0/0] filesystem blocks in/out  
!	0/36 [0/1095] page faults/reclaims, 0 [0] swaps  
!	0 [0] signals rcvd, 0/0 [31/77] messages rcvd/sent  
!	0/0 [1/33] voluntary/involuntary context switches  
LOCATION:  ShowUsage, postgres.c:4888  
LOG:  00000: PARSE ANALYSIS STATISTICS  
DETAIL:  ! system usage stats:  
!	0.000597 s user, 0.000211 s system, 0.000809 s elapsed  
!	[0.006405 s user, 0.004079 s system total]  
!	4824 kB max resident size  
!	0/0 [0/0] filesystem blocks in/out  
!	0/179 [0/1274] page faults/reclaims, 0 [0] swaps  
!	0 [0] signals rcvd, 0/0 [31/78] messages rcvd/sent  
!	0/0 [1/33] voluntary/involuntary context switches  
LOCATION:  ShowUsage, postgres.c:4888  
LOG:  00000: parse tree:  
DETAIL:     {QUERY   
   :commandType 5   
   :querySource 0   
   :canSetTag true   
   :utilityStmt ?   
   :resultRelation 0   
   :hasAggs false   
   :hasWindowFuncs false   
   :hasTargetSRFs false   
   :hasSubLinks false   
   :hasDistinctOn false   
   :hasRecursive false   
   :hasModifyingCTE false   
   :hasForUpdate false   
   :hasRowSecurity false   
   :isReturn false   
   :cteList <>   
   :rtable <>   
   :jointree <>   
   :targetList <>   
   :override 0   
   :onConflict <>   
   :returningList <>   
   :groupClause <>   
   :groupDistinct false   
   :groupingSets <>   
   :havingQual <>   
   :windowClause <>   
   :distinctClause <>   
   :sortClause <>   
   :limitOffset <>   
   :limitCount <>   
   :limitOption 0   
   :rowMarks <>   
   :setOperations <>   
   :constraintDeps <>   
   :withCheckOptions <>   
   :stmt_location 0   
   :stmt_len 144  
   }  
  
LOCATION:  elog_node_display, print.c:85  
LOG:  00000: REWRITER STATISTICS  
DETAIL:  ! system usage stats:  
!	0.000000 s user, 0.000000 s system, 0.000001 s elapsed  
!	[0.006462 s user, 0.004101 s system total]  
!	4828 kB max resident size  
!	0/0 [0/0] filesystem blocks in/out  
!	0/0 [0/1275] page faults/reclaims, 0 [0] swaps  
!	0 [0] signals rcvd, 0/0 [31/80] messages rcvd/sent  
!	0/0 [1/33] voluntary/involuntary context switches  
LOCATION:  ShowUsage, postgres.c:4888  
LOG:  00000: rewritten parse tree:  
DETAIL:  (  
   {QUERY   
   :commandType 5   
   :querySource 0   
   :canSetTag true   
   :utilityStmt ?   
   :resultRelation 0   
   :hasAggs false   
   :hasWindowFuncs false   
   :hasTargetSRFs false   
   :hasSubLinks false   
   :hasDistinctOn false   
   :hasRecursive false   
   :hasModifyingCTE false   
   :hasForUpdate false   
   :hasRowSecurity false   
   :isReturn false   
   :cteList <>   
   :rtable <>   
   :jointree <>   
   :targetList <>   
   :override 0   
   :onConflict <>   
   :returningList <>   
   :groupClause <>   
   :groupDistinct false   
   :groupingSets <>   
   :havingQual <>   
   :windowClause <>   
   :distinctClause <>   
   :sortClause <>   
   :limitOffset <>   
   :limitCount <>   
   :limitOption 0   
   :rowMarks <>   
   :setOperations <>   
   :constraintDeps <>   
   :withCheckOptions <>   
   :stmt_location 0   
   :stmt_len 144  
   }  
)  
  
LOCATION:  elog_node_display, print.c:85  
LOG:  00000: PLANNER STATISTICS  
DETAIL:  ! system usage stats:  
!	0.000549 s user, 0.000530 s system, 0.001121 s elapsed  
!	[0.007130 s user, 0.004662 s system total]  
!	5668 kB max resident size  
!	0/0 [0/0] filesystem blocks in/out  
!	0/191 [0/1486] page faults/reclaims, 0 [0] swaps  
!	0 [0] signals rcvd, 0/0 [31/82] messages rcvd/sent  
!	0/2 [1/35] voluntary/involuntary context switches  
LOCATION:  ShowUsage, postgres.c:4888  
LOG:  00000: plan:  
DETAIL:     {PLANNEDSTMT   
   :commandType 1   
   :queryId 0   
   :hasReturning false   
   :hasModifyingCTE false   
   :canSetTag true   
   :transientPlan false   
   :dependsOnRole false   
   :parallelModeNeeded false   
   :jitFlags 0   
   :planTree   
      {LIMIT   
      :startup_cost 34.31   
      :total_cost 34.32   
      :plan_rows 1   
      :plan_width 9   
      :parallel_aware false   
      :parallel_safe false   
      :async_capable false   
      :plan_node_id 0   
      :targetlist (  
         {TARGETENTRY   
         :expr   
            {VAR   
            :varno 65001   
            :varattno 1   
            :vartype 20   
            :vartypmod -1   
            :varcollid 0   
            :varlevelsup 0   
            :varnosyn 0   
            :varattnosyn 0   
            :location -1  
            }  
         :resno 1   
         :resname count   
         :ressortgroupref 1   
         :resorigtbl 0   
         :resorigcol 0   
         :resjunk false  
         }  
         {TARGETENTRY   
         :expr   
            {VAR   
            :varno 65001   
            :varattno 2   
            :vartype 18   
            :vartypmod -1   
            :varcollid 0   
            :varlevelsup 0   
            :varnosyn 1   
            :varattnosyn 17   
            :location -1  
            }  
         :resno 2   
         :resname relkind   
         :ressortgroupref 2   
         :resorigtbl 1259   
         :resorigcol 17   
         :resjunk false  
         }  
      )  
      :qual <>   
      :lefttree   
         {SORT   
         :startup_cost 34.31   
         :total_cost 34.32   
         :plan_rows 4   
         :plan_width 9   
         :parallel_aware false   
         :parallel_safe false   
         :async_capable false   
         :plan_node_id 1   
         :targetlist (  
            {TARGETENTRY   
            :expr   
               {VAR   
               :varno 65001   
               :varattno 1   
               :vartype 20   
               :vartypmod -1   
               :varcollid 0   
               :varlevelsup 0   
               :varnosyn 0   
               :varattnosyn 0   
               :location -1  
               }  
            :resno 1   
            :resname count   
            :ressortgroupref 1   
            :resorigtbl 0   
            :resorigcol 0   
            :resjunk false  
            }  
            {TARGETENTRY   
            :expr   
               {VAR   
               :varno 65001   
               :varattno 2   
               :vartype 18   
               :vartypmod -1   
               :varcollid 0   
               :varlevelsup 0   
               :varnosyn 1   
               :varattnosyn 17   
               :location -1  
               }  
            :resno 2   
            :resname relkind   
            :ressortgroupref 2   
            :resorigtbl 1259   
            :resorigcol 17   
            :resjunk false  
            }  
         )  
         :qual <>   
         :lefttree   
            {AGG   
            :startup_cost 34.25   
            :total_cost 34.29   
            :plan_rows 4   
            :plan_width 9   
            :parallel_aware false   
            :parallel_safe false   
            :async_capable false   
            :plan_node_id 2   
            :targetlist (  
               {TARGETENTRY   
               :expr   
                  {AGGREF   
                  :aggfnoid 2803   
                  :aggtype 20   
                  :aggcollid 0   
                  :inputcollid 0   
                  :aggtranstype 20   
                  :aggargtypes <>   
                  :aggdirectargs <>   
                  :args <>   
                  :aggorder <>   
                  :aggdistinct <>   
                  :aggfilter <>   
                  :aggstar true   
                  :aggvariadic false   
                  :aggkind n   
                  :agglevelsup 0   
                  :aggsplit 0   
                  :aggno 0   
                  :aggtransno 0   
                  :location 66  
                  }  
               :resno 1   
               :resname count   
               :ressortgroupref 1   
               :resorigtbl 0   
               :resorigcol 0   
               :resjunk false  
               }  
               {TARGETENTRY   
               :expr   
                  {VAR   
                  :varno 65001   
                  :varattno 17   
                  :vartype 18   
                  :vartypmod -1   
                  :varcollid 0   
                  :varlevelsup 0   
                  :varnosyn 0   
                  :varattnosyn 0   
                  :location -1  
                  }  
               :resno 2   
               :resname relkind   
               :ressortgroupref 2   
               :resorigtbl 1259   
               :resorigcol 17   
               :resjunk false  
               }  
            )  
            :qual <>   
            :lefttree   
               {SEQSCAN   
               :startup_cost 0.00   
               :total_cost 32.17   
               :plan_rows 417   
               :plan_width 1   
               :parallel_aware false   
               :parallel_safe false   
               :async_capable false   
               :plan_node_id 3   
               :targetlist (  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 1   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 1   
                     :location -1  
                     }  
                  :resno 1   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 2   
                     :vartype 19   
                     :vartypmod -1   
                     :varcollid 950   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 2   
                     :location -1  
                     }  
                  :resno 2   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 3   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 3   
                     :location -1  
                     }  
                  :resno 3   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 4   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 4   
                     :location -1  
                     }  
                  :resno 4   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 5   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 5   
                     :location -1  
                     }  
                  :resno 5   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 6   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 6   
                     :location -1  
                     }  
                  :resno 6   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 7   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 7   
                     :location -1  
                     }  
                  :resno 7   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 8   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 8   
                     :location -1  
                     }  
                  :resno 8   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 9   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 9   
                     :location -1  
                     }  
                  :resno 9   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 10   
                     :vartype 23   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 10   
                     :location -1  
                     }  
                  :resno 10   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 11   
                     :vartype 700   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 11   
                     :location -1  
                     }  
                  :resno 11   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 12   
                     :vartype 23   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 12   
                     :location -1  
                     }  
                  :resno 12   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 13   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 13   
                     :location -1  
                     }  
                  :resno 13   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 14   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 14   
                     :location -1  
                     }  
                  :resno 14   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 15   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 15   
                     :location -1  
                     }  
                  :resno 15   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 16   
                     :vartype 18   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 16   
                     :location -1  
                     }  
                  :resno 16   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 17   
                     :vartype 18   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 17   
                     :location -1  
                     }  
                  :resno 17   
                  :resname <>   
                  :ressortgroupref 2   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 18   
                     :vartype 21   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 18   
                     :location -1  
                     }  
                  :resno 18   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 19   
                     :vartype 21   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 19   
                     :location -1  
                     }  
                  :resno 19   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 20   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 20   
                     :location -1  
                     }  
                  :resno 20   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 21   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 21   
                     :location -1  
                     }  
                  :resno 21   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 22   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 22   
                     :location -1  
                     }  
                  :resno 22   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 23   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 23   
                     :location -1  
                     }  
                  :resno 23   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 24   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 24   
                     :location -1  
                     }  
                  :resno 24   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 25   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 25   
                     :location -1  
                     }  
                  :resno 25   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 26   
                     :vartype 18   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 26   
                     :location -1  
                     }  
                  :resno 26   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 27   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 27   
                     :location -1  
                     }  
                  :resno 27   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 28   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 28   
                     :location -1  
                     }  
                  :resno 28   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 29   
                     :vartype 28   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 29   
                     :location -1  
                     }  
                  :resno 29   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 30   
                     :vartype 28   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 30   
                     :location -1  
                     }  
                  :resno 30   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 31   
                     :vartype 1034   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 31   
                     :location -1  
                     }  
                  :resno 31   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 32   
                     :vartype 1009   
                     :vartypmod -1   
                     :varcollid 950   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 32   
                     :location -1  
                     }  
                  :resno 32   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 33   
                     :vartype 194   
                     :vartypmod -1   
                     :varcollid 950   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 33   
                     :location -1  
                     }  
                  :resno 33   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
               )  
               :qual <>   
               :lefttree <>   
               :righttree <>   
               :initPlan <>   
               :extParam (b)  
               :allParam (b)  
               :scanrelid 1  
               }  
            :righttree <>   
            :initPlan <>   
            :extParam (b)  
            :allParam (b)  
            :aggstrategy 2   
            :aggsplit 0   
            :numCols 1   
            :grpColIdx  17   
            :grpOperators  92   
            :grpCollations  0   
            :numGroups 4   
            :transitionSpace 0   
            :aggParams (b)  
            :groupingSets <>   
            :chain <>  
            }  
         :righttree <>   
         :initPlan <>   
         :extParam (b)  
         :allParam (b)  
         :numCols 1   
         :sortColIdx  1   
         :sortOperators  413   
         :collations  0   
         :nullsFirst  true  
         }  
      :righttree <>   
      :initPlan <>   
      :extParam (b)  
      :allParam (b)  
      :limitOffset <>   
      :limitCount   
         {CONST   
         :consttype 20   
         :consttypmod -1   
         :constcollid 0   
         :constlen 8   
         :constbyval true   
         :constisnull false   
         :location -1   
         :constvalue 8 [ 1 0 0 0 0 0 0 0 ]  
         }  
      :limitOption 0   
      :uniqNumCols 0   
      :uniqColIdx    
      :uniqOperators    
      :uniqCollations   
      }  
   :rtable (  
      {RTE   
      :alias <>   
      :eref   
         {ALIAS   
         :aliasname pg_class   
         :colnames ("oid" "relname" "relnamespace" "reltype" "reloftype" "relo  
         wner" "relam" "relfilenode" "reltablespace" "relpages" "reltuples" "r  
         elallvisible" "reltoastrelid" "relhasindex" "relisshared" "relpersist  
         ence" "relkind" "relnatts" "relchecks" "relhasrules" "relhastriggers"  
          "relhassubclass" "relrowsecurity" "relforcerowsecurity" "relispopula  
         ted" "relreplident" "relispartition" "relrewrite" "relfrozenxid" "rel  
         minmxid" "relacl" "reloptions" "relpartbound")  
         }  
      :rtekind 0   
      :relid 1259   
      :relkind r   
      :rellockmode 1   
      :tablesample <>   
      :lateral false   
      :inh false   
      :inFromCl true   
      :requiredPerms 2   
      :checkAsUser 0   
      :selectedCols (b 24)  
      :insertedCols (b)  
      :updatedCols (b)  
      :extraUpdatedCols (b)  
      :securityQuals <>  
      }  
   )  
   :resultRelations <>   
   :appendRelations <>   
   :subplans <>   
   :rewindPlanIDs (b)  
   :rowMarks <>   
   :relationOids (o 1259)  
   :invalItems <>   
   :paramExecTypes <>   
   :utilityStmt <>   
   :stmt_location 0   
   :stmt_len 0  
   }  
  
LOCATION:  elog_node_display, print.c:85  
LOG:  00000: begin tuple sort: nkeys = 1, workMem = 4096, randomAccess = f  
LOCATION:  tuplesort_begin_heap, tuplesort.c:916  
LOG:  00000: switching to bounded heapsort at 3 tuples: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s  
LOCATION:  puttuple_common, tuplesort.c:1929  
LOG:  00000: performsort of worker -1 starting: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s  
LOCATION:  tuplesort_performsort, tuplesort.c:2047  
LOG:  00000: performsort of worker -1 done: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s  
LOCATION:  tuplesort_performsort, tuplesort.c:2136  
LOG:  00000: internal sort of worker -1 ended, 25 KB used: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s  
LOCATION:  tuplesort_free, tuplesort.c:1424  
LOG:  00000: EXECUTOR STATISTICS  
DETAIL:  ! system usage stats:  
!	0.001761 s user, 0.000918 s system, 0.002775 s elapsed  
!	[0.008342 s user, 0.005050 s system total]  
!	6464 kB max resident size  
!	0/0 [0/0] filesystem blocks in/out  
!	0/390 [0/1685] page faults/reclaims, 0 [0] swaps  
!	0 [0] signals rcvd, 0/12 [31/94] messages rcvd/sent  
!	5/7 [6/40] voluntary/involuntary context switches  
LOCATION:  ShowUsage, postgres.c:4888  
  
 Limit  (cost=34.31..34.32 rows=1 width=9) (actual time=0.572..0.573 rows=1 loops=1)  
   Output: (count(*)), relkind  
   Buffers: shared hit=31  
   ->  Sort  (cost=34.31..34.32 rows=4 width=9) (actual time=0.571..0.571 rows=1 loops=1)  
         Output: (count(*)), relkind  
         Sort Key: (count(*)) DESC  
         Sort Method: top-N heapsort  Memory: 25kB  
         Buffers: shared hit=31  
         ->  HashAggregate  (cost=34.25..34.29 rows=4 width=9) (actual time=0.447..0.448 rows=4 loops=1)  
               Output: count(*), relkind  
               Group Key: pg_class.relkind  
               Batches: 1  Memory Usage: 24kB  
               Buffers: shared hit=28  
               ->  Seq Scan on pg_catalog.pg_class  (cost=0.00..32.17 rows=417 width=1) (actual time=0.017..0.215 rows=412 loops=1)  
                     Output: oid, relname, relnamespace, reltype, reloftype, relowner, relam, relfilenode, reltablespace, relpages, reltuples, relallvisible, reltoastrelid, relhasindex, relisshared, relpersistence, relkind, relnatts, relchecks, relhasrules, relhastriggers, relhassubclass, relrowsecurity, relforcerowsecurity, relispopulated, relreplident, relispartition, relrewrite, relfrozenxid, relminmxid, relacl, reloptions, relpartbound  
                     Buffers: shared hit=28  
 Planning:  
   Buffers: shared hit=96  
 Planning Time: 1.844 ms  
 Execution Time: 0.757 ms  
(20 rows)  

在日志中跟踪

如果想在SQL执行后立即打印跟踪信息, 可以使用auto_explain模块.

\set VERBOSITY verbose  
set log_min_messages = debug5;  
set log_min_error_statement = debug5;  
-- set trace_recovery_messages = DEBUG5;  
-- set track_commit_timestamp = on;  
-- set log_checkpoints = on;  
set log_error_verbosity = verbose;  
set log_lock_waits = on;  
set log_replication_commands = off;  
set log_temp_files = 0;  
set track_activities = on;  
set track_counts = on;  
set track_io_timing = on;  
set track_wal_io_timing = on;  
set track_functions = 'all';  
set trace_sort = on;  
-- set trace_locks = on;      # 要求 LOCK_DEBUG macro 定义  
-- set trace_lwlocks = on;    # 要求 LOCK_DEBUG macro 定义  
-- set trace_userlocks = on;   # 要求 LOCK_DEBUG macro 定义  
-- set trace_lock_oidmin   # 要求 LOCK_DEBUG macro 定义  
-- set trace_lock_table    # 要求 LOCK_DEBUG macro 定义  
-- set debug_deadlocks = on;    # 要求 LOCK_DEBUG macro 定义  
-- set log_btree_build_stats = on;   # 要求 BTREE_BUILD_STATS macro 定义  
-- set wal_debug = on;     # 要求 WAL_DEBUG macro 定义  
-- set jit_debugging_support = on;  # 只能启动前在参数中配置  
set jit_dump_bitcode = on;  
set jit_expressions = on;  
-- set jit_profiling_support = on;   # 只能启动前在参数中配置  
set jit_tuple_deforming = on;  
-- set log_statement_stats = on;  # 与log_statement_stats互斥, 可挑选使用   
set log_parser_stats = on;     --  与log_statement_stats互斥, 可挑选使用   
set log_planner_stats = on;    --  与log_statement_stats互斥, 可挑选使用   
set log_executor_stats = on;    --  与log_statement_stats互斥, 可挑选使用   
-- set log_autovacuum_min_duration = 0;   # 只能启动前在参数中配置  
set deadlock_timeout = '1s';  
set debug_print_parse = on;  
set debug_print_rewritten = on;  
set debug_print_plan = on;  
set debug_pretty_print = on;  
set lock_timeout = '1s';  
-- set log_recovery_conflict_waits = on;   # 只能启动前在参数中配置  
load 'auto_explain';  
  
  
set auto_explain.log_analyze = on;         
set auto_explain.log_level = log;  -- 可选 DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO, NOTICE, WARNING, and LOG             
set auto_explain.log_settings = on;          
set auto_explain.log_verbose  = on;           
set auto_explain.log_buffers  = on;            
set auto_explain.log_min_duration = 0;       
set auto_explain.log_timing  = on;             
set auto_explain.log_wal   = on;              
set auto_explain.log_format  = text;             
set auto_explain.log_nested_statements = on;  
set auto_explain.log_triggers =on;           
set auto_explain.sample_rate =1;   
set client_min_messages = log;    -- 可选debug5,...debug1, log, notice, warning, error  
postgres=# select count(*),relkind from pg_class group by relkind order by count(*) desc limit 1;  
LOG:  00000: PARSER STATISTICS  
DETAIL:  ! system usage stats:  
!	0.000080 s user, 0.000036 s system, 0.000115 s elapsed  
!	[0.006983 s user, 0.003714 s system total]  
!	4068 kB max resident size  
!	0/0 [0/0] filesystem blocks in/out  
!	0/28 [0/1084] page faults/reclaims, 0 [0] swaps  
!	0 [0] signals rcvd, 0/0 [40/51] messages rcvd/sent  
!	0/0 [0/46] voluntary/involuntary context switches  
LOCATION:  ShowUsage, postgres.c:4888  
LOG:  00000: PARSE ANALYSIS STATISTICS  
DETAIL:  ! system usage stats:  
!	0.000744 s user, 0.000237 s system, 0.000982 s elapsed  
!	[0.007761 s user, 0.003963 s system total]  
!	4788 kB max resident size  
!	0/0 [0/0] filesystem blocks in/out  
!	0/179 [0/1264] page faults/reclaims, 0 [0] swaps  
!	0 [0] signals rcvd, 0/0 [40/52] messages rcvd/sent  
!	0/0 [0/46] voluntary/involuntary context switches  
LOCATION:  ShowUsage, postgres.c:4888  
LOG:  00000: parse tree:  
DETAIL:     {QUERY   
   :commandType 1   
   :querySource 0   
   :canSetTag true   
   :utilityStmt <>   
   :resultRelation 0   
   :hasAggs true   
   :hasWindowFuncs false   
   :hasTargetSRFs false   
   :hasSubLinks false   
   :hasDistinctOn false   
   :hasRecursive false   
   :hasModifyingCTE false   
   :hasForUpdate false   
   :hasRowSecurity false   
   :isReturn false   
   :cteList <>   
   :rtable (  
      {RTE   
      :alias <>   
      :eref   
         {ALIAS   
         :aliasname pg_class   
         :colnames ("oid" "relname" "relnamespace" "reltype" "reloftype" "relo  
         wner" "relam" "relfilenode" "reltablespace" "relpages" "reltuples" "r  
         elallvisible" "reltoastrelid" "relhasindex" "relisshared" "relpersist  
         ence" "relkind" "relnatts" "relchecks" "relhasrules" "relhastriggers"  
          "relhassubclass" "relrowsecurity" "relforcerowsecurity" "relispopula  
         ted" "relreplident" "relispartition" "relrewrite" "relfrozenxid" "rel  
         minmxid" "relacl" "reloptions" "relpartbound")  
         }  
      :rtekind 0   
      :relid 1259   
      :relkind r   
      :rellockmode 1   
      :tablesample <>   
      :lateral false   
      :inh true   
      :inFromCl true   
      :requiredPerms 2   
      :checkAsUser 0   
      :selectedCols (b 24)  
      :insertedCols (b)  
      :updatedCols (b)  
      :extraUpdatedCols (b)  
      :securityQuals <>  
      }  
   )  
   :jointree   
      {FROMEXPR   
      :fromlist (  
         {RANGETBLREF   
         :rtindex 1  
         }  
      )  
      :quals <>  
      }  
   :targetList (  
      {TARGETENTRY   
      :expr   
         {AGGREF   
         :aggfnoid 2803   
         :aggtype 20   
         :aggcollid 0   
         :inputcollid 0   
         :aggtranstype 0   
         :aggargtypes <>   
         :aggdirectargs <>   
         :args <>   
         :aggorder <>   
         :aggdistinct <>   
         :aggfilter <>   
         :aggstar true   
         :aggvariadic false   
         :aggkind n   
         :agglevelsup 0   
         :aggsplit 0   
         :aggno -1   
         :aggtransno -1   
         :location 7  
         }  
      :resno 1   
      :resname count   
      :ressortgroupref 1   
      :resorigtbl 0   
      :resorigcol 0   
      :resjunk false  
      }  
      {TARGETENTRY   
      :expr   
         {VAR   
         :varno 1   
         :varattno 17   
         :vartype 18   
         :vartypmod -1   
         :varcollid 0   
         :varlevelsup 0   
         :varnosyn 1   
         :varattnosyn 17   
         :location 16  
         }  
      :resno 2   
      :resname relkind   
      :ressortgroupref 2   
      :resorigtbl 1259   
      :resorigcol 17   
      :resjunk false  
      }  
   )  
   :override 0   
   :onConflict <>   
   :returningList <>   
   :groupClause (  
      {SORTGROUPCLAUSE   
      :tleSortGroupRef 2   
      :eqop 92   
      :sortop 631   
      :nulls_first false   
      :hashable true  
      }  
   )  
   :groupDistinct false   
   :groupingSets <>   
   :havingQual <>   
   :windowClause <>   
   :distinctClause <>   
   :sortClause (  
      {SORTGROUPCLAUSE   
      :tleSortGroupRef 1   
      :eqop 410   
      :sortop 413   
      :nulls_first true   
      :hashable true  
      }  
   )  
   :limitOffset <>   
   :limitCount   
      {FUNCEXPR   
      :funcid 481   
      :funcresulttype 20   
      :funcretset false   
      :funcvariadic false   
      :funcformat 2   
      :funccollid 0   
      :inputcollid 0   
      :args (  
         {CONST   
         :consttype 23   
         :consttypmod -1   
         :constcollid 0   
         :constlen 4   
         :constbyval true   
         :constisnull false   
         :location 84   
         :constvalue 4 [ 1 0 0 0 0 0 0 0 ]  
         }  
      )  
      :location -1  
      }  
   :limitOption 0   
   :rowMarks <>   
   :setOperations <>   
   :constraintDeps <>   
   :withCheckOptions <>   
   :stmt_location 0   
   :stmt_len 85  
   }  
  
LOCATION:  elog_node_display, print.c:85  
LOG:  00000: REWRITER STATISTICS  
DETAIL:  ! system usage stats:  
!	0.000015 s user, 0.000008 s system, 0.000022 s elapsed  
!	[0.007944 s user, 0.004024 s system total]  
!	4860 kB max resident size  
!	0/0 [0/0] filesystem blocks in/out  
!	0/6 [0/1282] page faults/reclaims, 0 [0] swaps  
!	0 [0] signals rcvd, 0/0 [40/54] messages rcvd/sent  
!	0/0 [0/46] voluntary/involuntary context switches  
LOCATION:  ShowUsage, postgres.c:4888  
LOG:  00000: rewritten parse tree:  
DETAIL:  (  
   {QUERY   
   :commandType 1   
   :querySource 0   
   :canSetTag true   
   :utilityStmt <>   
   :resultRelation 0   
   :hasAggs true   
   :hasWindowFuncs false   
   :hasTargetSRFs false   
   :hasSubLinks false   
   :hasDistinctOn false   
   :hasRecursive false   
   :hasModifyingCTE false   
   :hasForUpdate false   
   :hasRowSecurity false   
   :isReturn false   
   :cteList <>   
   :rtable (  
      {RTE   
      :alias <>   
      :eref   
         {ALIAS   
         :aliasname pg_class   
         :colnames ("oid" "relname" "relnamespace" "reltype" "reloftype" "relo  
         wner" "relam" "relfilenode" "reltablespace" "relpages" "reltuples" "r  
         elallvisible" "reltoastrelid" "relhasindex" "relisshared" "relpersist  
         ence" "relkind" "relnatts" "relchecks" "relhasrules" "relhastriggers"  
          "relhassubclass" "relrowsecurity" "relforcerowsecurity" "relispopula  
         ted" "relreplident" "relispartition" "relrewrite" "relfrozenxid" "rel  
         minmxid" "relacl" "reloptions" "relpartbound")  
         }  
      :rtekind 0   
      :relid 1259   
      :relkind r   
      :rellockmode 1   
      :tablesample <>   
      :lateral false   
      :inh true   
      :inFromCl true   
      :requiredPerms 2   
      :checkAsUser 0   
      :selectedCols (b 24)  
      :insertedCols (b)  
      :updatedCols (b)  
      :extraUpdatedCols (b)  
      :securityQuals <>  
      }  
   )  
   :jointree   
      {FROMEXPR   
      :fromlist (  
         {RANGETBLREF   
         :rtindex 1  
         }  
      )  
      :quals <>  
      }  
   :targetList (  
      {TARGETENTRY   
      :expr   
         {AGGREF   
         :aggfnoid 2803   
         :aggtype 20   
         :aggcollid 0   
         :inputcollid 0   
         :aggtranstype 0   
         :aggargtypes <>   
         :aggdirectargs <>   
         :args <>   
         :aggorder <>   
         :aggdistinct <>   
         :aggfilter <>   
         :aggstar true   
         :aggvariadic false   
         :aggkind n   
         :agglevelsup 0   
         :aggsplit 0   
         :aggno -1   
         :aggtransno -1   
         :location 7  
         }  
      :resno 1   
      :resname count   
      :ressortgroupref 1   
      :resorigtbl 0   
      :resorigcol 0   
      :resjunk false  
      }  
      {TARGETENTRY   
      :expr   
         {VAR   
         :varno 1   
         :varattno 17   
         :vartype 18   
         :vartypmod -1   
         :varcollid 0   
         :varlevelsup 0   
         :varnosyn 1   
         :varattnosyn 17   
         :location 16  
         }  
      :resno 2   
      :resname relkind   
      :ressortgroupref 2   
      :resorigtbl 1259   
      :resorigcol 17   
      :resjunk false  
      }  
   )  
   :override 0   
   :onConflict <>   
   :returningList <>   
   :groupClause (  
      {SORTGROUPCLAUSE   
      :tleSortGroupRef 2   
      :eqop 92   
      :sortop 631   
      :nulls_first false   
      :hashable true  
      }  
   )  
   :groupDistinct false   
   :groupingSets <>   
   :havingQual <>   
   :windowClause <>   
   :distinctClause <>   
   :sortClause (  
      {SORTGROUPCLAUSE   
      :tleSortGroupRef 1   
      :eqop 410   
      :sortop 413   
      :nulls_first true   
      :hashable true  
      }  
   )  
   :limitOffset <>   
   :limitCount   
      {FUNCEXPR   
      :funcid 481   
      :funcresulttype 20   
      :funcretset false   
      :funcvariadic false   
      :funcformat 2   
      :funccollid 0   
      :inputcollid 0   
      :args (  
         {CONST   
         :consttype 23   
         :consttypmod -1   
         :constcollid 0   
         :constlen 4   
         :constbyval true   
         :constisnull false   
         :location 84   
         :constvalue 4 [ 1 0 0 0 0 0 0 0 ]  
         }  
      )  
      :location -1  
      }  
   :limitOption 0   
   :rowMarks <>   
   :setOperations <>   
   :constraintDeps <>   
   :withCheckOptions <>   
   :stmt_location 0   
   :stmt_len 85  
   }  
)  
  
LOCATION:  elog_node_display, print.c:85  
LOG:  00000: PLANNER STATISTICS  
DETAIL:  ! system usage stats:  
!	0.000827 s user, 0.000882 s system, 0.001712 s elapsed  
!	[0.008901 s user, 0.004930 s system total]  
!	5608 kB max resident size  
!	0/0 [0/0] filesystem blocks in/out  
!	0/188 [0/1470] page faults/reclaims, 0 [0] swaps  
!	0 [0] signals rcvd, 0/0 [40/56] messages rcvd/sent  
!	0/0 [0/46] voluntary/involuntary context switches  
LOCATION:  ShowUsage, postgres.c:4888  
LOG:  00000: plan:  
DETAIL:     {PLANNEDSTMT   
   :commandType 1   
   :queryId 0   
   :hasReturning false   
   :hasModifyingCTE false   
   :canSetTag true   
   :transientPlan false   
   :dependsOnRole false   
   :parallelModeNeeded false   
   :jitFlags 0   
   :planTree   
      {LIMIT   
      :startup_cost 34.31   
      :total_cost 34.32   
      :plan_rows 1   
      :plan_width 9   
      :parallel_aware false   
      :parallel_safe false   
      :async_capable false   
      :plan_node_id 0   
      :targetlist (  
         {TARGETENTRY   
         :expr   
            {VAR   
            :varno 65001   
            :varattno 1   
            :vartype 20   
            :vartypmod -1   
            :varcollid 0   
            :varlevelsup 0   
            :varnosyn 0   
            :varattnosyn 0   
            :location -1  
            }  
         :resno 1   
         :resname count   
         :ressortgroupref 1   
         :resorigtbl 0   
         :resorigcol 0   
         :resjunk false  
         }  
         {TARGETENTRY   
         :expr   
            {VAR   
            :varno 65001   
            :varattno 2   
            :vartype 18   
            :vartypmod -1   
            :varcollid 0   
            :varlevelsup 0   
            :varnosyn 1   
            :varattnosyn 17   
            :location -1  
            }  
         :resno 2   
         :resname relkind   
         :ressortgroupref 2   
         :resorigtbl 1259   
         :resorigcol 17   
         :resjunk false  
         }  
      )  
      :qual <>   
      :lefttree   
         {SORT   
         :startup_cost 34.31   
         :total_cost 34.32   
         :plan_rows 4   
         :plan_width 9   
         :parallel_aware false   
         :parallel_safe false   
         :async_capable false   
         :plan_node_id 1   
         :targetlist (  
            {TARGETENTRY   
            :expr   
               {VAR   
               :varno 65001   
               :varattno 1   
               :vartype 20   
               :vartypmod -1   
               :varcollid 0   
               :varlevelsup 0   
               :varnosyn 0   
               :varattnosyn 0   
               :location -1  
               }  
            :resno 1   
            :resname count   
            :ressortgroupref 1   
            :resorigtbl 0   
            :resorigcol 0   
            :resjunk false  
            }  
            {TARGETENTRY   
            :expr   
               {VAR   
               :varno 65001   
               :varattno 2   
               :vartype 18   
               :vartypmod -1   
               :varcollid 0   
               :varlevelsup 0   
               :varnosyn 1   
               :varattnosyn 17   
               :location -1  
               }  
            :resno 2   
            :resname relkind   
            :ressortgroupref 2   
            :resorigtbl 1259   
            :resorigcol 17   
            :resjunk false  
            }  
         )  
         :qual <>   
         :lefttree   
            {AGG   
            :startup_cost 34.25   
            :total_cost 34.29   
            :plan_rows 4   
            :plan_width 9   
            :parallel_aware false   
            :parallel_safe false   
            :async_capable false   
            :plan_node_id 2   
            :targetlist (  
               {TARGETENTRY   
               :expr   
                  {AGGREF   
                  :aggfnoid 2803   
                  :aggtype 20   
                  :aggcollid 0   
                  :inputcollid 0   
                  :aggtranstype 20   
                  :aggargtypes <>   
                  :aggdirectargs <>   
                  :args <>   
                  :aggorder <>   
                  :aggdistinct <>   
                  :aggfilter <>   
                  :aggstar true   
                  :aggvariadic false   
                  :aggkind n   
                  :agglevelsup 0   
                  :aggsplit 0   
                  :aggno 0   
                  :aggtransno 0   
                  :location 7  
                  }  
               :resno 1   
               :resname count   
               :ressortgroupref 1   
               :resorigtbl 0   
               :resorigcol 0   
               :resjunk false  
               }  
               {TARGETENTRY   
               :expr   
                  {VAR   
                  :varno 65001   
                  :varattno 17   
                  :vartype 18   
                  :vartypmod -1   
                  :varcollid 0   
                  :varlevelsup 0   
                  :varnosyn 0   
                  :varattnosyn 0   
                  :location -1  
                  }  
               :resno 2   
               :resname relkind   
               :ressortgroupref 2   
               :resorigtbl 1259   
               :resorigcol 17   
               :resjunk false  
               }  
            )  
            :qual <>   
            :lefttree   
               {SEQSCAN   
               :startup_cost 0.00   
               :total_cost 32.17   
               :plan_rows 417   
               :plan_width 1   
               :parallel_aware false   
               :parallel_safe false   
               :async_capable false   
               :plan_node_id 3   
               :targetlist (  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 1   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 1   
                     :location -1  
                     }  
                  :resno 1   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 2   
                     :vartype 19   
                     :vartypmod -1   
                     :varcollid 950   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 2   
                     :location -1  
                     }  
                  :resno 2   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 3   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 3   
                     :location -1  
                     }  
                  :resno 3   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 4   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 4   
                     :location -1  
                     }  
                  :resno 4   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 5   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 5   
                     :location -1  
                     }  
                  :resno 5   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 6   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 6   
                     :location -1  
                     }  
                  :resno 6   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 7   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 7   
                     :location -1  
                     }  
                  :resno 7   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 8   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 8   
                     :location -1  
                     }  
                  :resno 8   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 9   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 9   
                     :location -1  
                     }  
                  :resno 9   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 10   
                     :vartype 23   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 10   
                     :location -1  
                     }  
                  :resno 10   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 11   
                     :vartype 700   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 11   
                     :location -1  
                     }  
                  :resno 11   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 12   
                     :vartype 23   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 12   
                     :location -1  
                     }  
                  :resno 12   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 13   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 13   
                     :location -1  
                     }  
                  :resno 13   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 14   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 14   
                     :location -1  
                     }  
                  :resno 14   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 15   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 15   
                     :location -1  
                     }  
                  :resno 15   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 16   
                     :vartype 18   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 16   
                     :location -1  
                     }  
                  :resno 16   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 17   
                     :vartype 18   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 17   
                     :location -1  
                     }  
                  :resno 17   
                  :resname <>   
                  :ressortgroupref 2   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 18   
                     :vartype 21   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 18   
                     :location -1  
                     }  
                  :resno 18   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 19   
                     :vartype 21   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 19   
                     :location -1  
                     }  
                  :resno 19   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 20   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 20   
                     :location -1  
                     }  
                  :resno 20   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 21   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 21   
                     :location -1  
                     }  
                  :resno 21   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 22   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 22   
                     :location -1  
                     }  
                  :resno 22   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 23   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 23   
                     :location -1  
                     }  
                  :resno 23   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 24   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 24   
                     :location -1  
                     }  
                  :resno 24   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 25   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 25   
                     :location -1  
                     }  
                  :resno 25   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 26   
                     :vartype 18   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 26   
                     :location -1  
                     }  
                  :resno 26   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 27   
                     :vartype 16   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 27   
                     :location -1  
                     }  
                  :resno 27   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 28   
                     :vartype 26   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 28   
                     :location -1  
                     }  
                  :resno 28   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 29   
                     :vartype 28   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 29   
                     :location -1  
                     }  
                  :resno 29   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 30   
                     :vartype 28   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 30   
                     :location -1  
                     }  
                  :resno 30   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 31   
                     :vartype 1034   
                     :vartypmod -1   
                     :varcollid 0   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 31   
                     :location -1  
                     }  
                  :resno 31   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 32   
                     :vartype 1009   
                     :vartypmod -1   
                     :varcollid 950   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 32   
                     :location -1  
                     }  
                  :resno 32   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
                  {TARGETENTRY   
                  :expr   
                     {VAR   
                     :varno 1   
                     :varattno 33   
                     :vartype 194   
                     :vartypmod -1   
                     :varcollid 950   
                     :varlevelsup 0   
                     :varnosyn 1   
                     :varattnosyn 33   
                     :location -1  
                     }  
                  :resno 33   
                  :resname <>   
                  :ressortgroupref 0   
                  :resorigtbl 0   
                  :resorigcol 0   
                  :resjunk false  
                  }  
               )  
               :qual <>   
               :lefttree <>   
               :righttree <>   
               :initPlan <>   
               :extParam (b)  
               :allParam (b)  
               :scanrelid 1  
               }  
            :righttree <>   
            :initPlan <>   
            :extParam (b)  
            :allParam (b)  
            :aggstrategy 2   
            :aggsplit 0   
            :numCols 1   
            :grpColIdx  17   
            :grpOperators  92   
            :grpCollations  0   
            :numGroups 4   
            :transitionSpace 0   
            :aggParams (b)  
            :groupingSets <>   
            :chain <>  
            }  
         :righttree <>   
         :initPlan <>   
         :extParam (b)  
         :allParam (b)  
         :numCols 1   
         :sortColIdx  1   
         :sortOperators  413   
         :collations  0   
         :nullsFirst  true  
         }  
      :righttree <>   
      :initPlan <>   
      :extParam (b)  
      :allParam (b)  
      :limitOffset <>   
      :limitCount   
         {CONST   
         :consttype 20   
         :consttypmod -1   
         :constcollid 0   
         :constlen 8   
         :constbyval true   
         :constisnull false   
         :location -1   
         :constvalue 8 [ 1 0 0 0 0 0 0 0 ]  
         }  
      :limitOption 0   
      :uniqNumCols 0   
      :uniqColIdx    
      :uniqOperators    
      :uniqCollations   
      }  
   :rtable (  
      {RTE   
      :alias <>   
      :eref   
         {ALIAS   
         :aliasname pg_class   
         :colnames ("oid" "relname" "relnamespace" "reltype" "reloftype" "relo  
         wner" "relam" "relfilenode" "reltablespace" "relpages" "reltuples" "r  
         elallvisible" "reltoastrelid" "relhasindex" "relisshared" "relpersist  
         ence" "relkind" "relnatts" "relchecks" "relhasrules" "relhastriggers"  
          "relhassubclass" "relrowsecurity" "relforcerowsecurity" "relispopula  
         ted" "relreplident" "relispartition" "relrewrite" "relfrozenxid" "rel  
         minmxid" "relacl" "reloptions" "relpartbound")  
         }  
      :rtekind 0   
      :relid 1259   
      :relkind r   
      :rellockmode 1   
      :tablesample <>   
      :lateral false   
      :inh false   
      :inFromCl true   
      :requiredPerms 2   
      :checkAsUser 0   
      :selectedCols (b 24)  
      :insertedCols (b)  
      :updatedCols (b)  
      :extraUpdatedCols (b)  
      :securityQuals <>  
      }  
   )  
   :resultRelations <>   
   :appendRelations <>   
   :subplans <>   
   :rewindPlanIDs (b)  
   :rowMarks <>   
   :relationOids (o 1259)  
   :invalItems <>   
   :paramExecTypes <>   
   :utilityStmt <>   
   :stmt_location 0   
   :stmt_len 85  
   }  
  
LOCATION:  elog_node_display, print.c:85  
LOG:  00000: begin tuple sort: nkeys = 1, workMem = 4096, randomAccess = f  
LOCATION:  tuplesort_begin_heap, tuplesort.c:916  
LOG:  00000: switching to bounded heapsort at 3 tuples: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s  
LOCATION:  puttuple_common, tuplesort.c:1929  
LOG:  00000: performsort of worker -1 starting: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s  
LOCATION:  tuplesort_performsort, tuplesort.c:2047  
LOG:  00000: performsort of worker -1 done: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s  
LOCATION:  tuplesort_performsort, tuplesort.c:2136  
LOG:  00000: EXECUTOR STATISTICS  
DETAIL:  ! system usage stats:  
!	0.000373 s user, 0.000092 s system, 0.000464 s elapsed  
!	[0.010056 s user, 0.005361 s system total]  
!	6248 kB max resident size  
!	0/0 [0/0] filesystem blocks in/out  
!	0/75 [0/1632] page faults/reclaims, 0 [0] swaps  
!	0 [0] signals rcvd, 0/4 [40/68] messages rcvd/sent  
!	0/0 [0/51] voluntary/involuntary context switches  
LOCATION:  ShowUsage, postgres.c:4888  
LOG:  00000: duration: 0.445 ms  plan:  
Query Text: select count(*),relkind from pg_class group by relkind order by count(*) desc limit 1;  
Limit  (cost=34.31..34.32 rows=1 width=9) (actual time=0.436..0.438 rows=1 loops=1)  
  Output: (count(*)), relkind  
  Buffers: shared hit=31  
  ->  Sort  (cost=34.31..34.32 rows=4 width=9) (actual time=0.435..0.436 rows=1 loops=1)  
        Output: (count(*)), relkind  
        Sort Key: (count(*)) DESC  
        Sort Method: top-N heapsort  Memory: 25kB  
        Buffers: shared hit=31  
        ->  HashAggregate  (cost=34.25..34.29 rows=4 width=9) (actual time=0.338..0.339 rows=4 loops=1)  
              Output: count(*), relkind  
              Group Key: pg_class.relkind  
              Batches: 1  Memory Usage: 24kB  
              Buffers: shared hit=28  
              ->  Seq Scan on pg_catalog.pg_class  (cost=0.00..32.17 rows=417 width=1) (actual time=0.021..0.175 rows=412 loops=1)  
                    Output: oid, relname, relnamespace, reltype, reloftype, relowner, relam, relfilenode, reltablespace, relpages, reltuples, relallvisible, reltoastrelid, relhasindex, relisshared, relpersistence, relkind, relnatts, relchecks, relhasrules, relhastriggers, relhassubclass, relrowsecurity, relforcerowsecurity, relispopulated, relreplident, relispartition, relrewrite, relfrozenxid, relminmxid, relacl, reloptions, relpartbound  
                    Buffers: shared hit=28  
Settings: max_parallel_workers_per_gather = '0', random_page_cost = '1.1'  
LOCATION:  explain_ExecutorEnd, auto_explain.c:433  
LOG:  00000: internal sort of worker -1 ended, 25 KB used: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s  
LOCATION:  tuplesort_free, tuplesort.c:1424  
 count | relkind   
-------+---------  
   161 | i  
(1 row)  

您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.

digoal's wechat