华为云用户手册

  • 相关空间回收参数说明 autovacuum = on 控制数据库自动清理进程(autovacuum)的启动。自动清理进程运行的前提是将track_counts设置为on。 log_autovacuum_min_duration = 0 当自动清理的执行时间大于或者等于某个特定的值时,向服务器日志中记录自动清理执行的每一步操作。设置此选项有助于追踪自动清理的行为。 autovacuum_max_workers = 10 设置能同时运行的自动清理线程的最大数量。 autovacuum_naptime = 1 设置两次自动清理操作的时间间隔。 autovacuum_vacuum_cost_delay = 0 设置在自动VACUUM操作里使用的开销延迟数值。 更多关于空间回收参数说明,参见自动清理。
  • 表膨胀的原因 未开启autovacuum GaussDB(DWS)提供自动执行VACUUM和ANALYZE命令的系统自动清理进程(autovacuum),用于回收被标识为删除状态的记录空间,并更新表的统计数据。 用户未开启autovacuum的同时又没有合理的自定义vacuum调度,导致表的脏数据没有及时回收,新的数据又不断插入或更新,膨胀是必然的。 资源回收不及时 开启了autovacuum,但是各种原因导致回收不及时,并且新的数据又不断产生,从而导致膨胀。回收不及时有以下原因: IO性能差 当数据库非常繁忙时,如果IO性能较差,会导致回收脏数据变慢,从而导致表膨胀。 这种情况一般出现在占用数据库内存较大的表上,并且这些表正在执行整表vacuum,因此产生大量IO,导致表自身或其他表膨胀。 autovacuum触发较迟 触发autovacuum操作的阈值设置过高,大量表上被删除、插入或更新的记录数没有及时处理,导致表膨胀。 autovacuum线程繁忙 所有自动清理线程繁忙,某些表产生的脏数据超过阈值,但是在此期间没有autovacuum线程可以处理脏数据回收的事情,可能发生表膨胀。 如果数据库的表很多,而且都比较大,那么当需要vacuum的表超过了配置autovacuum_max_workers的数量,这些表就要等待空闲的autovacuum线程。这个阶段就容易出现表的膨胀。 数据库中存在长SQL或带XID的长事务 当DWS数据库中存在未结束的SQL语句或者未结束的持有事务ID的事务,在此SQL执行时间范围内或在此事务过程中产生的脏数据无法回收,导致数据库膨胀。 开启了autovacuum_vacuum_cost_delay 在开启了autovacuum_vacuum_cost_delay后,会使用基于成本的脏数据回收策略,可以有利于降低VACUUM带来的IO影响,但是对于IO性能高的系统,开启autovacuum_vacuum_cost_delay反而会使得垃圾回收的时间变长。 autovacuum_naptime设置间隔时间过长 批量删除或更新大表 例如对于一个10GB的表,一条SQL或一个事务中删除或更新9GB的数据,这9GB的数据必须在事务结束后才能进行脏数据回收,无形中增加了膨胀的可能。
  • 减少或避免表膨胀 开启autovacuum。 提高系统的IO能力。 调整触发阈值,让触发阈值和记录数匹配。 增加autovacuum_max_workers和autovacuum_work_mem,同时增加系统内存。 IO性能较好的系统,关闭autovacuum_vacuum_cost_delay。 设计应用程序时,避免使用大批量的更新、删除操作,可以切分为多个事务进行。 应用程序设计时,尽量避免下列操作: 打开游标后不关闭。 在不必要的场景使用repeatable read或serializable事务隔离级别。 对大的数据库执行gs_dump进行逻辑备份(隐式repeatable read隔离级别的全库备份)。 长时间不关闭申请了事务号的事务(增、删、改等DDL操作的SQL)。
  • 经典变更规格与弹性变更规格、扩容、缩容分别在什么场景下使用? 经典变更规格相对来说比较重量级,对业务的影响也比较大,相当于实现将老集群迁移到新集群的功能,并同时实现规格的升降、节点数量的增减。建议用户优先使用扩容、缩容、弹性变更规格等轻量级操作。功能特性具体适用场景如下表所示: 表1 特性功能区别 功能特性 适用场景 备注 扩容 随着您的业务规模扩张,对数据存储容量和性能有更高的要求时,或者集群整体CPU不足时,建议通过扩容集群进行集群节点的扩容 实时数仓(单机部署)不支持扩容集群。 缩容 集群容量大量闲置的业务低谷期,可通过缩容操作来减少节点数量以实现减少成本的目的。 实时数仓(集群部署)不支持缩容至单机部署集群。 弹性变更规格 仅对现有集群做规格的调整,该功能不会涉及节点数量的改变,只是对节点的CPU、内存等做配置升级或降级,用以实现根据业务量调整集群性能,以实现业务诉求。 弹性变更规格目前仅支持ECS+EVS形态的标准数仓或实时数仓集群。 经典变更规格 若有以下需求可考虑使用调经典变更规格功能,例如: BMS集群或不支持弹性变更规格功能的集群,该场景只能进行经典变更规格操作实现规格变更。 用户想要改变集群拓扑结构,因为扩容/缩容操作都是按环增加/减少节点。 集群版本低需变更为新集群,同时不想进行业务数据迁移。 经典变更规格目前仅支持标准数仓集群。 父主题: 集群管理
  • GS_USER_TRANSACTION GS_USER_TRANSACTION视图提供查询单CN上用户相关的事务信息。数据库记录每个用户事务提交和回滚的次数及事务提交和回滚的响应时间,单位是微秒。 表1 GS_USER_TRANSACTION字段 名称 类型 描述 usename name 用户名称。 commit_counter bigint 提交次数。 rollback_counter bigint 回滚次数。 resp_min bigint 最小响应时间。 resp_max bigint 最大响应时间。 resp_avg bigint 平均响应时间。 resp_total bigint 响应时间总和。 父主题: 系统视图
  • PG_STAT_SYS_INDEXES PG_STAT_SYS_INDEXES视图显示pg_catalog、information_schema模式中所有系统表的索引状态信息。 表1 PG_STAT_SYS_INDEXES字段 名称 类型 描述 relid oid 此索引表的OID。 indexrelid oid 索引的OID。 schemaname name 索引中模式名。 relname name 索引的表名。 indexrelname name 索引名。 idx_scan bigint 通过索引扫描的次数。 idx_tup_read bigint 通过索引上扫描返回的索引条目数。 idx_tup_fetch bigint 索引扫描抓取的有live数据行的数目。 父主题: 系统视图
  • ALL_IND_COLUMNS ALL_IND_COLUMNS视图存储了当前用户可访问的所有索引的字段信息。 表1 ALL_IND_COLUMNS字段 名称 类型 描述 index_owner character varying(64) 索引的所有者。 index_name character varying(64) 索引名。 table_owner character varying(64) 表的所有者。 table_name character varying(64) 表名。 column_name name 列名。 column_position smallint 索引中列的位置。 父主题: 系统视图
  • PG_STAT_DATABASE_CONFLICTS PG_STAT_DATABASE_CONFLICTS视图显示数据库冲突状态的统计信息。 表1 PG_STAT_DATABASE_CONFLICTS字段 名称 类型 描述 datid oid 数据库OID。 datname name 数据库名。 confl_tablespace bigint 冲突的表空间的数目。 confl_lock bigint 冲突的锁数目。 confl_snapshot bigint 冲突的快照数目。 confl_bufferpin bigint 冲突的缓冲区数目。 confl_deadlock bigint 冲突的死锁数目。 父主题: 系统视图
  • GS_SESSION_CPU_STATISTICS GS_SESSION_CPU_STATISTICS视图显示和当前用户执行复杂作业正在运行时的负载管理CPU使用的信息。 表1 GS_SESSION_CPU_STATISTICS字段 名称 类型 描述 datid oid 连接后端的数据库OID。 usename name 登录到该后端的用户名。 pid bigint 后端线程ID。 start_time timestamp with time zone 语句执行的开始时间。 min_cpu_time bigint 语句在所有DN上的最小CPU时间,单位为毫秒。 max_cpu_time bigint 语句在所有DN上的最大CPU时间,单位为毫秒。 total_cpu_time bigint 语句在所有DN上的CPU总时间,单位为毫秒。 query text 正在执行的语句。 node_group text 语句所属用户对应的逻辑集群。 父主题: 系统视图
  • 索引的选择原则 索引建立在数据库表中的某些列上。因此,在创建索引时,应该仔细考虑在哪些列上创建索引。 在经常需要搜索查询的列上创建索引,可以加快搜索的速度。 在作为主键的列上创建索引,强制该列的唯一性和组织表中数据的排列结构。 在经常使用连接的列上创建索引,这些列主要是一些外键,可以加快连接的速度。 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的。 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间。 在经常使用WHERE子句的列上创建索引,加快条件的判断速度。 为经常出现在关键字ORDER BY、GROUP BY、DISTINCT后面的字段建立索引。 索引创建成功后,系统会自动判断何时引用索引。当系统认为使用索引比顺序扫描更快时,就会使用索引。 索引创建成功后,必须和表保持同步以保证能够准确地找到新数据,这样就增加了数据操作的负荷。因此请定期删除无用的索引。
  • 索引类型 btree:B-tree索引使用一种类似于B+树的结构来存储数据的键值,通过这种结构能够快速的查找索引。btree适合支持比较查询以及查询范围。 gin:GIN索引是倒排索引,可以处理包含多个键的值(比如数组)。 gist:Gist索引适用于几何和地理等多维数据类型和集合数据类型。 Psort:Psort索引。针对列存表进行局部排序索引。 行存表支持的索引类型:btree(行存表缺省值)、gin、gist。列存表支持的索引类型:Psort(列存表缺省值)、btree、gin。 对于点查询场景,推荐建立btree索引。
  • PV_RUNTIME_RELSTATS PV_RUNTIME_RELSTATS视图显示autoanalyze产生的内存中表级统计信息,各字段含义与PG_CLASS视图一样。该视图仅8.2.0及以上集群使用。 表1 PV_RUNTIME_RELSTATS字段 名称 类型 描述 nspname name 模式名。 relname name 表、索引等对象的名称。 relpages double precision 以页(大小为BLCKSZ)为单位的此表在磁盘上的大小,只是优化器使用的一个近似值。 reltuples double precision 表中行的数目,只是优化器使用的一个估计值。 relallvisible integer 被标识为全可见的表中的页数。此字段是优化器用来做SQL执行优化使用的。 relhasindex boolean 如果对象是一个表且至少有(或者最近建有)一个索引,则为真。 由CREATE INDEX设置,但DROP INDEX不会立即将它清除。如果VACUUM进程检测一个表没有索引,会清理relhasindex字段,将relhasindex值设置为假。 changes bigint 触发轻量化autoanalyze时,表的历史累计修改条数。 level text 轻量化autoanalyze生成的内存统计信息当前所处的阶段。包含:local,sendlist,global三个阶段。 父主题: 系统视图
  • PG_AMPROC PG_AMPROC系统表存储与访问方法操作符族相关联的支持过程的信息。每个属于某个操作符族的支持过程都占有一行。 表1 PG_AMPROC字段 名字 类型 引用 描述 oid oid - 行标识符(隐藏属性,必须明确选择才会显示)。 amprocfamily oid PG_OPFAMILY.oid 该项的操作符族。 amproclefttype oid PG_TYPE.oid 相关操作符的左输入数据类型。 amprocrighttype oid PG_TYPE.oid 相关操作符的右输入数据类型。 amprocnum smallint - 支持过程编号。 amproc regproc PG_PROC.oid 过程的OID。 amproclefttype和amprocrighttype字段的习惯解释,标识一个特定支持过程所支持的操作符的左右输入类型。对于某些访问方式,匹配支持过程本身的输入数据类型,对其他的则不会匹配。有一个对索引的“缺省”支持过程的概念,amproclefttype和amprocrighttype都等于索引操作符类的opcintype。 父主题: 系统表
  • ALL_IND_EXPRESSIONS ALL_IND_EXPRESSIONS视图存储了当前用户可访问的表达式索引的信息。 表1 ALL_IND_EXPRESSIONS字段 名称 类型 描述 index_owner character varying(64) 索引的所有者。 index_name character varying(64) 索引名。 table_owner character varying(64) 表的所有者。 table_name character varying(64) 表名。 column_expression text 定义列的基于函数的索引表达式。 column_position smallint 索引中列的位置。 父主题: 系统视图
  • GS_TABLE_CHANGE_STAT GS_TABLE_CHANGE_STAT视图显示当前数据库中所有表格(不包括外表)在当前节点上的变更情况。表示次数的各字段为实例启动以来的累计值。 表1 GS_TABLE_CHANGE_STAT字段 名称 类型 描述 schemaname name 表的命名空间。 relname name 表的名称。 last_vacuum timestamp with time zone 最后一次手动vacuum的时间。 vacuum_count bigint 手动Vacuum的次数。 last_autovacuum timestamp with time zone 最后一次自动vacuum的时间。 autovacuum_count bigint 自动vacuum的次数。 last_analyze timestamp with time zone 最后一次分析(包括手动和自动)的时间。 analyze_count bigint 分析(包括手动和自动)的次数。 last_autoanalyze timestamp with time zone 最后一次自动分析的时间。 autoanalyze_count bigint 自动分析的次数。 last_change bigint 最后一次修改(INSERT,UPDATE或DELETE)的时间。 父主题: 系统视图
  • PG_STAT_GET_MEM_MBYTES_RESERVED PG_STAT_GET_MEM_MBYTES_RESERVED视图显示线程在内存中保存的当前活动信息。该函数在调用时需要指定线程ID,线程ID的选取请参考PG_STAT_ACTIVITY中的pid,线程ID为0时表示选取当前线程ID,例如: 1 SELECT pg_stat_get_mem_mbytes_reserved(0); 表1 PG_STAT_GET_MEM_MBYTES_RESERVED信息 名称 描述 ConnectInfo 连接信息。 ParctlManager 并发管理信息。 GeneralParams 基本参数信息。 GeneralParams RPDATA 基本资源池信息。 ExceptionManager 异常管理信息。 CollectInfo 收集信息。 GeneralInfo 基本信息。 ParctlState 并发状态信息。 CPU INFO CPU信息。 ControlGroup 控制组信息。 IOSTATE IO状态信息。 父主题: 系统视图
  • 属性 游标的属性用于控制程序流程或者了解程序的状态。当运行DML语句时,PL/SQL打开一个内建游标并处理结果,游标是维护查询结果的内存中的一个区域,游标在运行DML语句时打开,完成后关闭。显式游标的属性为: %FOUND布尔型属性:当最近一次读记录时成功返回,则值为TRUE。 %NOTFOUND布尔型属性:与%FOUND相反。 %ISOPEN布尔型属性:当游标已打开时返回TRUE。 %ROWCOUNT数值型属性:返回已从游标中读取的记录数。
  • 处理步骤 显式游标处理需六个PL/SQL步骤: 定义静态游标:就是定义一个游标名,以及与其相对应的SELECT语句。 定义静态游标的语法图,请参见图1。 图1 static_cursor_define::= 参数说明: cursor_name:定义的游标名。 parameter:游标参数,只能为输入参数,其格式为: parameter_name datatype select_statement:查询语句。 根据执行计划的不同,系统会自动判断该游标是否可以用于以倒序的方式检索数据行。 定义动态游标:指ref游标,可以通过一组静态的SQL语句动态的打开游标。首先定义ref游标类型,然后定义该游标类型的游标变量,在打开游标时通过OPEN FOR动态绑定SELECT语句。 定义动态游标的语法图,请参见图2和图3。 图2 cursor_typename::= GaussDB(DWS)支持sys_refcursor动态游标类型,函数或存储过程可以通过sys_refcursor参数传入或传出游标结果集合,函数也可以通过返回sys_refcursor来返回游标结果集合。 图3 dynamic_cursor_define::= 打开静态游标:就是执行游标所对应的SELECT语句,将其查询结果放入工作区,并且指针指向工作区的首部,标识游标结果集合。如果游标查询语句中带有FOR UPDATE选项,OPEN语句还将锁定数据库表中游标结果集合对应的数据行。 打开静态游标的语法图,请参见图4。 图4 open_static_cursor::= 打开动态游标:可以通过OPEN FOR语句打开动态游标,动态绑定SQL语句。 打开动态游标的语法图,请参见图5。 图5 open_dynamic_cursor::= PL/SQL程序不能用OPEN语句重复打开一个游标。 提取游标数据:检索结果集合中的数据行,放入指定的输出变量中。 提取游标数据的语法图,请参见图6。 图6 fetch_cursor::= 对该记录进行处理。 继续处理,直到活动集合中没有记录。 关闭游标:当提取和处理完游标结果集合数据后,应及时关闭游标,以释放该游标所占用的系统资源,并使该游标的工作区变成无效,不能再使用FETCH语句获取其中数据。关闭后的游标可以使用OPEN语句重新打开。 关闭游标的语法图,请参见图7。 图7 close_cursor::=
  • PG_OBSSCANINFO PG_OBSSCANINFO系统表定义了在云上加速场景中,使用加速集群时扫描OBS数据的运行时信息,每条记录对应一个query中单个OBS外表的运行时信息。 表1 PG_OBSSCANINFO字段 名字 类型 引用 描述 query_id bigint - 查询标识。 user_id text - 执行该查询的数据库用户。 table_name text - OBS外表的表名。 file_type text - 底层数据保存的文件格式。 time_stamp time_stam - 扫描操作开始的时间。 actual_time double - 扫描操作执行时间,单位为秒。 file_scanned bigint - 扫描的文件数量。 data_size double - 扫描的数据量,单位为字节。 billing_info text - 保留字段。 父主题: 系统表
  • GS_SESSION_MEMORY_STATISTICS GS_SESSION_MEMORY_STATISTICS视图显示和当前用户执行复杂作业正在运行时的负载管理内存使用的信息。 表1 GS_SESSION_MEMORY_STATISTICS字段 名称 类型 描述 datid oid 连接后端的数据库OID。 usename name 登录到该后端的用户名。 pid bigint 后端线程ID。 start_time timestamp with time zone 语句执行的开始时间。 min_peak_memory integer 语句在所有DN上的最小内存峰值大小,单位为MB。 max_peak_memory integer 语句在所有DN上的最大内存峰值大小,单位为MB。 spill_info text 语句在所有DN上的下盘信息。 None:所有DN均未下盘。 All:所有DN均下盘。 [a:b]:数量为b个DN中有a个DN下盘。 query text 正在执行的语句。 node_group text 语句所属用户对应的逻辑集群。 父主题: 系统视图
  • temp_file_limit 参数说明:语句执行过程中触发落盘操作时,限制语句中单个线程落盘文件的总空间大小。例如,排序和哈希表使用的临时文件或者游标占用的临时文件。 此设置为会话级别的落盘文件控制。 参数类型:SUSET 取值范围:整型,-1~INT_MAX,单位为KB。其中-1表示没有限制。 默认值:配置temp_file_limit为实例所在磁盘空间总容量的10%。 SQL查询执行时使用的临时表空间不在此限制。
  • sql_use_spacelimit 参数说明:限制单个SQL在单个DN上,触发写盘操作时,所有类型写盘文件的总空间大小,管控的空间包括普通表、临时表以及中间结果集落盘占用的空间。系统管理员用户也受该参数限制。 参数类型:USERSET 取值范围:整型,-1~INT_MAX,单位为KB。其中-1表示没有限制。 默认值:配置sql_use_spacelimit为实例所在磁盘空间总容量的10%。 例如,执行语句中配置参数sql_use_spacelimit=100,当出现单DN写盘超过100kB时,DWS会主动终止该query的运行,并提示用户单DN写盘量超阈值。 1 2 insert into user1.t1 select * from user2.t1; ERROR: The space used on DN (104 kB) has exceeded the sql use space limit (100 kB). 建议处理方式: 优化语句,减少语句写盘占用空间。 如果磁盘空间充足可以适当调大该参数。
  • bi_page_reuse_factor 参数说明:行存表批量插入场景下,主备DN使用页复制进行数据同步时,可以复用的旧页面空闲空间的百分比。 参数类型:USERSET 取值范围:整型,0~100,单位为%。其中0表示不对页面进行复用,全部申请新页面。 默认值:70 不建议将此值设置为50以下(0除外),如果复用页面的空闲空间较小的话,会使主备DN间传输过多的旧页面数据,从而导致批量插入性能下降。 不建议将此值设置为90以上,如果此值设置过高,会导致频繁查询空闲页面,但又无法复用旧页面,得不偿失。
  • PGXC_STAT_BAD_BLOCK PGXC_STAT_BAD_BLOCK视图显示集群所有节点从启动后,在读取数据时出现Page/CU校验失败的统计信息。 表1 PGXC_STAT_BAD_BLOCK字段 名字 类型 描述 nodename text 节点名称。 databaseid integer 数据库OID。 tablespaceid integer 表空间OID。 relfilenode integer 文件对象ID。 forknum integer 文件类型。 error_count integer 出现校验失败的次数。 first_time timestamp with time zone 第一次出现的时间。 last_time timestamp with time zone 最近一次出现的时间。 父主题: 系统视图
  • GS_WLM_SESSION_STATISTICS GS_WLM_SESSION_STATISTICS视图显示当前用户在当前CN上正在执行的作业的负载管理记录。 表1 GS_WLM_SESSION_STATISTICS的字段 名称 类型 描述 datid oid 连接后端的数据OID。 dbname name 连接后端的数据库名称。 schemaname text 模式名。 nodename text 语句执行的CN节点名称。 username name 连接到后端的用户名。 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进行设置,默认为空字符串。 pid bigint 后端线程ID。 block_time bigint 语句执行前的阻塞时间,单位为毫秒。 start_time timestamp with time zone 语句执行的开始时间。 parse_time bigint SQL解析时间,单位为微秒。 duration bigint 语句已经执行的时间,单位为毫秒。 estimate_total_time bigint 语句执行预估总时间,单位为毫秒。 estimate_left_time bigint 语句执行预估剩余时间,单位为毫秒。 enqueue text 工作负载管理资源状态。 resource_pool name 用户使用的资源池。 control_group text 语句所使用的Cgroup。 estimate_memory integer 语句在单个实例上预估使用的内存,单位为MB。该字段只有当GUC参数enable_dynamic_workload为on时才有效。 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的最小下盘数据量,单位为MB。默认为0。 max_spill_size integer 若发生下盘,所有下盘DN的最大下盘数据量,单位为MB。默认为0。 average_spill_size integer 若发生下盘,所有下盘DN的平均下盘数据量,单位为MB。默认为0。 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)。 max_peak_iops integer 语句在所有DN上的每秒最大IO峰值(列存单位为次/s,行存单位为次/s)。 average_peak_iops integer 语句在所有DN上的每秒平均IO峰值(列存单位为次/s,行存单位为次/s)。 iops_skew_percent integer 语句在DN间的IO倾斜率。 min_read_speed integer 一个监控周期(5s)内,语句在所有DN上的最小IO读速率,单位为KB/s。 max_read_speed integer 一个监控周期(5s)内,语句在所有DN上的最大IO读速率,单位为KB/s。 average_read_speed integer 一个监控周期(5s)内,语句在所有DN上的平均IO读速率,单位为KB/s。 min_write_speed integer 一个监控周期(5s)内,语句在所有DN上的最小IO写速率,单位为KB/s。 max_write_speed integer 一个监控周期(5s)内,语句在所有DN上的最大IO写速率,单位为KB/s。 average_write_speed integer 一个监控周期(5s)内,语句在所有DN上的平均IO写速率,单位为KB/s。 recv_pkg bigint 语句在所有DN上的通信包接收总量,单位为packages。 send_pkg bigint 语句在所有DN上的通信包发送总量,单位为packages。 recv_bytes bigint 语句在所有DN上的通信流接收数据总量,单位为Byte。 send_bytes bigint 语句在所有DN上的通信流发送数据总量,单位为Byte。 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 unique_sql_id bigint 归一化的Unique SQL ID。 queryid bigint 语句执行使用的内部query id。 query text 正在执行的语句。 query_plan text 语句的执行计划。 规格限制: DML语句都会显示执行计划,DDL语句不显示执行计划。 当用户下发PBE(Parse Bind Execute)批处理语句时,为了便于分析语句情况,自8.2.1.100集群版本开始,为批处理的PBE语句的执行计划添加数据绑定次数,显示为“PBE bind times:次数”格式。 node_group text 语句所属用户对应的逻辑集群。 stmt_type text 语句所对应的查询类型。 except_info text 语句触发的异常规则信息。 parse_time bigint 语句排队前的解析总时间(包含词法语法解析,优化重写和计划生成时间),单位为毫秒。 该字段仅8.3.0.100及以上版本支持。 父主题: 系统视图
  • USER_OBJECTS USER_OBJECTS视图描述了当前用户拥有的数据库对象。 名称 类型 描述 owner name 对象的所有者。 object_name name 对象的名称。 object_id oid 对象的OID。 object_type name 对象的类型。 namespace oid 对象所在的命名空间。 created timestamp with time zone 对象的创建时间。 last_ddl_time timestamp with time zone 对象的最后修改时间。 created和last_ddl_time支持的范围参见PG_OBJECT中的记录范围。 父主题: 系统视图
  • PGXC_COMM_DELAY PGXC_COMM_DELAY视图展示所有DN的通信库时延状态。 表1 PGXC_COMM_DELAY字段 名称 类型 描述 node_name text 节点名称。 remote_name text 连接对端节点的对端时延最大的节点名称。 remote_host text 连接对端IP的对端地址。 stream_num integer 当前物理连接使用的stream逻辑连接数量。 min_delay integer 当前物理连接探测到的最小时延,单位为微秒。 average integer 当前物理连接探测时延的平均值,单位为微秒。 max_delay integer 当前物理连接探测到的最大时延,单位为微秒。 说明: 取值为-1,表示时延探测超时失败,请重新建立节点间连接后再执行查询。 父主题: 系统视图
  • full_group_by_mode 参数说明:结合disable_full_group_by_mysql使用,用于控制disable_full_group_by_mysql语法开关打开后的两种不同行为。该参数仅8.3.0及以上集群版本支持。 参数类型:USERSET 取值范围:字符串 nullpadding表示对于非聚集列而言,对该列NULL值进行填充,取该列非NULL值,结果集可能为不同行。 notpadding表示对于非聚集列而言,不处理NULL值,取该行整行数据,非聚集列结果集为随机的一行。 默认值:notpadding 该参数生效前提为MySQL兼容库下打开disable_full_group_by_mysql,且查询中出现非聚集列场景生效。该参数的两种行为也仅针对查询中的非聚集列生效。
  • rewrite_rule 参数说明:标识开启的可选查询重写规则。有部分查询重写规则是可选的,开启它们并不能总是对查询效率有提升效果。在特定的客户场景中,通过此GUC参数对查询重写规则进行设置,使得查询效率最优。 此参数可以控制查询重写规则的组合,比如有多个重写规则:rule1、rule2、rule3、rule4。可以设置: set rewrite_rule=rule1; --启用查询重写规则rule1 set rewrite_rule=rule2,rule3; --启用查询重写规则rule2和rule3 set rewrite_rule=none; --关闭所有可选查询重写规则 参数类型:USERSET 取值范围:字符串 none:不使用任何可选查询重写规则 lazyagg:使用Lazy Agg查询重写规则(消除子查询中的聚集运算) magicset:使用Magic Set查询重写规则(从主查询中下推条件到提升的子链接) uniquecheck:使用Unique Check重写规则(允许目标列不含聚集函数的表达式子链接场景提升,需在子链接按关联列聚集后目标列值唯一才能开启,建议专业调优人员使用)。 disablerep:使用禁止复制表的子链接提升规则(针对复制表禁止子链接提升)。 projection_pushdown:使用Projection Pushdown重写规则(子查询中消除父查询不使用的列)。 or_conversion:使用OR转换重写规则(消除执行效率低下的关联OR条件)。 plain_lazyagg:使用Plain Lazy Agg查询重写规则(消除单子查询中的聚集操作)。该选项仅8.1.3.100及以上集群版本支持。 eager_magicset:使用eager_magicset查询重写规则(从主查询中下推条件到子查询)。该选项仅8.2.0及以上集群版本支持。 casewhen_simplification:使用casewhen语句改写的重写规则,开启后对(case when xxx then const1 else const2)=const1场景进行改写。该选项仅8.3.0及以上集群版本支持。 outer_join_quality_imply:支持外连接中外表的表达式过滤条件(非等值,等值过滤条件已经支持)通过等值关联条件传递并下推到内表,减少内表扫描返回数据量。该选项仅8.3.0及以上集群版本支持。 inlist_merge:使用inlist_or_inlist查询重写规则,支持基表相同列的or语句合并,开启后对(where a in (list1) or a in (list2))进行合并改写,合并后可支持inlist2join。该选项仅8.3.0及以上集群版本支持。 默认值:magicset,or_conversion,projection_pushdown, plain_lazyagg
  • approx_count_distinct_precision 参数说明:该参数表示HyperLogLog++ (HLL++)算法中分桶个数,可以用来调整approx_count_distinct聚集函数的误差率。桶的个数会影响distinct值估算的精度,桶的个数越多,误差越小。误差范围为:[-1.04/2log2m*1/2,+1.04/2log2m*1/2]。该参数仅8.3.0及以上集群版本支持。 参数类型:USERSET 取值范围:整型,10~20。 默认值:17
共100000条