华为云用户手册

  • 多边形 多边形由一系列点代表(多边形的顶点)。多边形可以认为与闭合路径一样,但是存储方式不一样而且有自己的一套支持函数。 用下面的语法描述polygon的数值: ( ( x1 , y1 ) , ... , ( xn , yn ) ) ( x1 , y1 ) , ... , ( xn , yn ) ( x1 , y1 , ... , xn , yn ) x1 , y1 , ... , xn , yn 点表示多边形的端点。 多边形输出使用第一种语法。
  • 示例 建立一个保存点,然后撤销建立保存点后执行的所有命令的效果: 1 2 3 4 5 6 7 START TRANSACTION; INSERT INTO table1 VALUES (1); SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (2); ROLLBACK TO SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (3); COMMIT; 查询表的内容,会同时看到1和3,不能看到2,因为2被回滚。 建立并随后销毁一个保存点: 1 2 3 4 5 6 START TRANSACTION; INSERT INTO table1 VALUES (3); SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (4); RELEASE SAVEPOINT my_savepoint; COMMIT; 查询表的内容,会同时看到3和4。
  • 注意事项 使用ROLLBACK TO SAVEPOINT回滚到一个保存点。使用RELEASE SAVEPOINT删除一个保存点,但是保留该保存点建立后执行的命令的效果。 保存点只能在一个事务块里面建立。在一个事务里面可以定义多个保存点。 函数、匿名块和存储过程中不支持使用SAVEPOINT语法。 由于节点故障或者通信故障引起的分布式节点线程或进程退出导致的报错,以及由于COPY FROM操作中源数据与目标表的表结构不一致导致的报错,均不能正常回滚到保存点之前,而是整个事务回滚。 SQL标准要求,使用savepoint建立一个同名保存点时,需要自动删除前面那个同名保存点。在 GaussDB (DWS)数据库里,将保留旧的保存点,但是在回滚或者释放的时候,只使用最近的那个。释放了新的保存点将导致旧的再次成为ROLLBACK TO SAVEPOINT和RELEASE SAVEPOINT可以访问的保存点。除此之外,SAVEPOINT是完全符合SQL标准的。
  • pgxc_cgroup_reload_conf(text) 描述:在某个节点上进行cgroup配置文件在线加载。入参为节点的IP地址。 返回值类型:record 函数返回字段如下: 名称 类型 描述 node_name text 实例名称。 node_host text 实例所在节点的IP地址。 result text cgroup在线加载是否成功。 示例: 1 2 3 4 5 6 7 8 9 SELECT * FROM pgxc_cgroup_reload_conf('192.168.178.35'); node_name | node_host | result --------------+----------------+--------- cn_5001 | 192.168.178.35 | success dn_6007_6008 | 192.168.178.35 | success dn_6003_6004 | 192.168.178.35 | success dn_6001_6002 | 192.168.178.35 | success dn_6005_6006 | 192.168.178.35 | success (5 rows)
  • pg_stat_get_wlm_node_resource_info(int4) 描述:显示所有DN资源的汇总信息。 返回值类型:record 函数返回字段如下: 名称 类型 描述 min_mem_util integer DN最小内存使用率。 max_mem_util integer DN最大内存使用率。 min_cpu_util integer DN最小CPU使用率。 max_cpu_util integer DN最大CPU使用率。 min_io_util integer DN最小IO使用率。 max_io_util integer DN最大IO使用率。 phy_usemem_rate integer 物理节点最大内存使用率。
  • gs_wlm_node_recover(boolean isForce) 描述:动态资源管理模式下,对CCN管控计数和作业信息进行更新恢复。该函数仅支持管理员执行,通常用于CN实例故障重启后的实例恢复,由集群管理组件(CM)调用,不建议用户直接调用。具体功能如下: CN执行:通知CCN清理该CN执行的作业信息和作业对应的管控计数信息。 CCN执行:重置管控计数信息,并从CN上获取最新的慢车道作业信息。 返回值类型:bool
  • pgxc_query_resource_info(query_id bigint) 描述:显示指定query_id对应的语句在所有DN上的资源监控信息。该函数仅9.1.0.100及以上集群版本支持。 返回值类型:record 函数返回字段如下: 名称 类型 描述 node_name text 实例名称,只包含DN。 user_id oid 用户ID。 queryid bigint 语句执行使用的内部query id。 used_mem int 语句在当前DN使用的内存大小,单位MB。 cpu_time bigint 语句在当前DN上的CPU时间,单位ms。 used_cpu double 语句在当前DN使用的CPU个数。 spill_size bigint 若发生下盘,语句在当前DN下盘数据量,默认为0。单位MB。 read_bytes bigint 语句在当前DN使用的逻辑读字节数,单位KB。 write_bytes bigint 语句在当前DN使用的逻辑写字节数,单位KB。 read_count bigint 语句在当前DN使用的逻辑读次数。 write_count bigint 语句在当前DN使用的逻辑写次数。 read_speed int 语句在当前DN使用的逻辑读速率,单位KB/s。 write_speed int 语句在当前DN使用的逻辑写速率,单位KB/s。 curr_iops int 语句在当前DN上的每秒IO数值(列存单位是次/s,行存单位是万次/s)。 send_pkg bigint 语句在当前DN上的通信包发送总量,单位packages。 recv_pkg bigint 语句在当前DN上的通信包接收总量,单位packages send_bytes bigint 语句在当前DN上的通信流发送数据总量,单位Byte。 recv_bytes bigint 语句在当前DN上的通信流接收数据总量,单位Byte。 send_speed int 语句在当前DN使用的网络发送速率,单位KB/s。 recv_speed int 语句在当前DN使用的网络接收速率,单位KB/s。
  • pgxc_cgroup_reload_conf() 描述:在系统所有实例上进行cgroup配置文件在线加载。 返回值类型:record 函数返回字段如下: 名称 类型 描述 node_name text 实例名称。 node_host text 实例所在节点的IP地址。 result text cgroup在线加载是否成功。 示例: 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 43 44 45 46 SELECT * FROM pgxc_cgroup_reload_conf(); node_name | node_host | result --------------+-----------------+--------- dn_6025_6026 | 192.168.178.177 | success dn_6049_6050 | 192.168.179.79 | success dn_6051_6052 | 192.168.179.79 | success dn_6055_6056 | 192.168.179.79 | success dn_6067_6068 | 192.168.181.57 | success dn_6023_6024 | 192.168.178.39 | success dn_6009_6010 | 192.168.181.21 | success dn_6011_6012 | 192.168.181.21 | success dn_6015_6016 | 192.168.181.21 | success dn_6029_6030 | 192.168.178.177 | success dn_6031_6032 | 192.168.178.177 | success dn_6045_6046 | 192.168.179.45 | success cn_5001 | 192.168.178.35 | success cn_5003 | 192.168.178.39 | success dn_6061_6062 | 192.168.181.179 | success cn_5006 | 192.168.179.45 | success cn_5004 | 192.168.178.177 | success cn_5002 | 192.168.181.21 | success cn_5005 | 192.168.178.187 | success dn_6019_6020 | 192.168.178.39 | success dn_6007_6008 | 192.168.178.35 | success dn_6071_6072 | 192.168.181.57 | success dn_6003_6004 | 192.168.178.35 | success dn_6013_6014 | 192.168.181.21 | success dn_6035_6036 | 192.168.178.187 | success dn_6037_6038 | 192.168.178.187 | success dn_6001_6002 | 192.168.178.35 | success dn_6063_6064 | 192.168.181.179 | success dn_6005_6006 | 192.168.178.35 | success dn_6057_6058 | 192.168.181.179 | success dn_6069_6070 | 192.168.181.57 | success dn_6027_6028 | 192.168.178.177 | success dn_6059_6060 | 192.168.181.179 | success dn_6041_6042 | 192.168.179.45 | success dn_6043_6044 | 192.168.179.45 | success dn_6047_6048 | 192.168.179.45 | success dn_6033_6034 | 192.168.178.187 | success dn_6065_6066 | 192.168.181.57 | success dn_6021_6022 | 192.168.178.39 | success dn_6017_6018 | 192.168.178.39 | success dn_6039_6040 | 192.168.178.187 | success dn_6053_6054 | 192.168.179.79 | success (42 rows)
  • gs_wlm_set_queryband_action(cstring,cstring,int4) 描述:设置query_band关联行为和次序。 返回值类型:boolean 函数入参字段如下: 名称 类型 描述 qband cstring query_band键值对,长度上限为63个字符。 action cstring query_band关联行为。 order int4 query_band搜索次序,缺省参数,默认为-1。 示例: 1 2 3 4 5 6 7 8 9 10 11 SELECT * FROM gs_wlm_set_queryband_action('a=1','respool=p1'); gs_wlm_set_queryband_action ----------------------------- t (1 row) SELECT * FROM gs_wlm_set_queryband_action('a=3','respool=p1;priority=rush',1); gs_wlm_set_queryband_action ----------------------------- t (1 row)
  • gs_wlm_set_queryband_order(cstring,int4) 描述:设置query_band次序。 返回值类型:boolean 函数入参字段如下: 名称 类型 描述 qband cstring query_band键值对。 order int4 query_band搜索次序,缺省参数,默认为-1。 示例: 1 2 3 4 5 SELECT * FROM gs_wlm_set_queryband_order('a=1',2); gs_wlm_set_queryband_action ----------------------------- t (1 row)
  • gs_wlm_get_queryband_action(cstring) 描述:查询query_band关联行为和次序。 返回值类型:record 函数返回字段如下: 名称 类型 描述 qband cstring query_band键值对。 respool_id Oid query band关联资源池OID。 respool text query band关联资源池名。 priority text query band关联队列内优先级。 qborder int4 query_band搜索次序。 示例: 1 2 3 4 5 SELECT * FROM gs_wlm_get_queryband_action('a=1'); qband | respool_id | respool | priority | qborder -------+------------+---------+----------+--------- a=1 | 16388 | p1 | Medium | -1 (1 row)
  • gs_cgroup_reload_conf() 描述:在当前实例上进行cgroup配置文件在线加载。 返回值类型:record 函数返回字段如下: 名称 类型 描述 node_name text 实例名称。 node_host text 实例所在节点的IP地址。 result text cgroup在线加载是否成功。 示例: 1 2 3 4 SELECT * FROM gs_cgroup_reload_conf(); node_name | node_host | result -----------+----------------+--------- cn_5001 | 192.168.178.35 | success
  • pgxc_wlm_analyze_schema_space(cstring) 描述:在CN上查询某个逻辑集群下集群整体的Schema空间信息,入参为逻辑集群名称。 返回值类型:record 函数返回字段如下: 名称 类型 描述 schemaname text 模式名 databasename text 数据库名 nodegroup text 节点组名称 total_value bigint 该模式的集群空间总值 avg_value bigint 该模式的各实例空间平均值 skew_percent integer 倾斜率 extend_info text 提供信息包括:单实例空间最大值、单实例空间最小值以及最大最小空间所在的实例名 示例: 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 SELECT * FROM pgxc_wlm_analyze_schema_space('group1'); schemaname | databasename | nodegroup | total_value | avg_value | skew_percent | extend_info --------------------+--------------+--------------+-------------+-----------+--------------+----------------------------------------------- pg_catalog | test1 | installation | 56819712 | 9469952 | 0 | min:9469952 datanode1,max:9469952 datanode1 public | postgres | installation | 150495232 | 25082538 | 0 | min:24903680 datanode6,max:25280512 datanode1 pg_toast | test1 | installation | 11157504 | 1859584 | 0 | min:1859584 datanode1,max:1859584 datanode1 cstore | test1 | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 data_redis | postgres | installation | 1966080 | 327680 | 50 | min:0 datanode4,max:655360 datanode1 data_redis | test1 | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 public | test1 | installation | 98304 | 16384 | 0 | min:16384 datanode1,max:16384 datanode1 dbms_om | postgres | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 dbms_job | postgres | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 dbms_om | test1 | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 dbms_job | test1 | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 sys | postgres | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 sys | test1 | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 utl_file | postgres | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 utl_raw | postgres | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 dbms_sql | postgres | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 dbms_output | postgres | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 dbms_random | postgres | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 dbms_lob | postgres | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 information_schema | postgres | installation | 1769472 | 294912 | 0 | min:294912 datanode1,max:294912 datanode1 information_schema | test1 | installation | 1769472 | 294912 | 0 | min:294912 datanode1,max:294912 datanode1 utl_file | test1 | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 dbms_output | test1 | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 dbms_random | test1 | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 utl_raw | test1 | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 dbms_sql | test1 | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 dbms_lob | test1 | installation | 0 | 0 | 0 | min:0 datanode1,max:0 datanode1 pg_catalog | postgres | installation | 75431936 | 12571989 | 3 | min:12124160 datanode4,max:13049856 datanode1 redisuser | postgres | installation | 1884160 | 314026 | 50 | min:16384 datanode4,max:630784 datanode1 pg_toast | postgres | installation | 17154048 | 2859008 | 7 | min:2637824 datanode4,max:3080192 datanode1 cstore | postgres | installation | 15294464 | 2549077 | 5 | min:2408448 datanode1,max:2703360 datanode6 (31 rows)
  • pgxc_wlm_get_schema_space(cstring) 描述:在CN上查询某个逻辑集群下各实例的Schema空间信息,入参为逻辑集群名称。 返回值类型:record 函数返回字段如下: 名称 类型 描述 schemaname text 模式名 schemaid oid 模式OID databasename text 数据库名 databaseid oid 数据库OID nodename text 实例名称 nodegroup text 节点组名称 usedspace bigint 已使用的空间大小 permspace bigint 空间上限值 示例: 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 43 44 45 SELECT * FROM pgxc_wlm_get_schema_space('group1'); schemaname | schemaid | databasename | databaseid | nodename | nodegroup | usedspace | permspace --------------------+----------+--------------+------------+--------------+--------------+-----------+----------- pg_catalog | 11 | test1 | 16384 | datanode1 | installation | 9469952 | -1 public | 2200 | postgres | 15253 | datanode1 | installation | 25280512 | -1 pg_toast | 99 | test1 | 16384 | datanode1 | installation | 1859584 | -1 cstore | 100 | test1 | 16384 | datanode1 | installation | 0 | -1 data_redis | 18106 | postgres | 15253 | datanode1 | installation | 655360 | -1 data_redis | 18116 | test1 | 16384 | datanode1 | installation | 0 | -1 public | 2200 | test1 | 16384 | datanode1 | installation | 16384 | -1 dbms_om | 3987 | postgres | 15253 | datanode1 | installation | 0 | -1 dbms_job | 3988 | postgres | 15253 | datanode1 | installation | 0 | -1 dbms_om | 3987 | test1 | 16384 | datanode1 | installation | 0 | -1 dbms_job | 3988 | test1 | 16384 | datanode1 | installation | 0 | -1 sys | 11693 | postgres | 15253 | datanode1 | installation | 0 | -1 sys | 11693 | test1 | 16384 | datanode1 | installation | 0 | -1 utl_file | 14644 | postgres | 15253 | datanode1 | installation | 0 | -1 utl_raw | 14669 | postgres | 15253 | datanode1 | installation | 0 | -1 dbms_sql | 14674 | postgres | 15253 | datanode1 | installation | 0 | -1 dbms_output | 14662 | postgres | 15253 | datanode1 | installation | 0 | -1 dbms_random | 14666 | postgres | 15253 | datanode1 | installation | 0 | -1 dbms_lob | 14701 | postgres | 15253 | datanode1 | installation | 0 | -1 information_schema | 14300 | postgres | 15253 | datanode1 | installation | 294912 | -1 information_schema | 14300 | test1 | 16384 | datanode1 | installation | 294912 | -1 utl_file | 14644 | test1 | 16384 | datanode1 | installation | 0 | -1 dbms_output | 14662 | test1 | 16384 | datanode1 | installation | 0 | -1 dbms_random | 14666 | test1 | 16384 | datanode1 | installation | 0 | -1 utl_raw | 14669 | test1 | 16384 | datanode1 | installation | 0 | -1 dbms_sql | 14674 | test1 | 16384 | datanode1 | installation | 0 | -1 dbms_lob | 14701 | test1 | 16384 | datanode1 | installation | 0 | -1 pg_catalog | 11 | postgres | 15253 | datanode1 | installation | 13049856 | -1 redisuser | 16387 | postgres | 15253 | datanode1 | installation | 630784 | -1 pg_toast | 99 | postgres | 15253 | datanode1 | installation | 3080192 | -1 cstore | 100 | postgres | 15253 | datanode1 | installation | 2408448 | -1 pg_catalog | 11 | test1 | 16384 | datanode2 | installation | 9469952 | -1 public | 2200 | postgres | 15253 | datanode2 | installation | 25214976 | -1 pg_toast | 99 | test1 | 16384 | datanode2 | installation | 1859584 | -1 cstore | 100 | test1 | 16384 | datanode2 | installation | 0 | -1 data_redis | 18106 | postgres | 15253 | datanode2 | installation | 655360 | -1 data_redis | 18116 | test1 | 16384 | datanode2 | installation | 0 | -1 public | 2200 | test1 | 16384 | datanode2 | installation | 16384 | -1 dbms_om | 3987 | postgres | 15253 | datanode2 | installation | 0 | -1 dbms_job | 3988 | postgres | 15253 | datanode2 | installation | 0 | -1 dbms_om | 3987 | test1 | 16384 | datanode2 | installation | 0 | -1 dbms_job | 3988 | test1 | 16384 | datanode2 | installation | 0 | -1
  • gs_update_blocklist_hash_info() 描述:用于作业黑名单信息重建,该函数会从系统表GS_BLOCKLIST_QUERY中读取最新的黑名单信息,并更新表中黑名单信息。 返回值类型:bool 示例: 1 2 3 4 5 SELECT gs_update_blocklist_hash_info(); gs_update_blocklist_hash_info ------------------------------ t (1 row)
  • gs_wlm_readjust_user_space(oid) 描述:用户永久存储空间校准函数。入参为用户oid,入参为0的情况下,会校准所有用户的永久存储空间。 返回值类型:text 示例: 1 2 3 4 5 SELECT gs_wlm_readjust_user_space(0); gs_wlm_readjust_user_space ---------------------------- Exec Success (1 row)
  • pgxc_wlm_readjust_schema_space() 描述:Schema永久存储空间校准函数。 返回值类型:text 示例: 1 2 3 4 5 SELECT pgxc_wlm_readjust_schema_space(); pgxc_wlm_readjust_schema_space -------------------------------- Exec Success (1 row)
  • gs_update_blocklist_hash_info(unique_sql_id int8, is_remove boolean) 描述:用于更新内存中unique_sql_id对应的黑名单信息。 is_remove为true时,表示从系统表GS_BLOCKLIST_QUERY中移除unique_sql_id对应黑名单信息。 is_remove为false时,表示在系统表GS_BLOCKLIST_QUERY中增加unique_sql_id对应黑名单信息。 返回值类型:bool 示例: 1 2 3 4 5 SELECT gs_update_blocklist_hash_info(111, false); gs_update_blocklist_hash_info ------------------------------ t (1 row)
  • gs_append_blocklist(unique_sql_id int8) 描述:用于新增作业黑名单。即在系统表GS_BLOCKLIST_QUERY中新增一个黑名单,并更新GS_BLOCKLIST_QUERY中黑名单信息。 返回值类型:bool 示例: 1 2 3 4 5 SELECT gs_append_blocklist(111); gs_append_blocklist -------------------- t (1 row)
  • gs_remove_blocklist(unique_sql_id int8) 描述:用于从作业黑名单中移除一个作业。即从系统表GS_BLOCKLIST_QUERY中移除一个黑名单,并更新GS_BLOCKLIST_QUERY中黑名单信息。 返回值类型:bool 示例: 1 2 3 4 5 SELECT gs_remove_blocklist(111); gs_append_blocklist -------------------- t (1 row)
  • pgxc_wlm_readjust_relfilenode_size_table(integer) 描述:空间统计校准函数。 由于校准函数执行时与其余业务之间的事务隔离性,校准函数对其它的正在执行的业务不可见,导致校准函数会漏掉此类业务的空间变化,为避免校准之后出现空间差误,建议用户使用空间校准函数时,应选择空间大小稳定无变化的时候执行校准。 参数:取值范围为0~4,不同的入参值代表不同的校准粒度。 入参为0(默认入参为0):不重建PG_RELFILENODE_SIZE系统表,重新校准用户和schema空间。 入参为1:重建PG_RELFILENODE_SIZE系统表,并且重新校准用户和schema空间。 入参为2:重建PG_RELFILENODE_SIZE系统表。 入参为3:重新校准schema空间。 入参为4:重新校准用户空间。 返回值类型:text 示例: 1 2 3 4 5 SELECT * FROM pgxc_wlm_readjust_relfilenode_size_table(1); result -------------- Exec success (1 row)
  • pgxc_wlm_readjust_relfilenode_size_table() 描述:空间统计校准函数,不重建PG_RELFILENODE_SIZE系统表,重新校准用户和schema空间。 由于校准函数执行时与其余业务之间的事务隔离性,校准函数对其它的正在执行的业务不可见,导致校准函数会漏掉此类业务的空间变化,为避免校准之后出现空间差误,建议用户使用空间校准函数时,应选择空间大小稳定无变化的时候执行校准。 返回值类型:text 示例: 1 2 3 4 5 SELECT pgxc_wlm_readjust_schema_space(); pgxc_wlm_readjust_relfilenode_size_table ----------------------------------------- Exec Success (1 row)
  • gs_increase_except_num(unique_sql_id int8,except_num int4, except_time int8) 描述:作业异常信息记录函数。入参要求必须大于0。调用该函数后会将作业异常次数加except_num,同时将作业最新异常时间更新为except_time,except_time为时间戳,该函数主要用于内部调用。 返回值类型:bool 示例: 1 2 3 4 5 SELECT gs_increase_except_num(111, 4, 714623414421256); gs_increase_except_num ----------------------- t (1 row)
  • gs_wlm_rebuild_except_rule_hash() 描述:用于重建当前节点的异常规则内存hash表,异常规则的生效阈值由监控线程实时从内存hash获取,hash异常时可以使用该函数进行rebuild恢复。 返回值类型:bool 示例: 1 2 3 4 5 SELECT gs_wlm_rebuild_except_rule_hash(); gs_wlm_rebuild_except_rule_hash -------------------- t (1 row)
  • gs_increase_except_num(unique_sql_id int8,except_num int4) 描述:作业异常信息记录函数。入参要求必须大于0。调用该函数后会将作业异常次数加except_num,同时将作业最新异常时间更新为当前时间。 返回值类型:bool 示例: 1 2 3 4 5 SELECT gs_increase_except_num(111, 4); gs_increase_except_num ----------------------- t (1 row)
  • gs_switch_respool(query_id bigint, resource_pool_name name) 描述:作业切换资源池函数,9.1.0及以上集群版本支持。 入参要求resource_pool_name必须小于64字符。调用该函数后,如果作业处于排队阶段,作业切到新资源池会进行判断是否需要启动运行;如果作业处于运行阶段,作业切到新资源池可以启动原资源池的排队作业,同时受到新资源池的CPU管控限制。 该函数同时支持静态管控和动态管控模式下的资源池切换,也支持短查询切换资源池。 返回值类型:bool 该函数仅支持管理员或者管理员权限用户使用,禁止普通用户使用,该函数的使用前提是集群的CPU管控功能正常,即Cgroup功能正常。可使用pgxc_cgroup_reload_conf()函数查询cgroup是否正常,如果返回结果有非success内容,则需要进行修复。 该函数切换资源池后,会按照新资源池的所属异常规则进行管控。 当作业处于全局并发排队,即waiting in global queue时,切换资源池后并不会立即生效,此时还未进入资源池排队队列。 作业CPU管控切换,支持CN和DN,比如:资源池A占用40个核,资源池B占用5个核,将作业从资源池A切换到资源池B后,作业会在资源池B占用的5个核上执行,此时作业运行会更慢,但是隔离了该作业,不会再影响资源池A原有的作业运行。即实现语句的降级处理。 切换资源池时,用户可能会使用如下类似语句进行批量切换,在使用此类语句操作时,需要确保修改的是同一类状态的语句,如切换的都是排队作业或者切换的都是运行作业。如果切换不同类的语句,建议用户分两次进行,如果混合起来一起切换会导致语句运行并发数超限,作业异常唤醒。 1 SELECT gs_switch_respool(queryid,'xxx') FROM xxx where xxx; 在切换语句资源池时,有以下约束: 切换资源池A运行的作业到资源池B,资源池A的排队队首作业会被唤醒,如果资源池B并发作业数达到上限,作业A1不会直接运行。 切换资源池A排队的作业A2到资源池B,如果资源池B并发作业数达到上限,作业A2会继续排队,如果未达到上限,则会被唤醒,直接运行。 资源池切换时仅支持同车道切换,不支持不同车道切换,如资源池A的快车道切换后会到资源池B的快车道中,资源池A的慢车道切换后会到资源池B的慢车道中,无论资源池B是否开启了短查询加速功能,如资源池B未开启则作业会直接运行。 该函数仅支持在所有节点正常的情况下使用,如果节点故障,该函数会执行失败。 示例: 查询ID为74590868828368101的语句在执行过程中,管理员将其切换至poolg1资源池,切换成功: 1 2 3 4 5 CALL gs_switch_respool(74590868828368101,'poolg1'); gs_switch_respool ------------------- t (1 row)
  • gs_increase_except_num(unique_sql_id int8) 描述:作业异常信息记录函数。入参要求必须大于0。调用该函数后会将作业异常次数+1,同时将作业最新异常时间更新为当前时间。 返回值类型:bool 示例: 1 2 3 4 5 SELECT gs_increase_except_num(111); gs_increase_except_num ------------------------ t (1 row)
  • tsquery tsquery类型表示一个检索条件,存储用于检索的词汇,并且使用布尔操作符&(AND),|(OR)和!(NOT)将这些词汇进行组合,圆括号用来强调操作符的分组。如果没有圆括号,(NOT)的优先级最高,其次是&(AND),最后是|(OR)。to_tsquery函数及plainto_tsquery函数会将单词转换为tsquery类型前进行规范化处理。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 SELECT 'fat & rat'::tsquery; tsquery --------------- 'fat' & 'rat' (1 row) SELECT 'fat & (rat | cat)'::tsquery; tsquery --------------------------- 'fat' & ( 'rat' | 'cat' ) (1 row) SELECT 'fat & rat & ! cat'::tsquery; tsquery ------------------------ 'fat' & 'rat' & !'cat' (1 row) tsquery中的词汇可以用一个或多个权重字母来标记,这些权重字母限制词汇只能与匹配权重的tsvector词汇进行匹配。 1 2 3 4 5 SELECT 'fat:ab & cat'::tsquery; tsquery ------------------ 'fat':AB & 'cat' (1 row) 同样,tsquery中的词汇可以用*标记来指定前缀匹配。例如:这个查询可以匹配tsvector中以“super”开始的任意单词。 1 2 3 4 5 SELECT 'super:*'::tsquery; tsquery ----------- 'super':* (1 row) 需注意,前缀匹配会首先被文本搜索分词器处理。例如:postgres中提取的词干是postgr,匹配到了postgraduate,也就意味着下面的结果为真: 1 2 3 4 5 SELECT to_tsvector( 'postgraduate' ) @@ to_tsquery( 'postgres:*' ) AS RESULT; result ---------- t (1 row) 1 2 3 4 5 SELECT to_tsquery('postgres:*'); to_tsquery ------------ 'postgr':* (1 row) to_tsquery函数会将单词转换为tsquery类型前进行规范化处理。'Fat:ab & Cats'规范化转为tsquery类型结果如下: 1 2 3 4 5 SELECT to_tsquery('Fat:ab & Cats'); to_tsquery ------------------ 'fat':AB & 'cat' (1 row)
  • tsvector tsvector类型表示一个检索单元,通常是一个数据库表中的一行文本字段或者这些字段的组合。 tsvector类型的值是唯一分词的分类列表,把一句话的词格式化为不同的词条,在进行分词处理的时候tsvector会按照一定的顺序录入,并自动去掉分词中重复的词条。 to_tsvector函数通常用于解析和标准化文档字符串。 通过tsvector把一个字符串按照空格进行分词,分词的顺序是按照字母和长短排序的,请看以下例子: 1 2 3 4 5 SELECT 'a fat cat sat on a mat and ate a fat rat'::tsvector; tsvector ---------------------------------------------------- 'a' 'and' 'ate' 'cat' 'fat' 'mat' 'on' 'rat' 'sat' (1 row) 如果词条中包含空格或标点符号,可以用引号包围: 1 2 3 4 5 SELECT $$the lexeme ' ' contains spaces$$::tsvector; tsvector ------------------------------------------- ' ' 'contains' 'lexeme' 'spaces' 'the' (1 row) 使用常规的单引号引起来的字符串,字符串中嵌入的单引号(')和反斜杠(\)必须双写进行转义: 1 2 3 4 5 SELECT $$the lexeme 'Joe''s' contains a quote$$::tsvector; tsvector ------------------------------------------------ 'Joe''s' 'a' 'contains' 'lexeme' 'quote' 'the' (1 row) 词条位置常量也可以放到词汇中: 1 2 3 4 5 SELECT 'a:1 fat:2 cat:3 sat:4 on:5 a:6 mat:7 and:8 ate:9 a:10 fat:11 rat:12'::tsvector; tsvector ------------------------------------------------------------------------------- 'a':1,6,10 'and':8 'ate':9 'cat':3 'fat':2,11 'mat':7 'on':5 'rat':12 'sat':4 (1 row) 位置常量通常表示文档中源字的位置。位置信息可以用于进行排名。位置常量的范围是1到16383,最大值默认是16383。相同词的重复位会被忽略掉。 拥有位置的词汇可以进一步地被标注一个权重,它可以是A,B,C或D。 D是默认权重,因此输出中不会显示: 1 2 3 4 5 SELECT 'a:1A fat:2B,4C cat:5D'::tsvector; tsvector ---------------------------- 'a':1A 'cat':5 'fat':2B,4C (1 row) 权重通常被用来反映文档结构,如:将标题标记成与正文词不同。文本检索排序函数可以为不同的权重标记分配不同的优先级。 tsvector类型标准用法示例如下: 1 2 3 4 5 SELECT 'The Fat Rats'::tsvector; tsvector -------------------- 'Fat' 'Rats' 'The' (1 row) 但是对于英文全文检索应用来说,上面的单词会被认为非规范化的,所以需要通过to_tsvector函数对这些单词进行规范化处理: 1 2 3 4 5 SELECT to_tsvector('english', 'The Fat Rats'); to_tsvector ----------------- 'fat':2 'rat':3 (1 row)
  • 语法格式 修改词典定义。 1 2 3 ALTER TEXT SEARCH DICTIONARY name ( option [ = value ] [, ... ] ); 重命名词典。 1 ALTER TEXT SEARCH DICTIONARY name RENAME TO new_name; 设置词典的所属模式。 1 ALTER TEXT SEARCH DICTIONARY name SET SCHEMA new_schema; 修改词典的所属者。 1 ALTER TEXT SEARCH DICTIONARY name OWNER TO new_owner;
共100000条