云服务器内容精选
-
PGXC_WLM_SESSION_INFO PGXC_WLM_SESSION_INFO视图显示在所有CN上执行作业结束后的负载管理记录。此视图的数据直接从系统表GS_WLM_SESSION_INFO获取。 具体的字段与GS_WLM_SESSION_HISTORY视图相似,请参考表1。 表1 GS_WLM_SESSION_HISTORY的字段 名称 类型 描述 datid oid 连接后端的数据库OID。 dbname text 连接后端的数据库名称。 schemaname text 模式名。 nodename text 语句执行的CN名称。 username text 连接到后端的用户名。 application_name text 连接到后端的应用名。 client_addr inet 连接到后端的客户端的IP地址。 如果此字段是null,它表明通过服务器机器上UNIX套接字连接客户端或者这是内部进程,如autovacuum。 client_hostname text 客户端的主机名,这个字段是通过client_addr的反向DNS查找得到。这个字段只有在启动log_hostname且使用IP连接时才非空。 client_port integer 客户端用于与后端通讯的TCP端口号,如果使用Unix套接字,则为-1。 query_band text 用于标示作业类型,可通过GUC参数query_band进行设置,默认为空字符串。 block_time bigint 语句执行前的阻塞时间,包含语句解析和优化时间,单位为毫秒。 start_time timestamp with time zone 语句执行的开始时间。 finish_time timestamp with time zone 语句执行的结束时间。 duration bigint 语句实际执行的时间,单位为毫秒。 estimate_total_time bigint 语句预估执行时间,单位为毫秒。 status text 语句执行结束状态:正常为finished,异常为aborted。该处记录的语句状态应为数据库服务端执行状态,当服务器端执行成功,结果集返回时报错,该语句应为finished。 abort_info text 语句执行结束状态为aborted时显示异常信息。 resource_pool text 用户使用的资源池。 control_group text 语句所使用的Cgroup。 estimate_memory integer 语句预估使用内存,单位为MB。 min_peak_memory integer 语句在所有DN上的最小内存峰值,单位为MB。 max_peak_memory integer 语句在所有DN上的最大内存峰值,单位为MB。 average_peak_memory integer 语句执行过程中的内存使用平均值,单位为MB。 memory_skew_percent integer 语句各DN间的内存使用倾斜率。 spill_info text 语句在所有DN上的下盘信息: None:所有DN均未下盘。 All:所有DN均下盘。 [a:b]:数量为b个DN中有a个DN下盘。 min_spill_size integer 若发生下盘,所有下盘DN的最小下盘数据量,默认为0。单位为MB。 max_spill_size integer 若发生下盘,所有下盘DN的最大下盘数据量,默认为0。单位为MB。 average_spill_size integer 若发生下盘,所有下盘DN的平均下盘数据量,默认为0。单位为MB。 spill_skew_percent integer 若发生下盘,DN间下盘倾斜率。 min_dn_time bigint 语句在所有DN上的最小执行时间,单位为毫秒。 max_dn_time bigint 语句在所有DN上的最大执行时间,单位为毫秒。 average_dn_time bigint 语句在所有DN上的平均执行时间,单位为毫秒。 dntime_skew_percent integer 语句在各DN间的执行时间倾斜率。 min_cpu_time bigint 语句在所有DN上的最小CPU时间,单位为毫秒。 max_cpu_time bigint 语句在所有DN上的最大CPU时间,单位为毫秒。 total_cpu_time bigint 语句在所有DN上的CPU总时间,单位为毫秒。 cpu_skew_percent integer 语句在DN间的CPU时间倾斜率。 min_peak_iops integer 语句在所有DN上的每秒最小IO峰值(列存单位为次/s,行存单位为万次/s),该功能在8.1.3集群版本上未启用,不建议参考该字段进行内存问题分析。 max_peak_iops integer 语句在所有DN上的每秒最大IO峰值(列存单位为次/s,行存单位为万次/s),该功能在8.1.3集群版本上未启用,不建议参考该字段进行内存问题分析。 average_peak_iops integer 语句在所有DN上的每秒平均IO峰值(列存单位为次/s,行存单位为万次/s),该功能在8.1.3集群版本上未启用,不建议参考该字段进行内存问题分析。 iops_skew_percent integer 语句在DN间的IO倾斜率,该功能在8.1.3集群上未启用,不建议参考该字段进行内存问题分析。 warning text 主要显示如下几类告警信息以及SQL自诊断调优相关告警: Spill file size large than 256MB Broadcast size large than 100MB Early spill Spill times is greater than 3 Spill on memory adaptive Hash table conflict queryid bigint 语句执行使用的内部查询ID。 query text 执行的语句。 query_plan text 语句的执行计划。 node_group text 语句所属用户对应的逻辑集群。 pid bigint 语句的后端线程的PID。 lane text 语句执行时所在的快慢车道。 unique_sql_id bigint 归一化的Unique SQL ID。 父主题: 系统视图
-
GS_WLM_OPERATOR_HISTORY GS_WLM_OPERATOR_HISTORY视图显示的是当前用户在当前CN上执行作业结束后的算子的相关记录。 此视图用于从 GaussDB (DWS)中查询数据,数据库中的数据会定时被清理。当GUC参数enable_resource_record为on时,视图中的记录每隔3分钟被转储到系统表GS_WLM_OPERATOR_INFO中一次,同时视图中的记录被删除;当GUC参数enable_resource_record为off时,记录在视图中的存留时间达到超期时间后会被删除。记录的数据同表1。 表1 GS_WLM_OPERATOR_INFO的字段 名称 类型 描述 nodename text 执行语句的CN实例名称。 queryid bigint 语句执行使用的内部query_id。 pid bigint 后端线程ID。 plan_node_id integer 查询对应的执行计划的plan node id。 plan_node_name text 对应于plan_node_id的算子的名称。 start_time timestamp with time zone 该算子处理第一条数据的开始时间。 duration bigint 该算子到结束时候总的执行时间,单位为毫秒。 query_dop integer 当前算子执行时的并行度。 estimated_rows bigint 优化器估算的行数信息。 tuple_processed bigint 当前算子返回的元素个数。 min_peak_memory integer 当前算子在所有DN上的最小内存峰值,单位为MB。 max_peak_memory integer 当前算子在所有DN上的最大内存峰值,单位为MB。 average_peak_memory integer 当前算子在所有DN上的平均内存峰值,单位为MB。 memory_skew_percent integer 当前算子在各DN间的内存使用倾斜率。 min_spill_size integer 若发生下盘,所有下盘DN的最小下盘数据量,单位为MB。默认为0。 max_spill_size integer 若发生下盘,所有下盘DN的最大下盘数据量,单位为MB。默认为0。 average_spill_size integer 若发生下盘,所有下盘DN的平均下盘数据量,单位为MB。默认为0。 spill_skew_percent integer 若发生下盘,DN间下盘倾斜率。 min_cpu_time bigint 该算子在所有DN上的最小执行时间,单位为毫秒。 max_cpu_time bigint 该算子在所有DN上的最大执行时间,单位为毫秒。 total_cpu_time bigint 该算子在所有DN上的总执行时间,单位为毫秒。 cpu_skew_percent integer DN间执行时间的倾斜率。 warning text 主要显示如下几类告警信息: Sort/SetOp/HashAgg/HashJoin spill Spill file size large than 256MB Broadcast size large than 100MB Early spill Spill times is greater than 3 Spill on memory adaptive Hash table conflict 父主题: 系统视图
-
建议3.10 尽量避免对关联条件字段和过滤条件字段进行函数运算 违反规范的影响: 对关联条件字段和过滤条件字段进行函数运算,导致优化器无法获取准确的字段统计信息,无法生成最优计划,影响执行性能。 方案建议: 关联条件字段之间直接比较,如有需要运算后比较的场景需在数据入库前进行预处理。 过滤条件和常量比较时,只对常量列进行函数运算,字段列不进行函数运算,例如: 1 2 3 4 5 6 7 8 9 SELECT id, from_image_id, from_person_id, from_video_id FROM face_data WHERE SS.DEL_FLAG = 'N' AND NVL(SS.DELETE_FLAG, 'N') = 'N' 改写为: SELECT id, from_image_id, from_person_id, from_video_id FROM face_data where SS.DEL_FLAG = 'N' AND (SS.DELETE_FLAG = 'N' or SS.DELETE_FLAG is null)
-
建议3.17 针对SQL标记注释,唯一标识SQL的归属 违反规范的影响: 业务溯源能力较差,只能通过数据库、用户名、客户端IP信息找开发人员确认。 方案建议: 建议使用query_band,例如: 1 SET query_band='JobName=abc;AppName=test;UserName=user'; 每个SQL开头标记注释,唯一标识SQL的归属,方便问题定位及应用性能分析,命名建议为: /* 模块名_工具名_作业名_步骤 */,如: /* mca_python_xxxxxx_step1 */ insert into xxx select … from
-
max_files_per_node 参数说明:限制单个节点上单个SQL打开的文件最大数量。通常情况下,不需要设置此参数。该参数仅8.1.3及以上集群版本支持。 参数类型:SUSET 取值范围:整型,-1~INT_MAX,其中-1表示不限制最大数量。 默认值:-1 新装集群中该参数的默认值为-1,升级场景该参数的默认值为保持前向兼容维持原值。 执行语句报错“The last file name is [%s] and %d files have already been opened on data node [%s] with a maximum of %d files.”时,请尝试增大max_files_per_node值。
-
GS_WLM_SESSION_INFO GS_WLM_SESSION_INFO系统表显示所有CN执行作业结束后的负载管理记录。此数据是从内核中转储到系统表中的数据。当设置GUC参数enable_resource_record为on时,系统会定时将GS_WLM_SESSION_HISTORY中的记录导入此系统表,开启此功能会占用系统存储空间并对性能有一定影响,不建议用户使用。具体的字段请参考表1。 此系统表的schema是dbms_om。 pg_catalog下存在GS_WLM_SESSION_INFO视图。 父主题: 系统表
-
GS_WLM_SESSION_HISTORY GS_WLM_SESSION_HISTORY视图显示当前用户在当前CN上执行作业结束后的负载管理记录。此视图用于从GaussDB(DWS)中查询数据,仅当GUC参数enable_resource_track为on时,视图会查询GS_WLM_SESSION_INFO表中3分钟内的数据进行返回。 表1 GS_WLM_SESSION_HISTORY的字段 名称 类型 描述 datid oid 连接后端的数据库OID。 dbname text 连接后端的数据库名称。 schemaname text 模式名。 nodename text 语句执行的CN名称。 username text 连接到后端的用户名。 application_name text 连接到后端的应用名。 client_addr inet 连接到后端的客户端的IP地址。 如果此字段是null,它表明通过服务器机器上UNIX套接字连接客户端或者这是内部进程,如autovacuum。 client_hostname text 客户端的主机名,这个字段是通过client_addr的反向DNS查找得到。这个字段只有在启动log_hostname且使用IP连接时才非空。 client_port integer 客户端用于与后端通讯的TCP端口号,如果使用Unix套接字,则为-1。 query_band text 用于标示作业类型,可通过GUC参数query_band进行设置,默认为空字符串。 block_time bigint 语句执行前的阻塞时间,包含语句解析和优化时间,单位为毫秒。 start_time timestamp with time zone 语句执行的开始时间。 finish_time timestamp with time zone 语句执行的结束时间。 duration bigint 语句实际执行的时间,单位为毫秒。 estimate_total_time bigint 语句预估执行时间,单位为毫秒。 status text 语句执行结束状态:正常为finished,异常为aborted。该处记录的语句状态应为数据库服务端执行状态,当服务器端执行成功,结果集返回时报错,该语句应为finished。 abort_info text 语句执行结束状态为aborted时显示异常信息。 resource_pool text 用户使用的资源池。 control_group text 语句所使用的Cgroup。 estimate_memory integer 语句预估使用内存,单位为MB。 min_peak_memory integer 语句在所有DN上的最小内存峰值,单位为MB。 max_peak_memory integer 语句在所有DN上的最大内存峰值,单位为MB。 average_peak_memory integer 语句执行过程中的内存使用平均值,单位为MB。 memory_skew_percent integer 语句各DN间的内存使用倾斜率。 spill_info text 语句在所有DN上的下盘信息: None:所有DN均未下盘。 All:所有DN均下盘。 [a:b]:数量为b个DN中有a个DN下盘。 min_spill_size integer 若发生下盘,所有下盘DN的最小下盘数据量,默认为0。单位为MB。 max_spill_size integer 若发生下盘,所有下盘DN的最大下盘数据量,默认为0。单位为MB。 average_spill_size integer 若发生下盘,所有下盘DN的平均下盘数据量,默认为0。单位为MB。 spill_skew_percent integer 若发生下盘,DN间下盘倾斜率。 min_dn_time bigint 语句在所有DN上的最小执行时间,单位为毫秒。 max_dn_time bigint 语句在所有DN上的最大执行时间,单位为毫秒。 average_dn_time bigint 语句在所有DN上的平均执行时间,单位为毫秒。 dntime_skew_percent integer 语句在各DN间的执行时间倾斜率。 min_cpu_time bigint 语句在所有DN上的最小CPU时间,单位为毫秒。 max_cpu_time bigint 语句在所有DN上的最大CPU时间,单位为毫秒。 total_cpu_time bigint 语句在所有DN上的CPU总时间,单位为毫秒。 cpu_skew_percent integer 语句在DN间的CPU时间倾斜率。 min_peak_iops integer 语句在所有DN上的每秒最小IO峰值(列存单位为次/s,行存单位为万次/s),该功能在8.1.3集群版本上未启用,不建议参考该字段进行内存问题分析。 max_peak_iops integer 语句在所有DN上的每秒最大IO峰值(列存单位为次/s,行存单位为万次/s),该功能在8.1.3集群版本上未启用,不建议参考该字段进行内存问题分析。 average_peak_iops integer 语句在所有DN上的每秒平均IO峰值(列存单位为次/s,行存单位为万次/s),该功能在8.1.3集群版本上未启用,不建议参考该字段进行内存问题分析。 iops_skew_percent integer 语句在DN间的IO倾斜率,该功能在8.1.3集群上未启用,不建议参考该字段进行内存问题分析。 warning text 主要显示如下几类告警信息以及SQL自诊断调优相关告警: Spill file size large than 256MB Broadcast size large than 100MB Early spill Spill times is greater than 3 Spill on memory adaptive Hash table conflict queryid bigint 语句执行使用的内部查询ID。 query text 执行的语句。 query_plan text 语句的执行计划。 node_group text 语句所属用户对应的逻辑集群。 pid bigint 语句的后端线程的PID。 lane text 语句执行时所在的快慢车道。 unique_sql_id bigint 归一化的Unique SQL ID。 父主题: 系统视图
-
PGXC_WLM_OPERATOR_INFO PGXC_WLM_OPERATOR_INFO视图显示在所有CN上执行作业结束时的算子信息。此视图的数据直接从系统表GS_WLM_OPERATOR_INFO获取。 需要有系统管理员权限或预置角色gs_role_read_all_stats权限才可以访问此视图。具体的字段请参考表1。 表1 GS_WLM_OPERATOR_INFO的字段 名称 类型 描述 nodename text 执行语句的CN实例名称。 queryid bigint 语句执行使用的内部query_id。 pid bigint 后端线程ID。 plan_node_id integer 查询对应的执行计划的plan node id。 plan_node_name text 对应于plan_node_id的算子的名称。 start_time timestamp with time zone 该算子处理第一条数据的开始时间。 duration bigint 该算子到结束时候总的执行时间,单位为毫秒。 query_dop integer 当前算子执行时的并行度。 estimated_rows bigint 优化器估算的行数信息。 tuple_processed bigint 当前算子返回的元素个数。 min_peak_memory integer 当前算子在所有DN上的最小内存峰值,单位为MB。 max_peak_memory integer 当前算子在所有DN上的最大内存峰值,单位为MB。 average_peak_memory integer 当前算子在所有DN上的平均内存峰值,单位为MB。 memory_skew_percent integer 当前算子在各DN间的内存使用倾斜率。 min_spill_size integer 若发生下盘,所有下盘DN的最小下盘数据量,单位为MB。默认为0。 max_spill_size integer 若发生下盘,所有下盘DN的最大下盘数据量,单位为MB。默认为0。 average_spill_size integer 若发生下盘,所有下盘DN的平均下盘数据量,单位为MB。默认为0。 spill_skew_percent integer 若发生下盘,DN间下盘倾斜率。 min_cpu_time bigint 该算子在所有DN上的最小执行时间,单位为毫秒。 max_cpu_time bigint 该算子在所有DN上的最大执行时间,单位为毫秒。 total_cpu_time bigint 该算子在所有DN上的总执行时间,单位为毫秒。 cpu_skew_percent integer DN间执行时间的倾斜率。 warning text 主要显示如下几类告警信息: Sort/SetOp/HashAgg/HashJoin spill Spill file size large than 256MB Broadcast size large than 100MB Early spill Spill times is greater than 3 Spill on memory adaptive Hash table conflict 父主题: 系统视图
-
GS_WLM_OPERATOR_INFO GS_WLM_OPERATOR_INFO系统表显示执行作业结束后的算子相关的记录。此数据是从内核中转储到系统表中的数据。当设置GUC参数enable_resource_record为on时,系统会定时将GS_WLM_OPERATOR_HISTORY中的记录导入此系统表,开启此功能会占用系统存储空间并对性能有一定影响,不建议用户使用。 此系统表的schema是dbms_om。 pg_catalog下存在GS_WLM_OPERATOR_INFO视图。 表1 GS_WLM_OPERATOR_INFO的字段 名称 类型 描述 nodename text 执行语句的CN实例名称。 queryid bigint 语句执行使用的内部query_id。 pid bigint 后端线程ID。 plan_node_id integer 查询对应的执行计划的plan node id。 plan_node_name text 对应于plan_node_id的算子的名称。 start_time timestamp with time zone 该算子处理第一条数据的开始时间。 duration bigint 该算子到结束时候总的执行时间,单位为毫秒。 query_dop integer 当前算子执行时的并行度。 estimated_rows bigint 优化器估算的行数信息。 tuple_processed bigint 当前算子返回的元素个数。 min_peak_memory integer 当前算子在所有DN上的最小内存峰值,单位为MB。 max_peak_memory integer 当前算子在所有DN上的最大内存峰值,单位为MB。 average_peak_memory integer 当前算子在所有DN上的平均内存峰值,单位为MB。 memory_skew_percent integer 当前算子在各DN间的内存使用倾斜率。 min_spill_size integer 若发生下盘,所有下盘DN的最小下盘数据量,单位为MB。默认为0。 max_spill_size integer 若发生下盘,所有下盘DN的最大下盘数据量,单位为MB。默认为0。 average_spill_size integer 若发生下盘,所有下盘DN的平均下盘数据量,单位为MB。默认为0。 spill_skew_percent integer 若发生下盘,DN间下盘倾斜率。 min_cpu_time bigint 该算子在所有DN上的最小执行时间,单位为毫秒。 max_cpu_time bigint 该算子在所有DN上的最大执行时间,单位为毫秒。 total_cpu_time bigint 该算子在所有DN上的总执行时间,单位为毫秒。 cpu_skew_percent integer DN间执行时间的倾斜率。 warning text 主要显示如下几类告警信息: Sort/SetOp/HashAgg/HashJoin spill Spill file size large than 256MB Broadcast size large than 100MB Early spill Spill times is greater than 3 Spill on memory adaptive Hash table conflict 父主题: 系统表
-
总体开发设计规范 下表是GaussDB(DWS)开发过程中需遵循的开发设计规范全集列表,可以单击链接跳转到对应的规则下了解详细说明。 表1 GaussDB(DWS)开发设计规范全集列表 编号 类别 规则/建议 1 连接管理规范 - 规则1.1 GaussDB(DWS)集群必须配置负载均衡 2 规则1.2 连接数据库完成所需操作后,必须关闭数据库连接(连接池场景除外) 3 规则1.3 开启的事务最后必须提交或回滚 4 规则1.4 应用侧使用连接池场景,其空闲超时配置必须小于服务侧的SESSION_TIMEOUT配置 5 规则1.5 应用侧使用连接池场景,如使用连接SET设置过参数,当将连接归还连接池前,必须进行参数重置 6 规则1.6 应用侧使用连接池场景,如使用连接创建过临时表,当将连接归还连接池前,必须手动清理所创建的临时表 7 对象设计规范 DATABASE对象设计 规则2.1 避免直接使用内置的DATABASE(如postgres、gaussdb等) 8 规则2.2 创建DATABASE时必须选择正确的数据库编码 9 规则2.3 创建DATABASE时必须选择正确的数据库兼容模式 10 建议2.4 存在关联计算的对象放在同一个DATABASE中 11 USER对象设计 规则2.5 禁止使用特殊权限用户运行业务,需遵循权限最小分配原则 12 规则2.6 禁止使用一个数据库用户运行所有业务 13 SCHEMA对象设计 建议2.7 不在其他USER的私有SCHEMA下创建对象 14 TABLESPACE对象设计 规则2.8 禁止自定义TABLESPACE表空间 15 TABLE对象设计(重点) 规则2.9 创建表时必须选择正确的分布方式和分布列 16 规则2.10 创建表时必须选择正确的存储方式 17 规则2.11 创建表时必须选择正确的分区策略 18 建议2.12 表字段的设计要遵循高效、准确原则 19 建议2.13 避免使用自增列或自增数据类型 20 INDEX对象设计(重点) 规则2.14 只创建必要的索引,创建索引必须选择合适的列和顺序 21 建议2.15 列存表通常可不建索引,极致性能场景需正确选择索引类型 22 VIEW对象设计 建议2.16 视图的嵌套需避免超过三层 23 SQL开发规范 DDL操作规范 建议3.1 DDL操作(CREATE除外)避免在业务高峰期和长事务中执行 24 规则3.2 DROP删除对象操作必须明确删除对象范围 25 INSERT操作规范 规则3.3 INSERT多VALUES批插场景使用COPY替代 26 建议3.4 禁止针对普通列存表进行实时INSERT操作 27 UPDATE/DELETE操作规范 建议3.5 避免并发UPDATE/DELETE行存表的同一行 28 建议3.6 避免对列存表频繁或并发执行UPDATE/DELETE 29 SELECT操作规范 规则3.7 禁止执行不下推的SQL 30 规则3.8 禁止多表关联时缺少关联条件 31 规则3.9 多表关联字段数据类型要保持一致 32 建议3.10 尽量避免对关联条件字段和过滤条件字段进行函数运算 33 建议3.11 资源高消耗型SQL需做好压测和并发管控 34 规则3.12 禁止针对行存大表的频繁COUNT 35 建议3.13 避免查询返回超大结果集(数据导出场景除外) 36 建议3.14 查询时避免使用“SELECT *”写法 37 建议3.15 谨慎使用递归语句(WITH RECURSIVE),明确终止条件,确保递归可终止 38 建议3.16 访问对象(表,函数等)时带上SCHEMA名称 39 建议3.17 针对SQL标记注释,唯一标识SQL的归属 40 外表功能开发规范 GDS外表 规则4.1 GDS服务须单独使用服务器部署在DWS集群外 41 协同分析外表 规则4.2 避免同时对多个协同分析外表进行跨集群并发访问 42 存储过程开发规范 - 建议5.1 避免使用复杂的存储过程,避免存储过程嵌套 43 规则5.2 存储过程内需避免执行非CREATE类的DDL操作
-
操作步骤 查询当前实例最近的资源使用情况。 1 SELECT * FROM GS_WLM_INSTANCE_HISTORY ORDER BY TIMESTAMP DESC; 查询结果如下: 1 2 3 4 5 6 instancename | timestamp | used_cpu | free_mem | used_mem | io_await | io_util | disk_read | disk_write | process_read | process_write | logical_read | logical_write | read_counts | write_counts --------------+-------------------------------+----------+----------+----------+----------+----------+-----------+------------+--------------+---------------+--------------+---------------+-------------+-------------- dn_6015_6016 | 2022-01-10 17:29:17.329495+08 | 0 | 14570 | 8982 | 662.923 | 99.9601 | 697666 | 93655.5 | 183104 | 30082 | 285659 | 30079 | 357717 | 37667 dn_6015_6016 | 2022-01-10 17:29:07.312049+08 | 0 | 14578 | 8974 | 883.102 | 99.9801 | 756228 | 81417.4 | 189722 | 30786 | 285681 | 30780 | 358103 | 38584 dn_6015_6016 | 2022-01-10 17:28:57.284472+08 | 0 | 14583 | 8969 | 727.135 | 99.9801 | 648581 | 88799.6 | 177120 | 31176 | 252161 | 31175 | 316085 | 39079 dn_6015_6016 | 2022-01-10 17:28:47.256613+08 | 0 | 14591 | 8961 | 679.534 | 100.08 | 655360 | 169962 | 179404 | 30424 | 242002 | 30422 | 303351 | 38136
-
GS_WLM_SESSION_INFO 本视图显示当前CN上已经完成执行的query语句的执行信息,此系统视图信息来源于系统表dbms_om.gs_wlm_session_info。 具体的字段请参考表1。 表1 GS_WLM_SESSION_HISTORY的字段 名称 类型 描述 datid oid 连接后端的数据库OID。 dbname text 连接后端的数据库名称。 schemaname text 模式名。 nodename text 语句执行的CN名称。 username text 连接到后端的用户名。 application_name text 连接到后端的应用名。 client_addr inet 连接到后端的客户端的IP地址。 如果此字段是null,它表明通过服务器机器上UNIX套接字连接客户端或者这是内部进程,如autovacuum。 client_hostname text 客户端的主机名,这个字段是通过client_addr的反向DNS查找得到。这个字段只有在启动log_hostname且使用IP连接时才非空。 client_port integer 客户端用于与后端通讯的TCP端口号,如果使用Unix套接字,则为-1。 query_band text 用于标示作业类型,可通过GUC参数query_band进行设置,默认为空字符串。 block_time bigint 语句执行前的阻塞时间,包含语句解析和优化时间,单位为毫秒。 start_time timestamp with time zone 语句执行的开始时间。 finish_time timestamp with time zone 语句执行的结束时间。 duration bigint 语句实际执行的时间,单位为毫秒。 estimate_total_time bigint 语句预估执行时间,单位为毫秒。 status text 语句执行结束状态:正常为finished,异常为aborted。该处记录的语句状态应为数据库服务端执行状态,当服务器端执行成功,结果集返回时报错,该语句应为finished。 abort_info text 语句执行结束状态为aborted时显示异常信息。 resource_pool text 用户使用的资源池。 control_group text 语句所使用的Cgroup。 estimate_memory integer 语句预估使用内存,单位为MB。 min_peak_memory integer 语句在所有DN上的最小内存峰值,单位为MB。 max_peak_memory integer 语句在所有DN上的最大内存峰值,单位为MB。 average_peak_memory integer 语句执行过程中的内存使用平均值,单位为MB。 memory_skew_percent integer 语句各DN间的内存使用倾斜率。 spill_info text 语句在所有DN上的下盘信息: None:所有DN均未下盘。 All:所有DN均下盘。 [a:b]:数量为b个DN中有a个DN下盘。 min_spill_size integer 若发生下盘,所有下盘DN的最小下盘数据量,默认为0。单位为MB。 max_spill_size integer 若发生下盘,所有下盘DN的最大下盘数据量,默认为0。单位为MB。 average_spill_size integer 若发生下盘,所有下盘DN的平均下盘数据量,默认为0。单位为MB。 spill_skew_percent integer 若发生下盘,DN间下盘倾斜率。 min_dn_time bigint 语句在所有DN上的最小执行时间,单位为毫秒。 max_dn_time bigint 语句在所有DN上的最大执行时间,单位为毫秒。 average_dn_time bigint 语句在所有DN上的平均执行时间,单位为毫秒。 dntime_skew_percent integer 语句在各DN间的执行时间倾斜率。 min_cpu_time bigint 语句在所有DN上的最小CPU时间,单位为毫秒。 max_cpu_time bigint 语句在所有DN上的最大CPU时间,单位为毫秒。 total_cpu_time bigint 语句在所有DN上的CPU总时间,单位为毫秒。 cpu_skew_percent integer 语句在DN间的CPU时间倾斜率。 min_peak_iops integer 语句在所有DN上的每秒最小IO峰值(列存单位为次/s,行存单位为万次/s),该功能在8.1.3集群版本上未启用,不建议参考该字段进行内存问题分析。 max_peak_iops integer 语句在所有DN上的每秒最大IO峰值(列存单位为次/s,行存单位为万次/s),该功能在8.1.3集群版本上未启用,不建议参考该字段进行内存问题分析。 average_peak_iops integer 语句在所有DN上的每秒平均IO峰值(列存单位为次/s,行存单位为万次/s),该功能在8.1.3集群版本上未启用,不建议参考该字段进行内存问题分析。 iops_skew_percent integer 语句在DN间的IO倾斜率,该功能在8.1.3集群上未启用,不建议参考该字段进行内存问题分析。 warning text 主要显示如下几类告警信息以及SQL自诊断调优相关告警: Spill file size large than 256MB Broadcast size large than 100MB Early spill Spill times is greater than 3 Spill on memory adaptive Hash table conflict queryid bigint 语句执行使用的内部查询ID。 query text 执行的语句。 query_plan text 语句的执行计划。 node_group text 语句所属用户对应的逻辑集群。 pid bigint 语句的后端线程的PID。 lane text 语句执行时所在的快慢车道。 unique_sql_id bigint 归一化的Unique SQL ID。 父主题: 系统视图
-
PGXC_WLM_SESSION_HISTORY PGXC_WLM_SESSION_HISTORY视图显示在所有CN上执行作业结束后的负载管理记录。此视图用于从GaussDB(DWS)数据库中查询数据,数据库中的数据会被定时清理,清理周期为3分钟,详见GS_WLM_SESSION_HISTORY视图介绍。 具体的字段与GS_WLM_SESSION_HISTORY相似,请参考表1。 表1 GS_WLM_SESSION_HISTORY的字段 名称 类型 描述 datid oid 连接后端的数据库OID。 dbname text 连接后端的数据库名称。 schemaname text 模式名。 nodename text 语句执行的CN名称。 username text 连接到后端的用户名。 application_name text 连接到后端的应用名。 client_addr inet 连接到后端的客户端的IP地址。 如果此字段是null,它表明通过服务器机器上UNIX套接字连接客户端或者这是内部进程,如autovacuum。 client_hostname text 客户端的主机名,这个字段是通过client_addr的反向DNS查找得到。这个字段只有在启动log_hostname且使用IP连接时才非空。 client_port integer 客户端用于与后端通讯的TCP端口号,如果使用Unix套接字,则为-1。 query_band text 用于标示作业类型,可通过GUC参数query_band进行设置,默认为空字符串。 block_time bigint 语句执行前的阻塞时间,包含语句解析和优化时间,单位为毫秒。 start_time timestamp with time zone 语句执行的开始时间。 finish_time timestamp with time zone 语句执行的结束时间。 duration bigint 语句实际执行的时间,单位为毫秒。 estimate_total_time bigint 语句预估执行时间,单位为毫秒。 status text 语句执行结束状态:正常为finished,异常为aborted。该处记录的语句状态应为数据库服务端执行状态,当服务器端执行成功,结果集返回时报错,该语句应为finished。 abort_info text 语句执行结束状态为aborted时显示异常信息。 resource_pool text 用户使用的资源池。 control_group text 语句所使用的Cgroup。 estimate_memory integer 语句预估使用内存,单位为MB。 min_peak_memory integer 语句在所有DN上的最小内存峰值,单位为MB。 max_peak_memory integer 语句在所有DN上的最大内存峰值,单位为MB。 average_peak_memory integer 语句执行过程中的内存使用平均值,单位为MB。 memory_skew_percent integer 语句各DN间的内存使用倾斜率。 spill_info text 语句在所有DN上的下盘信息: None:所有DN均未下盘。 All:所有DN均下盘。 [a:b]:数量为b个DN中有a个DN下盘。 min_spill_size integer 若发生下盘,所有下盘DN的最小下盘数据量,默认为0。单位为MB。 max_spill_size integer 若发生下盘,所有下盘DN的最大下盘数据量,默认为0。单位为MB。 average_spill_size integer 若发生下盘,所有下盘DN的平均下盘数据量,默认为0。单位为MB。 spill_skew_percent integer 若发生下盘,DN间下盘倾斜率。 min_dn_time bigint 语句在所有DN上的最小执行时间,单位为毫秒。 max_dn_time bigint 语句在所有DN上的最大执行时间,单位为毫秒。 average_dn_time bigint 语句在所有DN上的平均执行时间,单位为毫秒。 dntime_skew_percent integer 语句在各DN间的执行时间倾斜率。 min_cpu_time bigint 语句在所有DN上的最小CPU时间,单位为毫秒。 max_cpu_time bigint 语句在所有DN上的最大CPU时间,单位为毫秒。 total_cpu_time bigint 语句在所有DN上的CPU总时间,单位为毫秒。 cpu_skew_percent integer 语句在DN间的CPU时间倾斜率。 min_peak_iops integer 语句在所有DN上的每秒最小IO峰值(列存单位为次/s,行存单位为万次/s),该功能在8.1.3集群版本上未启用,不建议参考该字段进行内存问题分析。 max_peak_iops integer 语句在所有DN上的每秒最大IO峰值(列存单位为次/s,行存单位为万次/s),该功能在8.1.3集群版本上未启用,不建议参考该字段进行内存问题分析。 average_peak_iops integer 语句在所有DN上的每秒平均IO峰值(列存单位为次/s,行存单位为万次/s),该功能在8.1.3集群版本上未启用,不建议参考该字段进行内存问题分析。 iops_skew_percent integer 语句在DN间的IO倾斜率,该功能在8.1.3集群上未启用,不建议参考该字段进行内存问题分析。 warning text 主要显示如下几类告警信息以及SQL自诊断调优相关告警: Spill file size large than 256MB Broadcast size large than 100MB Early spill Spill times is greater than 3 Spill on memory adaptive Hash table conflict queryid bigint 语句执行使用的内部查询ID。 query text 执行的语句。 query_plan text 语句的执行计划。 node_group text 语句所属用户对应的逻辑集群。 pid bigint 语句的后端线程的PID。 lane text 语句执行时所在的快慢车道。 unique_sql_id bigint 归一化的Unique SQL ID。 父主题: 系统视图
-
规则1.5 应用侧使用连接池场景,如使用连接SET设置过参数,当将连接归还连接池前,必须进行参数重置 违反规则的影响: 连接被其他业务复用时,可能会应复用其他业务设置的参数出现业务性能、业务报错等问题。 方案建议: 在将连接归还连接池之前,使用“SET SESSION AUTHORIZATION DEFAULT;RESET ALL;”重置参数。 注意: 在应用侧使用连接池的场景,如果在DWS服务侧通过GS_GUC RELOAD设置了全局的GUC参数,需要重启应用侧连接池该参数才可以生效,因为该设置只针对新建的连接生效,针对连接池中原有的连接不生效。
-
规则1.3 开启的事务最后必须提交或回滚 违反规则的影响: 事务长时间不提交,持锁阻塞ALTER等操作,进而阻塞所有业务。 大量“idle in transaction”连接,触发连接上限,导致新建连接报错。 方案建议: 默认使用autocommit自动提交方式,如关闭autocommit,则必须手动提交。 显式start transaction开启的事务,执行完相关操作后,必须显式commit/rollback结束事务。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格