更新时间:2025-07-08 GMT+08:00
分享

统计信息函数

pg_stat_set_last_data_changed_time(oid)

描述:手动设置该表上最后一次insert/update/delete, exchange/truncate/drop partition操作的时间。

返回值类型:void

pg_stat_set_last_data_changed_num(oid)

描述:设置该表上当前节点的历史累计修改计数。

返回值类型:void

pv_session_time()

描述:统计当前节点各会话线程的运行时间信息及各执行阶段所消耗时间。

返回值类型:record

pv_instance_time()

描述:统计当前节点的运行时间信息及各执行阶段所消耗时间。

返回值类型:record

pg_stat_get_activity(integer)

描述:返回一个关于带有特殊PID的后台进程的记录信息,当参数为NULL时,则返回每个活动的后台进程的记录。返回结果是PG_STAT_ACTIVITY视图中的一个子集,不包含connection_info列。

返回值类型:setof record

pg_stat_get_activity_with_conninfo(integer)

描述:返回一个关于带有特殊PID的后台进程的记录信息,当参数为NULL时,则返回每个活动的后台进程的记录。返回结果是PG_STAT_ACTIVITY视图中的一个子集。

返回值类型:setof record

pg_stat_get_function_calls(oid)

描述:函数已被调用次数。

返回值类型:bigint

pg_stat_get_function_total_time(oid)

描述:该函数花费的总挂钟时间,以微秒为单位。包括花费在此函数调用上的时间。

返回值类型:double precision

pg_stat_get_function_self_time(oid)

描述:在当前事务中仅花费在此函数上的时间。不包括花费在调用函数上的时间。

返回值类型:double precision

pg_stat_get_backend_idset()

描述:设置当前活动的服务器进程数(从1到活动服务器进程的数量)。

返回值类型:setofinteger

pg_stat_get_backend_pid(integer)

描述:给定的服务器线程的线程ID。

返回值类型:bigint

1
2
3
4
5
SELECT pg_stat_get_backend_pid(1);
 pg_stat_get_backend_pid 
-------------------------
         139706243217168
(1 row)

pg_stat_get_backend_activity(integer)

描述:给定服务器进程的当前活动查询,仅在调用者是系统管理员或被查询会话的用户,并且打开track_activities的时候才能获得结果。

返回值类型:text

pg_stat_get_backend_waiting(integer)

描述:如果给定服务器进程在等待某个锁,并且调用者是系统管理员或被查询会话的用户,并且打开track_activities的时候才返回真。

返回值类型:boolean

pg_stat_get_backend_activity_start(integer)

描述:给定服务器进程当前正在执行的查询的起始时间,仅在调用者是系统管理员或被查询会话的用户,并且打开track_activities的时候才能获得结果。

返回值类型:timestampwithtimezone

pg_stat_get_backend_xact_start(integer)

描述:给定服务器进程当前正在执行的事务的开始时间,但只有当前用户是系统管理员或被查询会话的用户,并且打开track_activities的时候才能获得结果。

返回值类型:timestampwithtimezone

pg_stat_get_backend_start(integer)

描述:给定服务器进程启动的时间,如果当前用户不是系统管理员或被查询的后端的用户,则返回NULL。

返回值类型:timestampwithtimezone

gs_stack()

描述:获取CN或DN进程的堆栈信息,函数入参actor_name、tid均需要通过视图或其他函数进行获取,不支持lwtid。该函数仅25.5.0及以上集群版本支持。

gs_stack()提供了比gdb、gstack等命令更灵活、更快速的堆栈获得手段。仅建议管理员用户在问题分析定位过程中使用,不建议作为日常的监控工具使用。

返回值字段:
  • actor_name:线程所在的actor名称。
  • tid:线程ID。
  • lwtid:轻量级线程ID。
  • stack:tid或lwtid线程对应的堆栈信息。

gs_stack()函数有三种使用方式:

  • 方式一:gs_stack()函数入参为空,表示打印CN和DN所有线程的堆栈。
    • 可通过gsql连接CN执行。
    • 获取CN和所有DN上所有线程的运行堆栈,运行时间长,对正常业务运行有影响,不建议频繁使用。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    select * from gs_stack();
      actor_name  |       tid       | lwtid  |                                                                                                                                                                                                                                                                                                                               
                                       stack                                                                                                                                                                                                                                                                                                                                 
    
    --------------+-----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ----------------------------------
     coordinator1 | 106927505866816 | 186762 | GsStackBacktrace(int) + 0x1a                                                                                                                                                                                                                                                                                                  
    
                                     +
                  |                 |        | 0x7ffb45f6d1f0                                                                                                                                                                                                                                                                                                                
    
                                     +
                  |                 |        | __poll + 0x4f                                                                                                                                                                                                                                                                                                                 
    
                                     +
                  |                 |        | poll + 0xa0                                                                                                                                                                                                                                                                                                                   
    
                                     +
                  |                 |        | poll(pollfd*, unsigned long, int, void (*)()) + 0x19e                                                                                                                                                                                                                                                                         
    
                                     +
                  |                 |        | ServerLoop() + 0x570                                                                                                                                                                                                                                                                                                          
    
                                     +
                  |                 |        | PmStartupThreads() + 0x167                                                                                                                                                                                                                                                                                                    
    
                                     +
                  |                 |        | PostmasterMain(int, char**) + 0x22f                                                                                                                                                                                                                                                                                                                         
                  |                 |        | 
     coordinator1 | 106927505998400 | 186773 | GsStackBacktrace(int) + 0x1a                                                                                                                                                                                                                                                                                                  
                                     +
                  |                 |        | 0x7ffb45f6d1f0                                                                                                                                                                                                                                                                                                                
    
                                     +
                  |                 |        | 0x7ffb45fb41aa                                                                                                                                                                                                                                                                                                                
    
                                     +
                  |                 |        | pthread_cond_clockwait + 0x1e2                                                                                                                                                                                                                                                                                                
    
                                     +
                  |                 |        | std::__condvar::wait_until(std::mutex&, int, timespec&) + 0x39                                                                                                                                                                                                                                                                
    
  • 方式二:gs_stack(actor_name)函数入参值为指定的actor_name,表示打印名称为actor_name的actor上所有线程的堆栈。
    • 可通过gsql连接CN执行。
    • actor_name必须为CN或DN的名字,否则会报错“invalid actor_name”。
    • actor_name需通过其他视图或函数获取(例如函数fabricsql_query_wait_status)。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    select * from gs_stack('coordinator1');
      actor_name  |       tid       | lwtid  |                                                                                                                                                                                                                                                                                                                               
                                       stack                                                                                                                                                                                                                                                                                                                                 
    
    --------------+-----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ----------------------------------
     coordinator1 | 106927505866816 | 186762 | GsStackBacktrace(int) + 0x1a                                                                                                                                                                                                                                                                                                  
    
                                     +
                  |                 |        | 0x7ffb45f6d1f0                                                                                                                                                                                                                                                                                                                
    
                                     +
                  |                 |        | __poll + 0x4f                                                                                                                                                                                                                                                                                                                 
    
                                     +
                  |                 |        | poll + 0xa0                                                                                                                                                                                                                                                                                                                   
    
                                     +
                  |                 |        | poll(pollfd*, unsigned long, int, void (*)()) + 0x19e                                                                                                                                                                                                                                                                         
    
                                     +
                  |                 |        | ServerLoop() + 0x570                                                                                                                                                                                                                                                                                                          
    
                                     +
                  |                 |        | PmStartupThreads() + 0x167                                                                                                                                                                                                                                                                                                    
    
                                     +
                  |                 |        | PostmasterMain(int, char**) + 0x22f                                                                                                                                                                                                                                                                                           
    
  • 方式三:gs_stack(actor_name,tid)函数入参值为指定的actor_name和tid,表示打印名称为actor_name的actor上指定tid线程的堆栈。
    • 可通过gsql连接CN执行。
    • actor_name必须为CN或DN的名字,否则会报错“invalid actorName”。
    • actor_name和tid需通过其他视图或函数获取(例如函数fabricsql_query_wait_status)。
    • 获取指定CN或DN进程内指定线程的运行堆栈,运行时间短,对正常业务运行无影响,推荐使用。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    select * from gs_stack('coordinator1',106927505998400);
      actor_name  |       tid       | lwtid  |                                                                                                                                                                                       stack                                                                                                                                   
    
    --------------+-----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ----------------------------------------------------
     coordinator1 | 106927505998400 | 186773 | GsStackBacktrace(int) + 0x1a                                                                                                                                                                                                                                                                                                  
                                                       +
                  |                 |        | 0x7ffb45f6d1f0                                                                                                                                                                                                                                                                                                                
                                                       +
                  |                 |        | 0x7ffb45fb41aa                                                                                                                                                                                                                                                                                                                
                                                       +
                  |                 |        | pthread_cond_clockwait + 0x1e2                                                                                                                                                                                                                                                                                                
                                                       +
                  |                 |        | std::__condvar::wait_until(std::mutex&, int, timespec&) + 0x39                                                                                                                                                                                                                                                                
                                                       +
                  |                 |        
    
    (1 row)
    

相关文档