华为云用户手册

  • GS_ALL_CONTROL_GROUP_INFO GS_ALL_CONTROL_GROUP_INFO视图显示数据库内所有控制组的信息。 表1 GS_ALL_CONTROL_GROUP_INFO字段 名称 类型 描述 name text 控制组的名称。 type text 控制组的类型。 GROUP_NONE:无分组。 GROUP_TOP:顶级分组。 GROUP_CLASS:该资源的类分组,不控制任何线程。 GROUP_BAKWD:后端线程控制组。 GROUP_DEFWD: 默认控制组,仅控制该级别的查询线程。 GROUP_TSWD:每个用户的分时控制组,控制最底层的查询线程。 gid bigint 控制组ID。 classgid bigint Workload所属Class的控制组ID。 class text Class控制组。 workload text Workload控制组。 shares bigint 控制组分配的CPU资源配额。 limits bigint 控制组分配的CPU资源限额。 wdlevel bigint Workload控制组层级。 cpucores text 控制组使用的CPU核的信息。 父主题: 其他系统视图
  • 多租数据库函数 gs_reload_pdb_conf(name pdbname) 描述:使得指定PDB的配置文件立刻生效。PDB内部仅能指定本PDB。入参可为空。当为空时,仅能在PDB内部调用并生效此PDB的配置文件。 返回值类型:boolean 备注:如果成功,函数返回true,否则返回false。仅限sysadmin及以上权限的用户可以执行。 gs_resplan_cgroup_info() 描述:功能等同于gs_cgroup -p,返回多租CGroup的架构与份额明细。CDB查看所有数据,PDB只能看本PDB范围内的数据。该返回在主机返回CGroup框架的CGroup(DefaultClass、DefaultBackend、Vacuum等)与PDB的Class_xxx控制组,函数备机执行会报错。 返回值类型:setof record 名称 类型 描述 cgroup_name text 控制组的名称。 shares bigint 控制组分配的CPU资源配额。 quota bigint 控制组可以使用CPU资源的最大值。 cpuset text CPU限额分配。 cpu_usage real 控制组CPU使用总时间。 relpath text 控制组的相对路径。 task_num bigint 控制组的线程数。 group_id bigint 线程组ID。 is_disable boolean 控制组是否不可用。 示例: 1 2 3 4 5 6 7 8 gaussdb=# select * FROM GS_RESPLAN_CGROUP_INFO(); cgroup_name | shares | quota | cpuset | cpu_usage | relpath | task_num | group_id | is_disable ------------------------+--------+-------+--------+-----------+--------------------------------+----------+----------+------------ Default_Class | 2048 | -1 | 0-15 | 0 | CDB:omm/Default_Class | 17 | 0 | f Backend | 12288 | -1 | 0-15 | 4.90895 | CDB:omm/Backend | 0 | 0 | f Backend/DefaultBackend | 81920 | -1 | 0-15 | 4.91018 | CDB:omm/Backend/DefaultBackend | 44 | 0 | f Backend/Vacuum | 20480 | -1 | 0-15 | 0 | CDB:omm/Backend/Vacuum | 0 | 0 | f (4 rows) gs_resplan_stat_info(view_type integer) 描述:返回当前CDB下资源计划的实时数据的统计结果,包含CPU、内存、I/O指标。可以获取包含实时数据、最近一分钟的统计数据以及每分钟的统计数据历史明细(最长一小时)。 CDB可查看所有数据,而PDB只能看本PDB范围内的数据。函数备机执行会报错。 当发生资源变更的时候,会存在used_shared_memory统计的共享缓存从0开始重新计数。随着业务运行,业务申请新的共享缓存used_shared_memory增加,统计恢复正常,期间对性能无影响。 入参说明: 名称 类型 输入/输出 取值范围 描述 view_type integer 输入 [0,1,2] 0:返回实时统计数据。 1:返回最近一次的统计数据。 2:返回最近1小时的统计数据历史。 返回值类型:setof record 名称 类型 描述 plan_name text end_time时刻正在生效的资源计划的名称。 pdb_name name 如果是CDB显示"cdb",如果是PDB显示PDB的name。 begin_time timestamp with time zone 采集开始时间,实时统计时,返回空。 end_time timestamp with time zone 采集结束时间,实时统计时,返回now。 interval_msec integer 此条统计的间隔时间,单位是毫秒(ms)。 cpu_consumed_time integer 此段时间内的CPU使用时间,多个核的使用时间累加,单位是毫秒(ms)。 avg_cpu_utilization double precision CPU使用率,计算公式为:cpu_consumed_time / interval_msec / CDB的CPU核数。 iops double precision 此段时间内的iops,实时统计时返回上一秒的iops,周期统计时返回周期内的iops。 used_dynamic_memory integer end_time时刻使用的动态内存,单位kB。 used_shared_memory integer end_time时刻使用的共享缓存,单位kB。 used_connections integer 当前时刻使用的连接数。 示例: 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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 gaussdb=# select * FROM GS_RESPLAN_STAT_INFO(0); plan_name | pdb_name | begin_time | end_time | interval_msec | cpu_consumed_time | avg_cpu_utilization | iops | used_dynamic_memory | used_shared_memory | used_connections -----------------------+----------+------------+-------------------------------+---------------+-------------------+---------------------+------+---------------------+--------------------+------------------ default_resource_plan | cdb | | 2024-04-26 17:27:26.774945+08 | | 837935 | | 0 | 10240 | 8792 | 1 (1 row) gaussdb=# select * FROM GS_RESPLAN_STAT_INFO(1); plan_name | pdb_name | begin_time | end_time | interval_msec | cpu_consumed_time | avg_cpu_utilization | iops | used_dynamic_memory | used_shared_memory | used_connections -----------------------+----------+-------------------------------+-------------------------------+---------------+-------------------+---------------------+------+---------------------+--------------------+------------------ default_resource_plan | cdb | 2024-04-26 17:27:24.856704+08 | 2024-04-26 17:27:34.859375+08 | 10003 | 7673 | 4.79418674397681 | 0 | 10240 | 8792 | 1 (1 row) gaussdb=# select * FROM GS_RESPLAN_STAT_INFO(2); plan_name | pdb_name | begin_time | end_time | interval_msec | cpu_consumed_time | avg_cpu_utilization | iops | used_dynamic_memory | used_shared_memory | used_connections -----------------------+----------+-------------------------------+-------------------------------+---------------+-------------------+---------------------+------+---------------------+--------------------+------------------ default_resource_plan | cdb | 2024-04-26 17:18:03.698963+08 | 2024-04-26 17:18:13.701141+08 | 10003 | 7667 | 4.79043786863941 | 0 | 10240 | 8784 | 1 default_resource_plan | cdb | 2024-04-26 17:18:13.701141+08 | 2024-04-26 17:18:23.704385+08 | 10004 | 7569 | 4.72873350659736 | 0 | 10240 | 8784 | 1 default_resource_plan | cdb | 2024-04-26 17:18:23.704385+08 | 2024-04-26 17:18:33.708252+08 | 10004 | 7546 | 4.71436425429828 | 0 | 10240 | 8784 | 1 default_resource_plan | cdb | 2024-04-26 17:18:33.708252+08 | 2024-04-26 17:18:43.710283+08 | 10003 | 7546 | 4.7148355493352 | 0 | 10240 | 8784 | 1 default_resource_plan | cdb | 2024-04-26 17:18:43.710283+08 | 2024-04-26 17:18:53.714429+08 | 10005 | 7607 | 4.75199900049975 | 0 | 10240 | 8784 | 1 default_resource_plan | cdb | 2024-04-26 17:18:53.714429+08 | 2024-04-26 17:19:03.716946+08 | 10003 | 7496 | 4.68359492152354 | 0 | 10240 | 8784 | 1 default_resource_plan | cdb | 2024-04-26 17:19:03.716946+08 | 2024-04-26 17:19:13.720804+08 | 10004 | 7730 | 4.82931827269092 | 0 | 10240 | 8784 | 1 default_resource_plan | cdb | 2024-04-26 17:19:13.720804+08 | 2024-04-26 17:19:23.723089+08 | 10003 | 7627 | 4.76544536639008 | 0 | 10240 | 8784 | 1 default_resource_plan | cdb | 2024-04-26 17:19:23.723089+08 | 2024-04-26 17:19:33.725579+08 | 10003 | 7645 | 4.77669199240228 | 0 | 10240 | 8784 | 1 default_resource_plan | cdb | 2024-04-26 17:19:33.725579+08 | 2024-04-26 17:19:43.728107+08 | 10003 | 7506 | 4.68984304708587 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:19:43.728107+08 | 2024-04-26 17:19:53.731553+08 | 10004 | 7546 | 4.71436425429828 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:19:53.731553+08 | 2024-04-26 17:20:03.735783+08 | 10005 | 7542 | 4.71139430284858 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:20:03.735783+08 | 2024-04-26 17:20:13.738998+08 | 10004 | 7684 | 4.80057976809276 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:20:13.738998+08 | 2024-04-26 17:20:23.739979+08 | 10001 | 7621 | 4.76264873512649 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:20:23.739979+08 | 2024-04-26 17:20:33.744074+08 | 10005 | 7547 | 4.71451774112944 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:20:33.744074+08 | 2024-04-26 17:20:43.747658+08 | 10004 | 7556 | 4.72061175529788 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:20:43.747658+08 | 2024-04-26 17:20:53.749548+08 | 10002 | 7522 | 4.7003099380124 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:20:53.749548+08 | 2024-04-26 17:21:03.753063+08 | 10004 | 7633 | 4.7687175129948 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:21:03.753063+08 | 2024-04-26 17:21:13.75493+08 | 10002 | 7546 | 4.71530693861228 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:21:13.75493+08 | 2024-04-26 17:21:23.759145+08 | 10005 | 7528 | 4.70264867566217 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:21:23.759145+08 | 2024-04-26 17:21:33.762928+08 | 10004 | 7610 | 4.75434826069572 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:21:33.762928+08 | 2024-04-26 17:21:43.764247+08 | 10002 | 7648 | 4.77904419116177 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:21:43.764247+08 | 2024-04-26 17:21:53.767114+08 | 10003 | 7553 | 4.71920923722883 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:21:53.767114+08 | 2024-04-26 17:22:03.768908+08 | 10002 | 7546 | 4.71530693861228 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:22:03.768908+08 | 2024-04-26 17:22:14.769313+08 | 11001 | 8320 | 4.72684301427143 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:22:14.769313+08 | 2024-04-26 17:22:24.771805+08 | 10003 | 7609 | 4.75419874037789 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:22:24.771805+08 | 2024-04-26 17:22:34.77268+08 | 10001 | 7663 | 4.78889611038896 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:22:34.77268+08 | 2024-04-26 17:22:44.774189+08 | 10002 | 7575 | 4.73342831433713 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:22:44.774189+08 | 2024-04-26 17:22:54.776923+08 | 10003 | 7562 | 4.72483255023493 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:22:54.776923+08 | 2024-04-26 17:23:04.780283+08 | 10004 | 7528 | 4.703118752499 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:23:04.780283+08 | 2024-04-26 17:23:14.783028+08 | 10003 | 7670 | 4.79231230630811 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:23:14.783028+08 | 2024-04-26 17:23:24.786651+08 | 10004 | 7575 | 4.73248200719712 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:23:24.786651+08 | 2024-04-26 17:23:34.789164+08 | 10003 | 7605 | 4.75169949015295 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:23:34.789164+08 | 2024-04-26 17:23:44.790512+08 | 10002 | 7555 | 4.72093081383723 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:23:44.790512+08 | 2024-04-26 17:23:54.794428+08 | 10004 | 7554 | 4.71936225509796 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:23:54.794428+08 | 2024-04-26 17:24:04.796358+08 | 10002 | 7559 | 4.72343031393721 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:24:04.796358+08 | 2024-04-26 17:24:14.800046+08 | 10004 | 7716 | 4.82057177129148 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:24:14.800046+08 | 2024-04-26 17:24:24.802384+08 | 10003 | 7640 | 4.77356792962111 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:24:24.802384+08 | 2024-04-26 17:24:34.80651+08 | 10005 | 7563 | 4.72451274362819 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:24:34.80651+08 | 2024-04-26 17:24:44.809344+08 | 10003 | 7639 | 4.77294311706488 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:24:44.809344+08 | 2024-04-26 17:24:54.812198+08 | 10003 | 7515 | 4.69546636009197 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:24:54.812198+08 | 2024-04-26 17:25:04.815942+08 | 10004 | 7514 | 4.69437225109956 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:25:04.815942+08 | 2024-04-26 17:25:14.819947+08 | 10005 | 7666 | 4.78885557221389 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:25:14.819947+08 | 2024-04-26 17:25:24.822684+08 | 10003 | 7635 | 4.77044386683995 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:25:24.822684+08 | 2024-04-26 17:25:34.824631+08 | 10002 | 7557 | 4.72218056388722 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:25:34.824631+08 | 2024-04-26 17:25:44.828104+08 | 10004 | 7561 | 4.72373550579768 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:25:44.828104+08 | 2024-04-26 17:25:54.831845+08 | 10004 | 7528 | 4.703118752499 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:25:54.831845+08 | 2024-04-26 17:26:04.834615+08 | 10003 | 7592 | 4.74357692692192 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:26:04.834615+08 | 2024-04-26 17:26:14.838007+08 | 10004 | 7600 | 4.74810075969612 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:26:14.838007+08 | 2024-04-26 17:26:24.839897+08 | 10002 | 7509 | 4.69218656268746 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:26:24.839897+08 | 2024-04-26 17:26:34.84265+08 | 10003 | 7586 | 4.73982805158452 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:26:34.84265+08 | 2024-04-26 17:26:44.847115+08 | 10005 | 7618 | 4.75887056471764 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:26:44.847115+08 | 2024-04-26 17:26:54.849194+08 | 10003 | 7652 | 4.78106568029591 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:26:54.849194+08 | 2024-04-26 17:27:04.851555+08 | 10003 | 7518 | 4.69734079776067 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:27:04.851555+08 | 2024-04-26 17:27:14.852988+08 | 10002 | 7538 | 4.71030793841232 | 0 | 8192 | 8784 | 0 default_resource_plan | cdb | 2024-04-26 17:27:14.852988+08 | 2024-04-26 17:27:24.856704+08 | 10004 | 7589 | 4.74122850859656 | 0 | 10240 | 8792 | 1 default_resource_plan | cdb | 2024-04-26 17:27:24.856704+08 | 2024-04-26 17:27:34.859375+08 | 10003 | 7673 | 4.79418674397681 | 0 | 10240 | 8792 | 1 default_resource_plan | cdb | 2024-04-26 17:27:34.859375+08 | 2024-04-26 17:27:44.862108+08 | 10003 | 7595 | 4.74545136459062 | 0 | 10240 | 8792 | 1 default_resource_plan | cdb | 2024-04-26 17:27:44.862108+08 | 2024-04-26 17:27:54.863788+08 | 10002 | 7559 | 4.72343031393721 | 0 | 10240 | 8792 | 1 default_resource_plan | cdb | 2024-04-26 17:27:54.863788+08 | 2024-04-26 17:28:04.866832+08 | 10004 | 7551 | 4.71748800479808 | 0 | 10240 | 8792 | 1 (60 rows) gs_get_pdb_tablespace_location(pdb_id oid in, tablespace_oid oid in) 描述:给定pdbid和表空间oid,返回对应的表空间路径。 入参说明: 名称 类型 输入/输出 取值范围 描述 pdb_id oid 输入 [1, 4095] PDB的id tablespace_oid oid 输入 [0, 4294967295] 表空间的oid 返回值类型:text 该函数现阶段不建议客户使用,仅供内核功能实现使用。当pdb_id入参不在范围内,会返回NULL;如果传入的pdb_id参数是其他PDB的pdbid,返回空字符串;当执行用户不是superuser/sysdba,返回空字符串;若查询的PDB下没有对应的表空间,则会报错。 get_mtd_user() 描述:按照DB和User维度显示所有用户信息;多租场景下,non-PDB调用该函数时返回全部信息,PDB调用该函数时仅返回该PDB相关信息。 返回值类型:setof record 名称 类型 描述 dbid oid 数据库标识。 usename name 用户名。 usesysid oid 用户的ID。 usecreatedb boolean 用户是否可以创建数据库。 t(true):表示是。 f(false):表示否。 usesuper boolean 用户是否是拥有最高权限的初始系统管理员。 t(true):表示是。 f(false):表示否。 usecatupd boolean 用户是否可以直接更新系统表。只有usesysid=10的初始系统管理员拥有此权限。其他用户无法获得此权限。 t(true):表示是。 f(false):表示否。 userepl boolean 用户是否可以复制数据流。 t(true):表示是。 f(false):表示否。 passwd text 密文存储后的用户密码,始终为********。 valbegin timestamp with time zone 账户的有效开始时间;如果没有设置有效开始时间,则为NULL。 valuntil timestamp with time zone 账户的有效结束时间;如果没有设置有效结束时间,则为NULL。 respool name 用户所在的资源池。 parent oid 父用户OID。 spacelimit text 永久表存储空间限额,单位KB。 useconfig text 运行时配置项的默认值。参考PG_DB_ROLE_SETTING.setconfig。 nodegroup name 用户关联的逻辑数据库名称,如果该用户没有管理逻辑数据库,则该字段为空。 tempspacelimit text 临时表存储空间限额,单位KB。 spillspacelimit text 算子落盘空间限额,单位KB。 usemonitoradmin boolean 用户是否是监控管理员。 t(true):表示是。 f(false):表示否。 useoperatoradmin boolean 用户是否是运维管理员。 t(true):表示是。 f(false):表示否。 usepolicyadmin boolean 用户是否是安全策略管理员。 t(true):表示是。 f(false):表示否。 get_instr_sql_count_info() 描述:按照DB和User维度提供当前节点中用户执行的SELECT、UPDATE、INSERT、DELETE、MERGE INTO语句的计数结果。多租场景下,non-PDB调用该函数时返回全部信息,PDB调用该函数时仅返回该PDB相关信息。 返回值类型:record get_instr_db_rt_percentile() 描述:按照DB维度显示SQL响应时间P80、P95分布信息。如果在PDB中执行该函数,仅返回当前PDB的SQL响应时间P80、P95分布信息。 返回值类型:record 示例: -- 在CDB中查询 gaussdb=# select * from get_instr_db_rt_percentile(); DBID | P80 | P95 ------------+------+------ 14539 | 7375 | 7547 1255163054 | 3909 | 6558 (2 rows) -- 在PDB中查询 gaussdb=# \c pdb1 pdb1=# select * from get_instr_db_rt_percentile(); DBID | P80 | P95 ------------+------+------ 1255163054 | 6220 | 7358 (1 row) get_instr_user_login_info() 描述:按照DB和User维度显示当前节点的用户登录、登出次数信息,查询该函数必须具有SYSADMIN或者MONADMIN权限。如果在PDB中执行该函数,仅返回当前PDB的登录、登出信息。 返回值类型:record 示例: -- 在CDB中查询 gaussdb=# select * from get_instr_user_login_info(); node_name | dbid | user_id | login_counter | logout_counter -----------+------------+---------+---------------+---------------- datanode | 14539 | 10 | 82183 | 82182 datanode | 1255163054 | 10 | 39932 | 39932 (2 rows) -- 在PDB中查询 gaussdb=# \c pdb1 pdb1=# select * from get_instr_user_login_info(); node_name | dbid | user_id | login_counter | logout_counter -----------+------------+---------+---------------+---------------- datanode | 1255163054 | 10 | 39933 | 39932 (1 row) gs_resplan_shared_memory_info() 描述:显示所有可用资源池共享缓存的详细信息。此系统函数在GUC参数“enable_mtd”为“on”时才有效,且仅支持在主机的CDB内用系统管理员查看。 返回值类型:setof record 名称 类型 描述 respool_oid oid 资源池OID。 allocated_shared_memory bigint 已经分配的共享内存大小,单位KB。 respool_group_shared_memory bigint 各个资源池在共享内存实际占用的内存大小,单位KB。 avaliable_shared_memory bigint 各个资源池剩余可使用的共享内存大小,单位KB。 real_used_shared_memory bigint 各个资源池实际使用的共享内存大小,单位KB。 shared_memory_hits_per bigint 从共享内存中找到buffer的命中率。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 gaussdb=# select * from gs_resplan_shared_memory_info(); respool_oid | allocated_shared_memory | respool_group_shared_memory | avaliable_shared_memory | real_used_shared_memory | shared_memory_hits_per -------------+-------------------------+-----------------------------+-------------------------+-------------------------+------------------------ 10 | 8640 | 8640 | 1048568 | -1 | 100 (1 row) -- 创建pdb1后,联查gs_pdb和gs_resplan_shared_memory_info,获取PDB的资源池信息 gaussdb=# select b.name,a.* from gs_resplan_shared_memory_info() as a LEFT JOIN gs_pdb as b on a.respool_oid=b.grp_respool_oid where name = 'pdb1'; name | respool_oid | allocated_shared_memory | respool_group_shared_memory | avaliable_shared_memory | real_used_shared_memory | shared_memory_hits_per ------+-------------+-------------------------+-----------------------------+-------------------------+-------------------------+------------------------ pdb1 | 155648 | 1048576 | 1048576 | 459400 | 589176 | 100 (1 row) 父主题: 函数和操作符
  • 事务管理 在ecpg缺省模式下,语句只有在EXEC SQL COMMIT发出的时候才被提交,嵌入的SQL接口也支持事务的自动提交(通过EXEC SQL SET AUTOCOMMIT TO ON语句设置自动提交)。在自动提交模式下,每条命令都是自动提交的,除非它们包围在一个明确的事务块里。自动提交模式可以用EXEC SQL SET AUTOCOMMIT TO OFF语句关闭。 常见事务管理命令如下: EXEC SQL COMMIT:提交正在进行的事务。 EXEC SQL ROLLBACK:回滚正在进行的事务。 EXEC SQL SET AUTOCOMMIT TO ON:启动自动提交模式。 EXEC SQL SET AUTOCOMMIT TO OFF:关闭自动提交模式,缺省模式。 父主题: 执行SQL命令
  • GS_MASKING_POLICY_ACTIONS GS_MASKING_POLICY_ACTIONS系统表记录动态数据脱敏策略中相应的脱敏策略包含的脱敏行为,一个脱敏策略对应着该表的一行或多行记录。需要有系统管理员或安全策略管理员权限才可以访问此系统表。 表1 GS_MASKING_POLICY_ACTIONS表字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 actiontype name 脱敏函数,标识脱敏策略使用的脱敏函数。 actparams name 向脱敏函数中传递的参数信息。 actlabelname name 被脱敏的label名称。 policyoid oid 该条记录所属的脱敏策略的oid,对应GS_MASKING_POLICY中的oid。 actmodifydate timestamp without time zone 该条记录创建或修改的最新时间戳。 父主题: 动态脱敏
  • 用户自定义子类型 PL/SQL中使用SUBTYPE可以创建自己的子类型,其基类型可以是任何基础类型或用户自定义类型。子类型可以提供数据类型的兼容性,显示该类型数据项的预期用途,检测超出范围的值。 SUBTYPE基础定义语法: SUBTYPE subtype_name IS base_type [ { ( precision [, scale ] ) | RANGE low_value .. high_value } ] [ NOT NULL ] 参数说明: SUBTYPE:SUBTYPE关键字。 subtype_name:需要定义的SUBTYPE子类型名。 base_type:基类型,创建subtype类型所依据的基础类型或者自定义类型。 precision [, scale ]:可添加的typmod约束。 RANGE low_value .. high_value:可添加的RANGE约束。 NOT NULL:可添加的NOT NULL约束。 base_type支持基础类型,也支持自定义数据类型以及SUBTYPE类型。 如果指定了typmod约束,则对SUBTYPE类型变量进行赋值时会校验该值是否符合typmod约束,是否支持指定typmod约束与基类型保持一致。 仅int类型支持指定RANGE约束,其中包括TINYINT/SMALLINT/MEDIUMINT/INTEGER/BINARY_INTEGER/BIGINT/INT。如果指定了RANGE约束,则对SUBTYPE类型变量进行赋值时会校验该值是否在指定的范围内。 RANGE的上下限不能超过INT64。 暂不支持创建变量的时候使用RANGE约束。 嵌套SUBTYPE类型和创建SUBTYPE类型变量时更新约束情况。 如果指定了NOT NULL,则使用SUBTYPE类型定义变量时必须初始化,且不能赋NULL值。 支持使用SUBTYPE类型作为存储过程出入参类型。 支持SUBTYPE类型变量使用%type和%rowtype,其中%type支持所有基类型,%rowtype支持表、不支持集合类型。 SUBTYPE支持使用基类型的类型构造器。 不支持指定字符集。 仅A兼容模式下支持使用。 数据库从不支持SUBTYPE的版本升级到支持SUBTYPE的版本,在升级未提交状态,不支持使用SUBTYPE。 示例1:无约束子类型。 gaussdb=# DECLARE SUBTYPE sint IS INT; a sint := 2147483647; BEGIN DBE_OUTPUT.PUT_LINE('a = ' || a); END; / a = 2147483647 ANONYMOUS BLOCK EXECUTE 示例2:SUBTYPE支持typmod、RANGE和NOT NULL约束。 --typmod约束 gaussdb=# DECLARE SUBTYPE sdec IS DECIMAL(3,2) NOT NULL; a sdec := 1.1; b sdec(5,2) := 322.1; BEGIN DBE_OUTPUT.PUT_LINE('a = ' || a); DBE_OUTPUT.PUT_LINE('b = ' || b); END; / a = 1.10 b = 322.10 ANONYMOUS BLOCK EXECUTE --NOT NULL约束 gaussdb=# DECLARE SUBTYPE sint IS INT NOT NULL; a sint; BEGIN NULL; END; / ERROR: variables declared as NOT NULL must have a default value. CONTEXT: compilation of PL/pgSQL function "inline_code_block" near line 2 gaussdb=# DECLARE SUBTYPE age IS BINARY_INTEGER RANGE 0..100 NOT NULL; a age := 18; b age := 20; BEGIN DBE_OUTPUT.PUT_LINE('a的年龄为:' || a); DBE_OUTPUT.PUT_LINE('b的年龄为:' || b); END; / a的年龄为:18 b的年龄为:20 ANONYMOUS BLOCK EXECUTE 示例3:SUBTYPE嵌套自定义数据类型使用基类型类型构造器。 gaussdb=# DECLARE TYPE arrint IS VARRAY(10) OF INTEGER; SUBTYPE sarrint IS arrint; --a sarrint := sarrint(1,2,3,4);报错,仅支持基类型的类型构造器 a sarrint := arrint(1,2,3,4); BEGIN FOR i IN 1..4 LOOP DBE_OUTPUT.PUT_LINE(a(i)); END LOOP; END; / 1 2 3 4 ANONYMOUS BLOCK EXECUTE 示例4:支持SUBTYPE嵌套SUBTYPE类型,并更新约束条件。 --range约束 gaussdb=# DECLARE SUBTYPE sint IS INTEGER RANGE 10..99; SUBTYPE ssint IS sint RANGE 0..9; a sint := 50; b ssint := 5; BEGIN DBE_OUTPUT.PUT_LINE('a = ' || a); DBE_OUTPUT.PUT_LINE('b = ' || b); END; / a = 50 b = 5 ANONYMOUS BLOCK EXECUTE --typmod约束 gaussdb=# DECLARE SUBTYPE word IS VARCHAR2(5); SUBTYPE sentence IS word(50); a word := 'Tom'; b sentence := 'Tom and Jerry'; c sentence(8) := 'Mountain'; BEGIN DBE_OUTPUT.PUT_LINE('a = ' || a); DBE_OUTPUT.PUT_LINE('b = ' || b); DBE_OUTPUT.PUT_LINE('c = ' || c); END; / a = Tom b = Tom and Jerry c = Mountain ANONYMOUS BLOCK EXECUTE 示例5:支持自定义数据类型嵌套SUBTYPE类型。 gaussdb=# DECLARE SUBTYPE sint IS BINARY_INTEGER RANGE 0..99; TYPE tabint IS TABLE OF sint; a tabint := tabint(); BEGIN a.EXTEND(10); a(1) := 50; END; / ANONYMOUS BLOCK EXECUTE 父主题: 数据类型
  • FOR_LOOP(integer变量)语句 语法图 for_loop::=语句如图5所示。 图5 for_loop::= label declaration ::=语句如图6所示。 图6 label declaration ::= 变量name会自动定义为integer类型并且只在此循环里存在。变量name介于lower_bound和upper_bound之间。 当使用REVERSE关键字时,lower_bound必须大于等于upper_bound,否则循环体不会被执行。 示例 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 --从0到5进行循环 gaussdb=# CREATE OR REPLACE PROCEDURE proc_for_loop() AS BEGIN FOR I IN 0..5 LOOP DBE_OUTPUT.PRINT_LINE('It is '||to_char(I) || ' time;') ; END LOOP; END; / CREATE PROCEDURE --调用存储过程 gaussdb=# CALL proc_for_loop(); It is 0 time; It is 1 time; It is 2 time; It is 3 time; It is 4 time; It is 5 time; proc_for_loop --------------- (1 row) --删除存储过程 gaussdb=# DROP PROCEDURE proc_for_loop; DROP PROCEDURE
  • FOR_LOOP查询语句 语法图 for_loop_query::=语句如图7所示。 图7 for_loop_query::= label declaration ::=语句如如图8所示。 图8 label declaration ::= 变量target会自动定义,类型和query的查询结果的类型一致,并且只在此循环中有效。target的取值就是query的查询结果。 query可以使用EXECUTE增加动态查询,通过USING向查询插入参数。详见示例中的动态查询相关内容。 示例 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 --循环输出查询结果。 gaussdb=# CREATE OR REPLACE PROCEDURE proc_for_loop_query() AS record VARCHAR2(50); BEGIN FOR record IN SELECT spcname FROM pg_tablespace LOOP dbe_output.print_line(record); END LOOP; END; / CREATE PROCEDURE --调用存储过程 gaussdb=# CALL proc_for_loop_query(); pg_default pg_global proc_for_loop_query --------------------- (1 row) --删除存储过程 gaussdb=# DROP PROCEDURE proc_for_loop_query; DROP PROCEDURE --动态查询 gaussdb=# CREATE TABLE t1(id int); gaussdb=# INSERT INTO t1 VALUES(1); gaussdb=# DECLARE a int := 1; item t1%rowtype; BEGIN FOR item IN EXECUTE 'SELECT * FROM t1 WHERE id = :1' USING a LOOP RAISE INFO '%', item; END LOOP; END; / INFO: (1) ANONYMOUS BLOCK EXECUTE gaussdb=# DROP TABLE t1;
  • FORALL批量查询语句 语法图 forall::=语句图图9所示。 图9 forall::= label declaration ::语句如图10所示。 图10 label declaration ::= 变量index会自动定义为integer类型并且只在此循环里存在。index的取值介于low_bound和upper_bound之间。 示例 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 gaussdb=# CREATE TABLE TEST_t1 ( title NUMBER(6), did VARCHAR2(20), data_period VARCHAR2(25), kind VARCHAR2(25), interval VARCHAR2(20), time DATE, isModified VARCHAR2(10) ) DISTRIBUTE BY hash(did); CREATE TABLE gaussdb=# INSERT INTO TEST_t1 VALUES( 8, 'Donald', 'OConnell', 'DOCONNEL', '650.507.9833', to_date('21-06-1999', 'dd-mm-yyyy'), 'SH_CLERK' ); INSERT 0 1 gaussdb=# CREATE OR REPLACE PROCEDURE proc_forall() AS BEGIN FORALL i IN 100..120 update TEST_t1 set title = title + 100*i; END; / CREATE PROCEDURE --调用存储过程 gaussdb=# CALL proc_forall(); proc_forall ------------- (1 row) --查询存储过程调用结果 gaussdb=# SELECT * FROM TEST_t1; title | did | data_period | kind | interval | time | ismodified --------+--------+-------------+----------+--------------+---------------------+------------ 231008 | Donald | OConnell | DOCONNEL | 650.507.9833 | 1999-06-21 00:00:00 | SH_CLERK (1 row) --删除存储过程和表 gaussdb=# DROP PROCEDURE proc_forall; DROP PROCEDURE gaussdb=# DROP TABLE TEST_t1; DROP TABLE
  • 背景信息 数据库审计功能对数据库系统的安全性至关重要。数据库审计管理员可以利用审计日志信息,重现导致数据库现状的一系列事件,找出非法操作的用户、时间和内容等。 关于审计功能,用户需要了解以下几点内容: 审计总开关GUC参数audit_enabled支持动态加载。在数据库运行期间修改该配置项的值会立即生效,无需重启数据库。默认值为on,表示开启审计功能。 除了审计总开关,各个审计项也有对应的开关。只有开关开启,对应的审计功能才能生效。 各审计项的开关支持动态加载。在数据库运行期间修改审计开关的值,不需要重启数据库便可生效。 目前, GaussDB 支持以下审计项如表1所示。如需要修改具体的审计配置项,请联系管理员进行处理。 表1 配置审计 项 配置项 描述 用户登录、注销审计 参数:audit_login_logout 默认值为7,表示开启用户登录、退出的审计功能。设置为0表示关闭用户登录、退出的审计功能。不推荐设置除0和7之外的值。 数据库启动、停止、恢复和切换审计 参数:audit_database_process 默认值为1,表示开启数据库启动、停止、恢复和切换的审计功能。 用户锁定和解锁审计 参数:audit_user_locked 默认值为1,表示开启审计用户锁定和解锁功能。 用户访问越权审计 参数:audit_user_violation 默认值为0,表示关闭用户越权操作审计功能。 授权和回收权限审计 参数:audit_grant_revoke 默认值为1,表示开启审计用户权限授予和回收功能。 对用户操作进行全量审计 参数:full_audit_users 默认值为空字符串,表示采用默认配置,未配置全量审计用户。 不需要审计的客户端名称及IP地址 参数:no_audit_client 默认值为空字符串,表示采用默认配置,未将客户端及IP加入审计黑名单。 数据库对象的CREATE,ALTER,DROP操作审计 参数:audit_system_object 默认值为67121159,表示对DATABASE、SCHEMA、USER、NODE GROUP这四类数据库对象的CREATE、ALTER、DROP操作进行审计。 具体表的INSERT、UPDATE和DELETE操作审计 参数:audit_dml_state 默认值为0,表示关闭具体表的DML操作(SELECT除外)审计功能。 SELECT操作审计 参数:audit_dml_state_select 默认值为0,表示关闭SELECT操作审计功能。 COPY审计 参数:audit_copy_exec 默认值为1,表示开启copy操作审计功能。 执行存储过程和自定义函数的审计 参数:audit_function_exec 默认值为0,表示不记录执行存储过程和自定义函数的审计日志。 执行白名单内的系统函数审计 参数:audit_system_function_exec 默认值为0,表示不记录执行系统函数的审计日志。 SET审计 参数:audit_set_parameter 默认值为0,表示不记录set操作审计日志 事务ID记录 参数:audit_xid_info 默认值为0,表示关闭审计日志记录事务ID功能。 内部工具连接及操作审计、DN上对来自CN的登录或者退出登录审计 参数:audit_internal_event 默认值为off,表示不对内部工具cm_agent、gs_clean和WDRXdb的登录或者退出登录及操作进行审计,DN上不对来自CN的登录或者退出登录进行审计。
  • 语法格式 更改操作符的所有者。 ALTER OPERATOR name ( { left_type | NONE } , { right_type | NONE } ) OWNER TO new_owner; 更改操作符的模式。 ALTER OPERATOR name ( { left_type | NONE } , { right_type | NONE } ) SET SCHEMA new_schema;
  • 示例 --创建函数。 gaussdb=# CREATE FUNCTION func_add(num1 integer, num2 integer) RETURN INTEGER AS BEGIN RETURN num1+num2; END; / --创建操作符。 gaussdb=# CREATE OPERATOR @@@ (PROCEDURE = func_add,LEFTARG = int,RIGHTARG = int); --创建用户。 gaussdb=# CREATE USER user1 PASSWORD '********'; --修改操作符。 gaussdb=# ALTER OPERATOR @@@ (int,int) OWNER to user1; --创建SCHEMA。 gaussdb=# CREATE SCHEMA oper_sch; --修改操作符。 gaussdb=# ALTER OPERATOR @@@ (int,int) SET SCHEMA oper_sch; --删除。 gaussdb=# DROP OPERATOR oper_sch.@@@(int,int); gaussdb=# DROP SCHEMA oper_sch; gaussdb=# DROP USER user1; gaussdb=# DROP FUNCTION func_add;
  • 接口介绍 根据输入的参数,评估指定数据对象的采样压缩率或者获取指定行数据的压缩类型。 表1 DBE_COMPRESSION 接口名称 描述 GET_COMPRESSION_RATIO 根据输入参数评估指定数据对象的采样压缩率。 GET_COMPRESSION_TYPE 根据输入参数获取指定行数据的压缩类型。 GET_COMPRESSION_TYPE接口只支持 分布式数据库 中数据节点(DN),其他节点暂不支持。 DBE_COMPRESSION.GET_COMPRESSION_RATIO 根据输入参数评估指定数据对象的采样压缩率,原型为: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 DBE_COMPRESSION.GET_COMPRESSION_RATIO( SCRATCHTBSNAME IN VARCHAR2, OWNNAME IN VARCHAR2, OBJNAME IN VARCHAR2, SUBOBJNAME IN VARCHAR2, COMPTYPE IN NUMBER, BLKCNT_CMP OUT INTEGER, BLKCNT_UNCMP OUT INTEGER, ROW_CMP OUT INTEGER, ROW_UNCMP OUT INTEGER, CMP_RATIO OUT NUMBER, COMPTYPE_STR OUT VARCHAR2, SAMPLE_RATIO IN NUMBER DEFAULT 20, OBJTYPE IN INTEGER DEFAULT 1); 表2 DBE_COMPRESSION.GET_COMPRESSION_RATIO接口参数说明 参数 描述 SCRATCHTBSNAME 数据对象所属表空间。 OWNNAME 数据对象所有者(所属模式)。 OBJNAME 数据对象名称。 SUBOBJNAME 数据子对象名称。 COMPTYPE 压缩类型,支持: 1:未压缩 2:高级压缩。 BLKCNT_CMP 样本被压缩后占用的块数。 BLKCNT_UNCMP 样本未压缩占用的块数。 ROW_CMP 样本被压缩后单个块内可容纳的行数。 ROW_UNCMP 样本未被压缩时单个数据块可容纳的行数。 CMP_RATIO 压缩比,blkcnt_uncmp除以blkcnt_cmp。 COMPTYPE_STR 描述压缩类型的字符串。 SAMPLE_RATIO 采样比例,输入为0-100的整数或浮点数,对应为百分之N的采样比例。默认为20,即对20%的行数进行采样。 OBJTYPE 对象类型,支持: 1:表对象。 DBE_COMPRESSION.GET_COMPRESSION_TYPE 根据输入参数获取指定行数据的压缩类型,该接口属于运维类接口,不做可见性判断,即传入的ctid为已删除的行时,该接口依然会返回当前行在页面上最新的状态,原型为: 1 2 3 4 5 DBE_COMPRESSION.GET_COMPRESSION_TYPE( OWNNAME IN VARCHAR2, TABNAME IN VARCHAR2, CTID IN TEXT, SUBOBJNAME IN VARCHAR2 DEFAULT NULL) 表3 DBE_COMPRESSION.GET_COMPRESSION_TYPE接口参数说明 参数 描述 OWNNAME 数据对象所有者(所属模式)。 TABNAME 数据对象名称。 CTID 目标行ctid。 SUBOBJNAME 数据子对象名称。
  • 示例 --创建拥有系统管理员权限的用户。 gaussdb=# CREATE USER user1 WITH SYSADMIN PASSWORD '********'; gaussdb=# SET ROLE user1 PASSWORD '********'; --创建私有dblink,host也可以是IPv6地址。 gaussdb=# CREATE DATABASE LINK private_dblink CONNECT TO 'user1' IDENTIFIED BY '********' USING (host '192.168.11.11',port '54399',dbname 'db01'); --删除私有dblink。 gaussdb=# DROP DATABASE LINK private_dblink; --创建公共dblink,host也可以是IPv6地址。 gaussdb=# CREATE PUBLIC DATABASE LINK public_dblink CONNECT TO 'user1' IDENTIFIED BY '********' USING (host '192.168.11.11',port '54399',dbname 'db01'); --删除公共dblink。 gaussdb=# DROP PUBLIC DATABASE LINK public_dblink; --删除创建出的用户。 gaussdb=# RESET ROLE; gaussdb=# DROP USER user1;
  • 参数说明 PUBLIC 指定公共以创建对所有用户可见的公共数据库链接。如果省略此子句,则数据库链接是私有的,仅对当前用户可用。 dblink 要创建的DATABASE LINK的名字。 user 创建的DATABASE LINK连接远端使用的用户名。 password 创建的DATABASE LINK连接远端使用的用户对应的密码。 CURRENT_USER 使用当前数据库初始用户名和空密码连接。 USING ( option 'value' [, ... ] ) USING可选择指定要连接的数据库的IP地址、端口号、远端的database name等参数 ,支持的options包括: host:指定连接的地址。支持以 ‘,’分割的字符串来指定多个IP地址,当前不支持密态数据库和ssl设置和证书认证,不指定默认为空。 port:指定连接的端口号,不指定默认为5432。 dbname:指定连接的数据库名称,不指定默认为连接远端使用的用户名。 fetch_size:从远端每次获取数据量大小,fetch_size取值为0到2147483647,默认为100。 USING后的括号可以只选择上述关键字中的一部分去写。 USING关键字也可以不写,同时之后的括号也不要再写。 DATABASE LINK创建的时候不会去验证是否能连接成功,如果缺乏相关的关键字,可能会在使用时报错。 host参数不要使用127.0.0.1和localhost,会出现连接失败的情况。
  • GLOBAL_RECORD_RESET_TIME GLOBAL_RECORD_RESET_TIME用于获取集群中各节点的“重置(重启,主备倒换,数据库删除)时间”的统计信息,如表1所示。 表1 GLOBAL_RECORD_RESET_TIME字段 名称 类型 描述 node_name text 节点名称。 reset_time timestamp with time zone 重置时间点。 父主题: Utility
  • 背景信息 索引可以提高数据的访问速度,但同时也增加了插入、更新和删除操作的处理时间。所以是否要为表增加索引,索引建立在哪些字段上,是创建索引前必须要考虑的问题。需要分析应用程序的业务处理、数据使用、经常被用作查询的条件或者被要求排序的字段来确定是否建立索引。 索引建立在数据库表中的某些列上。因此,在创建索引时,应该仔细考虑在哪些列上创建索引。 在经常需要搜索查询的列上创建索引,可以加快搜索的速度。 在作为主键的列上创建索引,强制该列的唯一性和组织表中数据的排列结构。 在经常使用连接的列上创建索引,可以加快连接的速度。 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的。 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间。 在经常使用WHERE子句的列上创建索引,加快条件的判断速度。 在经常出现关键字ORDER BY、GROUP BY和DISTINCT后面的字段建立索引。 索引创建成功后,系统会自动判断何时引用索引。当系统认为使用索引比顺序扫描更快时,就会使用索引。 索引创建成功后,必须和表保持同步以保证能够准确地找到新数据,这样就增加了数据操作的负荷。因此请定期删除无用的索引。 分区表索引分为LOCAL索引与GLOBAL索引,一个LOCAL索引对应一个具体分区,而GLOBAL索引则对应整个分区表。
  • MY_VIEWS MY_VIEWS视图显示当前用户的所有视图信息。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 MY_VIEWS字段 名称 类型 描述 owner character varying(64) 视图的所有者。 view_name character varying(64) 视图名称。 text text 视图文本。 text_length integer 视图文本长度。 text_vc character varying(4000) 视图创建语句。此列可能会截断视图文本。BEQUEATH子句将不会作为此视图中的TEXT_VC列的一部分出现。 type_text_length numeric 暂不支持,值为NULL。 type_text character varying(4000) 暂不支持,值为NULL。 oid_text_length numeric 暂不支持,值为NULL。 oid_text character varying(4000) 暂不支持,值为NULL。 view_type_owner character varying(128) 暂不支持,值为NULL。 view_type character varying(128) 暂不支持,值为NULL。 superview_name character varying(128) 暂不支持,值为NULL。 editioning_view character varying(1) 暂不支持,值为NULL。 read_only character varying(1) 暂不支持,值为NULL。 container_data character varying(1) 暂不支持,值为NULL。 bequeath character varying(12) 暂不支持,值为NULL。 origin_con_id character varying(256) 暂不支持,值为NULL。 default_collation character varying(100) 暂不支持,值为NULL。 containers_default character varying(3) 暂不支持,值为NULL。 container_map character varying(3) 暂不支持,值为NULL。 extended_data_link character varying(3) 暂不支持,值为NULL。 extended_data_link_map character varying(3) 暂不支持,值为NULL。 has_sensitive_column character varying(3) 暂不支持,值为NULL。 admit_null character varying(3) 暂不支持,值为NULL。 pdb_local_only character varying(3) 暂不支持,值为NULL。 父主题: 其他系统视图
  • GS_GLOBAL_CONFIG GS_GLOBAL_CONFIG记录了集群初始化时,用户指定的参数值。除此之外,还存放了用户设置的弱口令、集群是否处于扩容状态(redis_bucket_expansion),支持数据库初始用户通过ALTER和DROP语法对系统表中的参数进行写入、修改和删除。此系统表默认只有初始用户、系统管理员和安全管理员可以访问,其他用户默认无权访问。 表1 GS_GLOBAL_CONFIG字段 名称 类型 描述 name name 集群初始化时系统内置的指定参数名称、弱口令名称、扩容重分布参数名称、或用户需要使用的参数。 value text 集群初始化时系统内置的指定参数值、弱口令、扩容重分布参数、或用户需要使用的参数值。 不建议用户写入、修改和删除“redis_bucket_expansion”参数。该参数名称被占用,在扩容期间用来表示集群处于扩容状态。 父主题: 其他系统表
  • GS_ILM_POLICY GS_ILM_POLICY系统表提供了记录策略动作类型、判定条件等。 表1 GS_ILM_POLICY字段 名称 类型 描述 pidx integer 策略序号。 action "char" 策略动作:仅支持压缩(‘c’)。 ctype "char" 压缩类型:仅支持高级行压缩(‘a’)。 condition "char" 判定条件类型:仅支持LAST MODIFICATION(‘m’)。 days smallint 判定天数量。 scope "char" 策略作用域:仅支持Row(‘r’)。 predicate pg_node_tree 策略行级表达式。 父主题: OLTP表压缩
  • GS_USER GS_USER视图显示数据库用户的信息。默认只有初始化用户和具有sysadmin属性的用户可以查看,其余用户需要赋权后才可以查看。 表1 GS_USER字段 名称 类型 描述 usename name 用户名。 usesysid oid 用户的id。 usecreatedb boolean 用户是否可以创建数据库。 t(true):表示是。 f(false):表示否。 usesuper boolean 用户是否是拥有最高权限的初始系统管理员。 t(true):表示是。 f(false):表示否。 usecatupd boolean 用户是否可以直接更新系统表。只有usesysid=10的初始系统管理员拥有此权限。其他用户无法获得此权限。 t(true):表示是。 f(false):表示否。 userepl boolean 用户是否可以复制数据流。 t(true):表示是。 f(false):表示否。 passwd text 密文存储后的用户密码,始终为********。 valbegin timestamp with time zone 账户的有效开始时间。如果没有设置有效开始时间,则为NULL。 valuntil timestamp with time zone 账户的有效结束时间。如果没有设置有效结束时间,则为NULL。 respool name 用户所在的资源池。 parent oid 父用户OID。 spacelimit text 永久表存储空间的限额,单位KB。 useconfig text[] 运行时配置项的默认值。参考PG_DB_ROLE_SETTING.setconfig。 tempspacelimit text 临时表存储空间的限额,单位KB。 spillspacelimit text 算子落盘空间的限额,单位KB。 usemonitoradmin boolean 用户是否是监控管理员。 t(true):表示是。 f(false):表示否。 useoperatoradmin boolean 用户是否是运维管理员。 t(true):表示是。 f(false):表示否。 usepolicyadmin boolean 用户是否是安全策略管理员。 t(true):表示是。 f(false):表示否。 父主题: 用户和权限管理
  • DB_TAB_COL_STATIS TICS DB_TAB_COL_STATISTI CS 视图显示从DB_TAB_COLUMNS中提取的列统计信息和直方图信息。所有用户都可以访问该视图。该视图同时存在于PG_CATALOG和SYS Schema下。该视图在LOW_VALUE、HIGH_VALUE字段,由于底层表结构不同原因,与A数据库取值有差异,当LOW_VALUE为高频值时,GaussDB的LOW_VALUE为次小值。当HIGH_VALUE为高频值时,GaussDB的HIGH_VALUE为次高值。HISTOG RAM 字段,由于统计方式不同原因,与A数据库取值有差异,GaussDB只支持两种类型直方图frequency,equi-width。SCOPE字段,由于GaussDB不支持全局临时表统计原因,与A数据库取值有差异,GaussDB只支持本地临时表信息统计,默认置SHARED。 表1 DB_TAB_COL_STATISTICS字段 名称 类型 描述 owner character varying(128) 表的所有者。 table_name character varying(128) 表名。 column_name character varying(128) 列名。 num_distinct numeric 列中不同值的数量。 low_value raw 列中的低值。 high_value raw 列中的高值。 density numeric 如果COLUMN_NAME上有直方图,则此列将显示直方图中跨越少于2个端点的值的选择性。它不代表跨越2个或更多端点的值的选择性。 如果COLUMN_NAME上没有可用的直方图,则该列的值为1/NUM_DISTINCT。 num_nulls numeric 列中空值数。 num_buckets numeric 列的直方图中的桶数。 sample_size numeric 用于分析此列的样本量。 last_analyzed timestamp(0) without time zone 最近分析此列的日期,数据库重启后,数据会丢失。 global_stats character varying(3) 暂不支持,值为NULL。 user_stats character varying(3) 暂不支持,值为NULL。 notes character varying(99) 暂不支持,值为NULL。 avg_col_len numeric 列的平均长度(以字节为单位)。 histogram character varying(15) 表示直方图是否存在以及存在的类型: NONE:表示不存在直方图。 FREQUENCY:表示频率直方图。 EQUI-W IDT H:表示等宽直方图。 scope character varying(7) 对于在除全局临时表之外的任何表上收集的统计信息,该值是SHARED(表示统计信息在所有会话之间共享)。 schema character varying(64) 列所属的名称空间的名称。 父主题: 其他系统视图
  • 空字符串和NULL的关系? 答:GaussDB中对空字符串是否为NULL和数据库的兼容模式有关。 ORA兼容模式中空字符串判断为NULL。 gaussdb=# CREATE DATABASE db_test1 DBCOMPATIBILITY = 'ORA'; gaussdb=# \c db_test1 db_test1=# SELECT '' IS NULL; ?column? ---------- t (1 row) MYSQL兼容模式中空字符串判断不为NULL。 gaussdb=# CREATE DATABASE db_test2 DBCOMPATIBILITY = 'MYSQL'; gaussdb=# \c db_test2 db_test2=# SELECT '' IS NULL; ?column? ---------- f (1 row) 父主题: FAQ
  • 系统表gs_global_config相关SQL 表24 系统表gs_global_config相关SQL 功能 相关SQL 新增、修改系统表gs_global_config的参数值 ALTER GLOBAL CONFIGURATION 删除系统表gs_global_config中的参数值 DROP GLOBAL CONFIGURATION 向系统表gs_global_config中插入一个或者多个弱口令 CREATE WEAK PASSWORD DICTIONARY 清空系统表gs_global_config中的所有弱口令 DROP WEAK PASSWORD DICTIONARY
  • 定义物化视图 表28 物化视图定义相关SQL 功能 相关SQL 创建一个全量物化视图 CREATE MATERIALIZED VIEW 创建一个增量物化视图 CREATE INCREMENTAL MATERIALIZED VIEW 更改一个现有物化视图的多个辅助属性 ALTER MATERIALIZED VIEW 强制删除数据库中已有的物化视图 DROP MATERIALIZED VIEW 以全量刷新的方式对物化视图进行刷新 REFRESH MATERIALIZED VIEW 以增量刷新的方式对物化视图进行刷新 REFRESH INCREMENTAL MATERIALIZED VIEW
  • 定义分区表 分区表是一种逻辑表,数据是由普通表存储的,主要用于提升查询性能。所涉及的SQL语句,请参考表9。 表9 分区表定义相关SQL 功能 相关SQL 创建分区表 CREATE TABLE PARTITION 创建分区 ALTER TABLE PARTITION 修改分区表属性 ALTER TABLE PARTITION 删除分区 ALTER TABLE PARTITION 删除分区表 DROP TABLE 根据查询结果创建分区表 CREATE TABLE PARTITION AS
  • 定义DATABASE LINK对象 DATABASE LINK是可以操作远程数据库对象,所涉及的SQL语句,请参考表19。 表19 DATABASE LINK对象相关SQL 功能 相关SQL 创建一个新的DATABASE LINK对象 CREATE DATABASE LINK 修改DATABASE LINK对象 ALTER DATABASE LINK 删除DATABASE LINK对象 DROP DATABASE LINK
  • 定义列加密密钥 列加密密钥主要用于密态数据库特性中,用来加密数据。列加密密钥定义主要包括创建列加密密钥、轮转加密列加密密钥的客户端主密钥以及删除列加密密钥。所涉及的SQL语句,请参考表3。 表4 列加密密钥定义相关SQL 功能 相关SQL 创建列加密密钥 CREATE COLUMN ENCRYPTION KEY 修改列加密密钥指定的客户端主密钥 7.14.173-ALTER COLUMN ENCRYPTION KEY 删除列加密密钥 DROP COLUMN ENCRYPTION KEY
  • global_streaming_hadr_rto_and_rpo_stat global_streaming_hadr_rto_and_rpo_stat视图显示流式容灾的主数据库实例和备数据库实例日志流控信息(只可在主数据库实例的主DN使用,备DN以及备数据库实例上均不可获取到统计信息),如表1所示。 表1 global_streaming_hadr_rto_and_rpo_stat参数说明 参数 类型 描述 hadr_sender_node_name text 节点的名称,包含主数据库实例和备数据库实例首备。 hadr_receiver_node_name text 备数据库实例首备名称。 current_rto int 流控的信息,当前主备数据库实例的日志rto时间(单位:秒)。-1标识灾备集群多数派异常。 target_rto int 流控的信息,目标主备数据库实例间的rto时间(单位:秒)。 current_rpo int 流控的信息,当前主备数据库实例的日志rpo时间(单位:秒)。-1标识灾备集群多数派异常。 target_rpo int 流控的信息,目标主备数据库实例间的rpo时间(单位:秒)。 rto_sleep_time int RTO流控信息,为了达到目标rto,预期主机walsender所需要的睡眠时间(单位:微秒)。 rpo_sleep_time int RPO流控信息,为了达到目标rpo,预期主机xlogInsert所需要的睡眠时间(单位:微秒)。 父主题: RTO & RPO
  • Hint使用准备 为了方便了解hint的使用场景,手册提供了所有查询改写hint的应用示例(请参见Hint使用说明),相关建表语句和环境准备如下: 会话设置: SET client_encoding = 'UTF8'; CREATE SCHEMA rewrite_rule_test; SET current_schema = rewrite_rule_test; SET enable_codegen= off; 建表语句: CREATE TABLE rewrite_rule_hint_t1 (a INT, b INT, c INT, d INT); CREATE TABLE rewrite_rule_hint_t2 (a INT, b INT, c INT, d INT); CREATE TABLE rewrite_rule_hint_t3 (a INT, b INT, c INT, d INT); CREATE TABLE rewrite_rule_hint_t4 (a INT NOT NULL, b INT, c INT, d INT); CREATE TABLE rewrite_rule_hint_t5 (slot INTEGER NOT NULL,cid BIGINT NOT NULL,name CHARACTER VARYING NOT NULL) WITH (ORIENTATION = row); INSERT INTO rewrite_rule_hint_t5 (slot, cid, name) values(generate_series(1, 10),generate_series(1, 10),'records.storage.state'); ANALYZE rewrite_rule_hint_t5; CREATE TABLE rewrite_rule_hint_customer ( c_custkey INTEGER NOT NULL, c_name CHARACTER VARYING(25) NOT NULL, c_address CHARACTER VARYING(40) NOT NULL, c_nationkey INTEGER NOT NULL, c_phone CHARACTER(15) NOT NULL, c_acctbal NUMERIC(15, 2) NOT NULL, c_mktsegment CHARACTER(10) NOT NULL, c_comment CHARACTER VARYING(117) NOT NULL ); CREATE TABLE rewrite_rule_hint_orders ( o_orderkey INTEGER NOT NULL, o_custkey INTEGER NOT NULL, o_orderstatus CHARACTER(1) NOT NULL, o_totalprice NUMERIC(15, 2) NOT NULL, o_orderdate DATE NOT NULL, o_orderpriority CHARACTER(15) NOT NULL, o_clerk CHARACTER(15) NOT NULL, o_shippriority INTEGER NOT NULL, o_comment CHARACTER VARYING(79) NOT NULL );
  • 示例 创建一级分区表,并使用子查询数据填充分区表。 -- 创建一个源表t1,并插入3条数据。 gaussdb=# CREATE TABLE t1(a int, b int) DISTRIBUTE BY HASH(a); gaussdb=# INSERT INTO t1 VALUES(8, 2); gaussdb=# INSERT INTO t1 VALUES(18, 3); gaussdb=# INSERT INTO t1 VALUES(28, 4); -- 使用CREATE TABLE PARTITION AS创建一级分区表,并使用子查询数据填充分区表 gaussdb=# CREATE TABLE t1_part_dup DISTRIBUTE BY HASH(a) PARTITION BY RANGE(a) ( PARTITION p1 VALUES LESS THAN(10), PARTITION p2 VALUES LESS THAN(20), PARTITION p3 VALUES LESS THAN(MAXVALUE) ) AS SELECT * FROM t1; gaussdb=# \d+ t1_part_dup; Table "create_table_as_partition_by.t1_part_dup" Column | Type | Modifiers | Storage | Stats target | Description --------+---------+-----------+---------+--------------+------------- a | integer | | plain | | b | integer | | plain | | Partition By RANGE(a) Number of partitions: 3 (View pg_partition to check each partition range.) Has OIDs: no Distribute By: HASH(a) Location Nodes: ALL DATANODES Options: orientation=row, compression=no gaussdb=# SELECT a, b FROM t1_part_dup PARTITION(p1) ORDER BY a; a | b ---+--- 8 | 2 (1 row) gaussdb=# SELECT a, b FROM t1_part_dup PARTITION(p2) ORDER BY a; a | b ----+--- 18 | 3 (1 row) gaussdb=# SELECT a, b FROM t1_part_dup PARTITION(p3) ORDER BY a; a | b ----+--- 28 | 4 (1 row) gaussdb=# DROP TABLE t1, t1_part_dup;
共100000条