云服务器内容精选
-
set_config(setting_name, new_value, is_local) 描述:设置参数并返回新值。 返回值类型:text 备注:set_config将参数setting_name设置为new_value,如果is_local为true,则新值将只应用于当前事务。如果希望新值应用于当前会话,可以使用false,和SQL语句SET是等效的。比如: 1 2 3 4 5 6 SELECT set_config('log_statement_stats', 'off', false); set_config ------------ off (1 row)
-
current_setting(setting_name) 描述:当前的设置值。 返回值类型:text 备注:current_setting用于以查询形式获取setting_name的当前值。和SQL语句SHOW是等效的。比如: 1 2 3 4 5 6 SELECT current_setting('datestyle'); current_setting ----------------- ISO, MDY (1 row)
-
SQL限流函数 gs_add_workload_rule(rule_type, rule_name, databases, start_time, end_time, max_workload, option_val) 描述:创建一条SQL限流规则。需要具有sysadmin权限的用户才可执行。只支持在CN节点上执行。 参数:参数介绍请参见表1。 返回值类型:int8 表1 gs_add_workload_rule参数说明 参数名称 类型 描述 取值范围 rule_type text 限流规则类型,不区分大小写。 “sqlid”:根据Unique SQL ID进行限流; “select”、“insert”、“update”、“delete”、“merge”:根据查询类型和关键字进行限流; “resource”:根据系统资源利用率进行实例级别的限流。 rule_name name 限流规则名称,用于检索限流规则。 任意字符串,可以为NULL。 databases name[] 限流规则生效的数据库名称数组,区分大小写。 数据库名列表,必须为已创建的数据库名。可以为NULL,表示所有数据库生效。 目前只有指定rule_type为查询类型时,数据库列表才生效,因为Unique SQL ID本身是与库进行绑定的,其只属于某个库;而根据资源利用率的限流规则是对实例生效的,即对所有库生效。 start_time timestamptz 限流规则生效的开始时间。 可以为NULL,表示从当前时间开始生效。 end_time timestamptz 限流规则生效的结束时间。 可以为NULL,表示规则一直生效。 max_workload int8 限流规则设置的最大并发数。 - option_val text[] 限流规则的补充信息。 与rule_type匹配,具体匹配关系如下: “sqlid”:要限流的Unique SQL ID,以及慢SQL管控规则,格式为'{id=1234, time_limit=100, max_execute_time=500, max_iops=1}',其中id值为Unique SQL ID,为必选项,可通过dbe_perf.statement或者pg_stat_activity视图获取。其他选项非必选,其含义参考慢SQL管控规则的Hint; “select”、“insert”、“update”、“delete”、“merge” :要限流的关键字序列,不区分大小写,可以为NULL; “resource” :要限流的资源阈值,形式为'{cpu-80, memory-70}'。当前cpu和memory无论设置为多少,都当成"0"处理。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 gaussdb=# select gs_add_workload_rule('sqlid', 'rule for one query', '{}', now(), NULL, 20, '{id=32413214}'); gs_add_workload_rule ---------------------- 1 (1 row) gaussdb=# create database db1; gaussdb=# create database db2; gaussdb=# select gs_add_workload_rule('select', 'rule for select', '{db1, db2}', NULL, NULL, 100, '{tb1, tb2}'); gs_add_workload_rule ---------------------- 2 (1 row) gaussdb=# select gs_add_workload_rule('resource', 'rule for resource', '{}', NULL, NULL, 20, '{cpu-80}'); gs_add_workload_rule ---------------------- 3 (1 row) gaussdb=# drop database db1; DROP DATABASE gaussdb=# drop database db2; DROP DATABASE gs_update_workload_rule(rule_id, rule_name, databases, start_time, end_time, max_workload, option_val) 描述:更新一条SQL限流规则,需要重新设置全部参数,不支持只指定部分参数。需要具有sysadmin权限的用户才可执行。只支持在CN节点上执行。 参数:参数介绍请参见表2。 返回值类型:boolean 表2 gs_update_workload_rule参数说明 参数名称 类型 描述 取值范围 rule_id int8 要更新的限流规则ID。 - rule_name name 限流规则名称,用于检索限流规则。 任意字符串,可以为NULL。 databases name[] 限流规则生效的数据库名称数组,区分大小写。 数据库名列表,必须为已创建的数据库名。可以为NULL,表示所有数据库生效。 目前只有指定rule_type为查询类型时,数据库列表才生效,因为Unique SQL ID本身是与库进行绑定的,其只属于某个库;而根据资源利用率的限流规则是对实例生效的,即对所有库生效。 start_time timestamptz 限流规则生效的开始时间。 可以为NULL,表示从当前时间开始生效。 end_time timestamptz 限流规则生效的结束时间。 可以为NULL,表示规则一直生效。 max_workload int8 限流规则设置的最大并发数。 - option_val text[] 限流规则的补充信息。 与rule_type匹配,具体匹配关系如下: “sqlid”:要限流的Unique SQL ID,以及慢SQL管控规则,格式为'{id=1234, time_limit=100, max_execute_time=500, max_iops=1}',其中id值为Unique SQL ID,为必选项,可通过dbe_perf.statement或者pg_stat_activity视图获取。其他选项非必选,其含义参考慢SQL管控规则的Hint; “select”、“insert”、“update”、“delete”、“merge”:要限流的关键字序列,不区分大小写,可以为NULL; “resource”:要限流的资源阈值,形式为'{cpu-80, memory-70}',表示触发实例级别限流的操作系统资源阈值,可以为NULL,表示不管资源利用率直接进行限流。 示例: 1 2 3 4 5 6 7 8 gaussdb=# create database db1; gaussdb=# select gs_update_workload_rule(2, 'rule for select 2', '{db1}', now(), NULL, 50, '{tb1}'); gs_update_workload_rule ------------------------- t (1 row) gaussdb=# drop database db1; DROP DATABASE gs_delete_workload_rule(rule_id) 描述:删除一条SQL限流规则。需要具有sysadmin权限的用户才可执行。只支持在CN节点上执行。 参数:rule_id,要更新的限流规则ID,类型为int8 返回值类型:boolean 示例: 1 2 3 4 5 gaussdb=# select gs_delete_workload_rule(3); gs_delete_workload_rule ------------------------- t (1 row) gs_get_workload_rule_stat(rule_id) 描述:查询SQL限流规则拦截SQL的次数。需要具有sysadmin权限的用户才可执行。只支持在CN节点上执行。 参数:rule_id,要查询的限流规则ID,类型为int8。可以指定rule_id为-1,此时表示查询所有的SQL限流规则。 返回值类型: 名称 类型 描述 rule_id int8 SQL限流规则的ID。 validate_count int8 SQL限流规则拦截SQL的次数。 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# select * from gs_get_workload_rule_stat(1); rule_id | validate_count ---------+---------------- 1 | 0 (1 row) gaussdb=# select * from gs_get_workload_rule_stat(-1); rule_id | validate_count ---------+---------------- 1 | 0 2 | 0 (2 rows) 父主题: 系统管理函数
-
SQL限流函数 gs_add_workload_rule(rule_type, rule_name, databases, start_time, end_time, max_workload, option_val) 描述:创建一条SQL限流规则,需要具有sysadmin权限的用户才可执行。 参数:参数介绍请参见表1。 返回值类型:int8 表1 gs_add_workload_rule参数说明 参数名称 类型 描述 取值范围 rule_type text 限流规则类型,不区分大小写。 “sqlid”:根据Unique SQL ID进行限流; “select”、“insert”、“update”、“delete”、“merge”:根据查询类型和关键字进行限流; “resource”:根据系统资源利用率进行实例级别的限流。 rule_name name 限流规则名称,用于检索限流规则。 任意字符串,可以为NULL。 databases name[] 限流规则生效的数据库名称数组,区分大小写。 数据库名列表,必须为已创建的数据库名。可以为NULL,表示所有数据库生效。 目前只有指定rule_type为查询类型时,数据库列表才生效,因为Unique SQL ID本身是与库进行绑定的,其只属于某个库;而根据资源利用率的限流规则是对实例生效的,即对所有库生效。 start_time timestamptz 限流规则生效的开始时间。 可以为NULL,表示从当前时间开始生效。 end_time timestamptz 限流规则生效的结束时间。 可以为NULL,表示规则一直生效。 max_workload int8 限流规则设置的最大并发数。 - option_val text[] 限流规则的补充信息。 与rule_type匹配,具体匹配关系如下: “sqlid”:要限流的Unique SQL ID,以及慢SQL管控规则,格式为'{id=1234, time_limit=100, max_execute_time=500, max_iops=1}',其中id为Unique SQL ID,为必选项,可通过dbe_perf.statement或者pg_stat_activity视图获取。其他选项非必选,其含义参考慢SQL管控规则的Hint; “select”、“insert”、“update”、“delete”、“merge”: 要限流的关键字序列,不区分大小写,可以为NULL; “resource”: 要限流的资源阈值,形式为'{cpu-80, memory-70}',表示触发实例级别限流的操作系统资源阈值,可以为NULL,表示不管资源利用率直接进行限流。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 gaussdb=# select gs_add_workload_rule('sqlid', 'rule for one query', '', now(), '', 20, '{id=32413214}'); gs_add_workload_rule ---------------------- 1 (1 row) gaussdb=# create database db1; gaussdb=# create database db2; gaussdb=# select gs_add_workload_rule('select', 'rule for select', '{db1, db2}', '', '', 100, '{tb1, tb2}'); gs_add_workload_rule ---------------------- 2 (1 row) gaussdb=# select gs_add_workload_rule('resource', 'rule for resource', '{}', '', '', 20, '{cpu-80}'); gs_add_workload_rule ---------------------- 3 (1 row) gaussdb=# drop database db1; DROP DATABASE gaussdb=# drop database db2; DROP DATABASE gs_update_workload_rule(rule_id, rule_name, databases, start_time, end_time, max_workload, option_val) 描述:更新一条SQL限流规则,需要重新设置全部参数,不支持只指定部分参数。需要具有sysadmin权限的用户才可执行。 参数:参数介绍请参见表2 返回值类型:boolean 表2 gs_update_workload_rule参数说明 参数名称 类型 描述 取值范围 rule_id int8 要更新的限流规则ID。 - rule_name name 限流规则名称,用于检索限流规则。 任意字符串,可以为NULL。 databases name[] 限流规则生效的数据库名称数组,区分大小写。 数据库名列表,必须为已创建的数据库名。可以为NULL,表示所有数据库生效。 目前只有指定rule_type为查询类型时,数据库列表才生效,因为Unique SQL ID本身是与库进行绑定的,其只属于某个库;而根据资源利用率的限流规则是对实例生效的,即对所有库生效。 start_time timestamptz 限流规则生效的开始时间。 可以为NULL,表示从当前时间开始生效。 end_time timestamptz 限流规则生效的结束时间。 可以为NULL,表示规则一直生效。 max_workload int8 限流规则设置的最大并发数。 - option_val text[] 限流规则的补充信息。 与rule_type匹配,具体匹配关系如下: “sqlid”:要限流的Unique SQL ID,以及慢SQL管控规则,格式为'{id=1234, time_limit=100, max_execute_time=500, max_iops=1}',其中id为Unique SQL ID,为必选项,可通过dbe_perf.statement或者pg_stat_activity视图获取。其他选项非必选,其含义参考慢SQL管控规则的Hint; “select”、“insert”、“update”、“delete”、“merge” :要限流的关键字序列,不区分大小写,可以为NULL; “resource”:要限流的资源阈值,形式为'{cpu-80, memory-70}',表示触发实例级别限流的操作系统资源阈值,可以为NULL,表示不管资源利用率直接进行限流。 示例: 1 2 3 4 5 6 7 8 gaussdb=# create database db1; gaussdb=# select gs_update_workload_rule(2, 'rule for select 2', '{db1}', now(), '', 50, '{tb1}'); gs_update_workload_rule ------------------------- t (1 row) gaussdb=# drop database db1; DROP DATABASE gs_delete_workload_rule(rule_id int8) 描述:删除一条SQL限流规则,需要具有sysadmin权限的用户才可执行。 参数:rule_id,要更新的限流规则ID,类型为int8。 返回值类型:boolean 示例: 1 2 3 4 5 gaussdb=# select gs_delete_workload_rule(3); gs_delete_workload_rule ------------------------- t (1 row) gs_get_workload_rule_stat(rule_id) 描述:查询SQL限流规则拦截SQL的次数,需要具有sysadmin权限的用户才可执行。 参数:rule_id,要查询的限流规则ID,类型为int8。可以指定rule_id为-1,此时表示查询所有的SQL限流规则。 返回值类型: 名称 类型 描述 rule_id int8 SQL限流规则的ID。 validate_count int8 SQL限流规则拦截SQL的次数。 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# select * from gs_get_workload_rule_stat(1); rule_id | validate_count ---------+---------------- 1 | 0 (1 row) gaussdb=# select * from gs_get_workload_rule_stat(-1); rule_id | validate_count ---------+---------------- 1 | 0 2 | 0 (2 rows) 父主题: 系统管理函数
-
数据库对象位置函数 pg_relation_filenode(relation regclass) 描述:指定关系的文件节点数。 返回值类型:oid 备注:pg_relation_filenode接受一个表、索引、序列或压缩表的OID或者名称,并且返回当前分配给它的“filenode”数。文件节点是关系使用的文件名称的基本组件。对大多数表来说,结果和pg_class.relfilenode相同,但对确定的系统目录来说,relfilenode为0而且这个函数必须用来获取正确的值。如果传递一个没有存储的关系,比如一个视图,那么这个函数返回NULL。 pg_relation_filepath(relation regclass) 描述:指定关系的文件路径名。只能用于非段页式关系。 返回值类型:text 备注:pg_relation_filepath类似于pg_relation_filenode,但是它返回关系的整个文件路径名(相对于数据库的数据目录PGDATA)。 段页式关系建议使用段页式相关函数或视图,例如: SELECT e.*, f.file_name FROM gs_seg_extents e, gs_seg_datafiles f WHERE e.tablespace_name = f.tablespace_name ADN e.bucketnode = f.bucketnode ADN e.file_id = f.file_id ADN e.forknum = f.forknum; pg_filenode_relation(tablespace oid, filenode oid) 描述:获取对应的tablespace和relfilenode所对应的表名。 返回类型:regclass pg_partition_filenode(partition_oid) 描述:获取到指定分区表的oid锁对应的filenode。 返回类型:oid pg_partition_filepath(partition_oid) 描述:指定分区的文件路径名。只能用于非段页式关系。 返回值类型:text 备注:段页式关系建议使用段页式相关函数或视图,例如: SELECT e.*, f.file_name FROM gs_seg_extents e, gs_seg_datafiles f WHERE e.tablespace_name = f.tablespace_name ADN e.bucketnode = f.bucketnode ADN e.file_id = f.file_id ADN e.forknum = f.forknum;
-
数据库对象尺寸函数 数据库对象尺寸函数计算数据库对象使用的实际磁盘空间。 pg_column_size(any) 描述:存储一个指定的数值需要的字节数(可能压缩过)。 返回值类型:int 备注:pg_column_size显示用于存储某个独立数据值的空间。 1 2 3 4 5 gaussdb=# SELECT pg_column_size(1); pg_column_size ---------------- 4 (1 row) pg_database_size(oid) 描述:指定OID代表的数据库使用的磁盘空间。 返回值类型:bigint pg_database_size(name) 描述:指定名称的数据库使用的磁盘空间。 返回值类型:bigint 备注:pg_database_size接受一个数据库的OID或者名称,然后返回该对象使用的全部磁盘空间。 示例: 1 2 3 4 5 gaussdb=# SELECT pg_database_size('testdb'); pg_database_size ------------------ 51590112 (1 row) 备注:pg_database_size(oid/name)对象函数查询耗时与该oid/name所对应库中的对象文件数目相关,基本呈线性关系,如需进行耗时评估,可参考以下步骤: 1)由于耗时与软硬件环境有关,因此需要以某个库(注意所选择库的对象文件数目不宜过多)测试结果为基准,根据查询耗时和库中对象文件数目计算出单对象文件所需耗时database_size_t; 2)使用select oid,* from pg_database where datname = 'database';查询得到需要查询库的oid,在表空间base和pg_tblspc目录下统计该oid目录下的所有对象文件数目database_obj_num,如该oid目录中包含目录,则需要进入查看对象文件数目,依次类推;查询目录下文件数目使用ls | wc -l; 3)根据基准测试结果中单文件数目耗时database_size_t和database下所有对象文件数目database_obj_num计算预估总耗时,总耗时=database_size_t * database_obj_num,如果时延太长需考虑调整执行超时阈值,避免出现不必要的告警。 pg_relation_size(oid) 描述:指定OID代表的表或者索引所使用的磁盘空间。 返回值类型:bigint get_db_source_datasize() 描述:估算当前数据库非压缩态的数据总容量。 返回值类型:bigint 备注:调用该函数前需要做analyze。 示例: 1 2 3 4 5 6 7 gaussdb=# analyze; ANALYZE gaussdb=# SELECT get_db_source_datasize(); get_db_source_datasize ------------------------ 35384925667 (1 row) pg_relation_size(text) 描述:指定名称的表或者索引使用的磁盘空间。表名称可以用模式名修饰。 返回值类型:bigint pg_relation_size(relation regclass, fork text) 描述:指定表或索引的指定分叉树('main','fsm'或'vm')使用的磁盘空间。 返回值类型:bigint pg_relation_size(relation regclass) 描述:pg_relation_size(..., 'main')的简写。 返回值类型:bigint 备注:pg_relation_size接受一个表、索引、压缩表的OID或者名称,然后返回它们的字节大小。 pg_partition_size(oid, oid) 描述:指定OID代表的分区使用的磁盘空间。其中,第一个oid为表的OID,第二个oid为分区的OID。 返回值类型:bigint pg_partition_size(text, text) 描述:指定名称的分区使用的磁盘空间。其中,第一个text为表名,第二个text为分区名。 返回值类型:bigint pg_partition_indexes_size(oid, oid) 描述:指定OID代表的分区的索引使用的磁盘空间。其中,第一个oid为表的OID,第二个oid为分区的OID。 返回值类型:bigint pg_partition_indexes_size(text, text) 描述:指定名称的分区的索引使用的磁盘空间。其中,第一个text为表名,第二个text为分区名。 返回值类型:bigint pg_indexes_size(regclass) 描述:附加到指定表的索引使用的总磁盘空间。 返回值类型:bigint pg_size_pretty(bigint) 描述:将以64位整数表示的字节值转换为具有单位的易读格式。 返回值类型:text pg_size_pretty(numeric) 描述:将以数值表示的字节值转换为具有单位的易读格式。 返回值类型:text 备注:pg_size_pretty用于把其他函数的结果格式化成一种易读的格式,可以根据情况使用kB 、MB 、GB 、TB。 pg_table_size(regclass) 描述:指定的表使用的磁盘空间,不计索引(但是包含TOAST,自由空间映射和可见性映射)。 返回值类型:bigint pg_tablespace_size(oid) 描述:指定OID代表的表空间使用的磁盘空间。 返回值类型:bigint pg_tablespace_size(name) 描述:指定名称的表空间使用的磁盘空间。 返回值类型:bigint 备注: pg_tablespace_size接受一个数据库的OID或者名称,然后返回该对象使用的全部磁盘空间。 pg_total_relation_size(oid) 描述:指定OID代表的表使用的磁盘空间,包括索引和压缩数据。 返回值类型:bigint pg_total_relation_size(regclass) 描述:指定的表使用的总磁盘空间,包括所有的索引和TOAST数据。 返回值类型:bigint pg_total_relation_size(text) 描述:指定名称的表所使用的全部磁盘空间,包括索引和压缩数据。表名称可以用模式名修饰。 返回值类型:bigint 备注:pg_total_relation_size接受一个表或者一个压缩表的OID或者名称,然后返回以字节计的数据和所有相关的索引和压缩表的尺寸。 datalength(any) 描述:计算一个指定的数据需要的字节数(不考虑数据的管理空间和数据压缩,数据类型转换等情况)。 返回值类型:int 备注:datalength用于计算某个独立数据值的空间。 示例: gaussdb=# SELECT datalength(1); datalength ------------ 4 (1 row) 目前支持的数据类型及计算方式见下表: 数据类型 存储空间 数值类型 整数类型 TINYINT 1 SMALLINT 2 INTEGER 4 BINARY_INTEGER 4 BIGINT 8 任意精度型 DECIMAL 每4位十进制数占两个字节,小数点前后数字分别计算。 NUMERIC 每4位十进制数占两个字节,小数点前后数字分别计算。 NUMBER 每4位十进制数占两个字节,小数点前后数字分别计算。 序列整型 SMALLSERIAL 2 SERIAL 4 BIGSERIAL 8 LARGESERIAL 每4位十进制数占两个字节,小数点前后数字分别计算。 浮点类型 FLOAT4 4 DOUBLE PRECISION 8 FLOAT8 8 BINARY_DOUBLE 8 FLOAT[(p)] 每4位十进制数占两个字节,小数点前后数字分别计算。 DEC[(p[,s])] 每4位十进制数占两个字节,小数点前后数字分别计算。 INTEGER[(p[,s])] 每4位十进制数占两个字节,小数点前后数字分别计算。 布尔类型 布尔类型 BOOLEAN 1 字符类型 字符类型 CHAR n CHAR(n) n CHARACTER(n) n NCHAR(n) n VARCHAR(n) n CHARACTER 字符实际字节数。 VARYING(n) 字符实际字节数。 VARCHAR2(n) 字符实际字节数。 NVARCHAR(n) 字符实际字节数。 NVARCHAR2(n) 字符实际字节数。 TEXT 字符实际字节数。 CLOB 字符实际字节数。 时间类型 时间类型 DATE 8 TIME 8 TIMEZ 12 TIMESTAMP 8 TIMESTAMPZ 8 SMALLDATETIME 8 INTERVAL DAY TO SECOND 16 INTERVAL 16 RELTIME 4 ABSTIME 4 TINTERVAL 12
-
数据库对象位置函数 pg_relation_filenode(relation regclass) 描述:指定关系的文件节点数。 返回值类型:oid 备注:pg_relation_filenode接受一个表、索引、序列或压缩表的OID或者名称,并且返回当前分配给它的“filenode”数。文件节点是关系使用的文件名称的基本组件。对大多数表来说,结果和pg_class.relfilenode相同,但对确定的系统目录来说, relfilenode为0而且这个函数必须用来获取正确的值。如果传递一个没有存储的关系,比如一个视图,那么这个函数返回NULL。 pg_relation_filepath(relation regclass) 描述:指定关系的文件路径名。只能用于非段页式关系。 返回值类型:text 备注:pg_relation_filepath类似于pg_relation_filenode,但是它返回关系的整个文件路径名(相对于数据库集群的数据目录PGDATA)。 段页式关系建议使用段页式相关函数或视图,例如: SELECT e.*, f.file_name FROM gs_seg_extents e, gs_seg_datafiles f WHERE e.tablespace_name = f.tablespace_name AND e.bucketnode = f.bucketnode ADN e.file_id = f.file_id ADN e.forknum = f.forknum; get_large_table_name(relfile_node text, threshold_size_gb int8) 描述:根据表的文件编码(relfile_node)查询对应的表大小(单位为GB)是否超过阈值(threshold_size_gb),如果超过则返回模式名和表名(形式为schemaname.tablename), 否则返回字符串'null'。 返回值类型:text pg_filenode_relation(tablespacename, relname) 描述:获取对应的tablespace和relfilenode所对应的表名。 返回类型:regclass pg_partition_filenode(partition_oid) 描述:获取到指定分区表的oid锁对应的filenode。 返回类型:oid pg_partition_filepath(partition_oid) 描述:指定分区的文件路径名。只能用于非段页式关系。 返回值类型:text 备注:段页式关系建议使用段页式相关函数或视图,例如: SELECT e.*, f.file_name FROM gs_seg_extents e, gs_seg_datafiles f WHERE e.tablespace_name = f.tablespace_name ADN e.bucketnode = f.bucketnode ADN e.file_id = f.file_id ADN e.forknum = f.forknum;
-
数据库对象尺寸函数 数据库对象尺寸函数计算数据库对象使用的实际磁盘空间。 pg_column_size(any) 描述:存储一个指定的数值需要的字节数(可能压缩过)。 返回值类型:int 备注:pg_column_size显示用于存储某个独立数据值的空间。 1 2 3 4 5 gaussdb=# SELECT pg_column_size(1); pg_column_size ---------------- 4 (1 row) pg_database_size(oid) 描述:指定OID代表的数据库使用的磁盘空间。 返回值类型:bigint pg_database_size(name) 描述:指定名称的数据库使用的磁盘空间。 返回值类型:bigint 备注:pg_database_size接受一个数据库的OID或者名称,然后返回该对象使用的全部磁盘空间。 示例: 1 2 3 4 5 gaussdb=# SELECT pg_database_size('testdb'); pg_database_size ------------------ 51590112 (1 row) 备注:pg_database_size(oid/name)对象函数查询耗时与该oid/name所对应库中的对象文件数目相关,基本呈线性关系,如需进行耗时评估,可参考以下步骤: 1)由于耗时与软硬件环境有关,因此需要以某个库(注意所选择库的对象文件数目不宜过多)测试结果为基准,根据查询耗时和库中对象文件数目计算出单对象文件所需耗时database_size_t; 2)使用select oid,* from pg_database where datname = 'database';查询得到需要查询库的oid,在表空间base和pg_tblspc目录下统计该oid目录下的所有对象文件数目database_obj_num,如该oid目录中包含目录,则需要进入查看对象文件数目,依次类推;查询目录下文件数目使用ls | wc -l; 3)根据基准测试结果中单文件数目耗时database_size_t和database下所有对象文件数目database_obj_num计算预估总耗时,总耗时=database_size_t * database_obj_num,如果时延太长需考虑调整执行超时阈值,避免出现不必要的告警。 4)以上步骤评估的是DN上获取数据库大小的耗时,在分布式下总耗时则取决于DN中对象文件数目最多或耗时最大的。 pg_relation_size(oid) 描述:指定OID代表的表或者索引所使用的磁盘空间。 返回值类型:bigint get_db_source_datasize() 描述:估算当前数据库非压缩态的数据总容量。 返回值类型:bigint 备注:调用该函数前需要做analyze。 示例: 1 2 3 4 5 6 7 gaussdb=# analyze; ANALYZE gaussdb=# SELECT get_db_source_datasize(); get_db_source_datasize ------------------------ 35384925667 (1 row) pg_relation_size(text) 描述:指定名称的表或者索引使用的磁盘空间。表名称可以用模式名修饰。 返回值类型:bigint pg_relation_size(relation regclass, fork text) 描述:指定表或索引的指定分叉树('main','fsm'或'vm')使用的磁盘空间。 返回值类型:bigint pg_relation_size(relation regclass) 描述:pg_relation_size(..., 'main')的简写。 返回值类型:bigint 备注:pg_relation_size接受一个表、索引、压缩表的OID或者名称,然后返回它们的字节大小。 pg_partition_size(oid, oid) 描述:指定OID代表的分区使用的磁盘空间。其中,第一个oid为表的OID,第二个oid为分区的OID。 返回值类型:bigint pg_partition_size(text, text) 描述:指定名称的分区使用的磁盘空间。其中,第一个text为表名,第二个text为分区名。 返回值类型:bigint pg_partition_indexes_size(oid, oid) 描述:指定OID代表的分区的索引使用的磁盘空间。其中,第一个oid为表的OID,第二个oid为分区的OID。 返回值类型:bigint pg_partition_indexes_size(text, text) 描述:指定名称的分区的索引使用的磁盘空间。其中,第一个text为表名,第二个text为分区名。 返回值类型:bigint pg_indexes_size(regclass) 描述:附加到指定表的索引使用的总磁盘空间。 返回值类型:bigint pg_size_pretty(bigint) 描述:将以64位整数表示的字节值转换为具有单位的易读格式。 返回值类型:text pg_size_pretty(numeric) 描述:将以数值表示的字节值转换为具有单位的易读格式。 返回值类型:text 备注:pg_size_pretty用于把其他函数的结果格式化成一种易读的格式,可以根据情况使用kB 、MB 、GB 、TB。 pg_table_size(regclass) 描述:指定的表使用的磁盘空间,不计索引(但是包含TOAST,自由空间映射和可见性映射)。 返回值类型:bigint pg_tablespace_size(oid) 描述:指定OID代表的表空间使用的磁盘空间。 返回值类型:bigint pg_tablespace_size(name) 描述:指定名称的表空间使用的磁盘空间。 返回值类型:bigint 备注: pg_tablespace_size接受一个数据库的OID或者名称,然后返回该对象使用的全部磁盘空间。 pg_total_relation_size(oid) 描述:指定OID代表的表使用的磁盘空间,包括索引和压缩数据。 返回值类型:bigint pg_total_relation_size(regclass) 描述:指定的表使用的总磁盘空间,包括所有的索引和TOAST数据。 返回值类型:bigint pg_total_relation_size(text) 描述:指定名称的表所使用的全部磁盘空间,包括索引和压缩数据。表名称可以用模式名修饰。 返回值类型:bigint 备注:pg_total_relation_size接受一个表或者一个压缩表的OID或者名称,然后返回以字节计的数据和所有相关的索引和压缩表的尺寸。 datalength(any) 描述:计算一个指定的数据需要的字节数(不考虑数据的管理空间和数据压缩,数据类型转换等情况)。 返回值类型:int 备注:datalength用于计算某个独立数据值的空间。 示例: gaussdb=# SELECT datalength(1); datalength ------------ 4 (1 row) 目前支持的数据类型及计算方式见下表: 数据类型 存储空间 数值类型 整数类型 TINYINT 1 SMALLINT 2 INTEGER 4 BINARY_INTEGER 4 BIGINT 8 任意精度型 DECIMAL 每4位十进制数占两个字节,小数点前后数字分别计算。 NUMERIC 每4位十进制数占两个字节,小数点前后数字分别计算。 NUMBER 每4位十进制数占两个字节,小数点前后数字分别计算。 序列整型 SMALLSERIAL 2 SERIAL 4 BIGSERIAL 8 浮点类型 FLOAT4 4 DOUBLE PRECISION 8 FLOAT8 8 BINARY_DOUBLE 8 FLOAT[(p)] 每4位十进制数占两个字节,小数点前后数字分别计算。 DEC[(p[,s])] 每4位十进制数占两个字节,小数点前后数字分别计算。 INTEGER[(p[,s])] 每4位十进制数占两个字节,小数点前后数字分别计算。 布尔类型 布尔类型 BOOLEAN 1 字符类型 字符类型 CHAR n CHAR(n) n CHARACTER(n) n NCHAR(n) n VARCHAR(n) n CHARACTER 字符实际字节数。 VARYING(n) 字符实际字节数。 VARCHAR2(n) 字符实际字节数。 NVARCHAR2(n) 字符实际字节数。 TEXT 字符实际字节数。 CLOB 字符实际字节数。 时间类型 时间类型 DATE 8 TIME 8 TIMEZ 12 TIMESTAMP 8 TIMESTAMPZ 8 SMALLDATETIME 8 INTERVAL DAY TO SECOND 16 INTERVAL 16 RELTIME 4 ABSTIME 4 TINTERVAL 12
-
前提条件 创建SFS Turbo文件系统前,确认已有可用的VPC。 如果无VPC,可参考《虚拟私有云用户指南》中的“创建虚拟私有云基本信息及默认子网”章节创建VPC。 创建SFS Turbo文件系统前,确认已有可用的E CS ,且ECS归属到已创建的VPC下。 如果无ECS,可参考《弹性云服务器快速入门》中的“购买弹性云服务器”章节购买ECS。 创建SFS Turbo文件系统,依赖的服务有:虚拟私有云 VPC、费用中心 BSS、专属存储服务 DSS和弹性云服务器 ECS。需要配置的角色/策略如下: IAM 用户设置了SFS Turbo FullAccess权限后,权限集中包含了VPC FullAccess,这是创建文件系统所需要的权限,用户不需额外添加VPC FullAccess 系统策略。 如果需要创建包年包月文件系统,需要设置BSS Administrator权限。 如果需要在专属项目下创建文件系统,需要设置DSS FullAccess 和 ECS FullAccess权限。
-
current_setting(setting_name) 描述:当前的设置值。 返回值类型:text 备注:current_setting用于以查询形式获取setting_name的当前值。和SQL语句SHOW是等效的。比如: 1 2 3 4 5 6 SELECT current_setting('datestyle'); current_setting ----------------- ISO, MDY (1 row)
-
read_global_var(global_setting_name) 描述:用于读取全局变量当前的设置值。 返回值类型:text 备注:read_global_var用于以查询形式获取global_setting_name的当前值。和SQL语句SHOW是等效的。 示例: 1 2 3 4 5 6 SET my.var = 1000; SELECT read_global_var('my.var'); read_global_var ----------------- 1000 (1 row)
-
set_config(setting_name, new_value, is_local) 描述:设置参数并返回新值。 返回值类型:text 备注:set_config将参数setting_name设置为new_value,如果is_local为true,则新值将只应用于当前事务。如果希望新值应用于当前会话,可以使用false,和SQL语句SET是等效的。比如: 1 2 3 4 5 6 SELECT set_config('log_statement_stats', 'off', false); set_config ------------ off (1 row) 如果GUC参数behavior_compat_options设置配置项为DISABLE_SET_GLOBAL_VAR_ON_DATANODE,则不可以通过该函数直接在DN上设置全局变量。
-
步骤3:添加ID生成器并发布 在“ID生成器定义”页面,选择“生成器配置”页签。 单击。 在弹出的“创建ID标识器”窗口中,填写表3信息。 表3 创建ID标识器参数表 参数 说明 生成器代码 ID生成器代码,系统自动生成取值。 生成器名称 ID生成器的名称,系统默认填充“生成器代码”取值。 生成器分类 ID生成器的分类,数据来源于生成器分类。 生成器标签 ID生成器的标签,数据来源于生成器标签。 单击“确定”。 将需要配置的构件从顶部的构件列表拖入中间的画布区域。如图4所示。 界面操作按钮说明如表4所示。 图4 自定义ID规则 表4 生成器配置操作按钮说明 按钮 说明 新建生成器。 重置会清空画布上的构件数据。 编辑生成器,单击“还原”可恢复编辑前的生成器的构件数据。 单击“复制”,自动生成生成器副本,内容相同。 编辑后的生成器的构件信息保存成功。 可直接将生成器配置数据生成二维码,以及提供打印服务。 编辑后的生成器的构件信息发布成功,生成器的状态变为“发布”。 “发布”状态的生成器不支持编辑操作。 选中画布中的某个构件,在弹出的“节点信息维护”窗口中编辑构件信息。 然后,逐一完成画布中各构件的配置信息。 各ID生成器需要配置的参数说明如表5所示。 表5 ID生成器定义基础数据(生成器配置) ID生成器 说明 车间编号 构件:固定字符 + 流水序列 固定字符:“固定值”为“SF” 流水序列:“目标长度”为“3” 线体编号 构件: 对象编码 + 流水序列 对象编码:“业务属性”为“线体种类”(数据来源于业务对象码) 流水序列:“目标长度”为“3” 工位编号 构件: 对象编码 + 固定字符 + 流水序列 对象编码:“业务属性”为“工序编码”(数据来源于业务对象码) 固定字符:“固定值”为“-” 流水序列:“目标长度”为“3” LOT条码 构件:固定字符 + 对象编码 + 流水序列 固定字符:“固定值”为“LOT” 对象编码:“业务属性”为“工单号”(数据来源于业务对象码) 流水序列:“目标长度”为“6” 工单号 构件:固定字符 + 日期代码 + 流水序列 固定字符:“固定值”为“WOP” 日期代码:“时间代码属性”为“时间年月日yyyyMMdd” 流水序列:“目标长度”为“6” SN条码 构件:固定字符 + 日期代码 + 流水序列 固定字符:“固定值”为“SN” 日期代码:“时间代码属性”为“时间年月yyyyMM” 流水序列:“目标长度”为“10” 箱子条码 构件:固定字符 + 对象编码 + 日期代码 + 流水序列 固定字符:“固定值”为“LPN” 对象编码:“业务属性”为“产品编码”(数据来源于业务对象码) 日期代码:“时间代码属性”为“时间年月yyyyMM” 流水序列:“目标长度”为“4” ID生成器配置完成后,在顶部的“操作”栏当中单击“发布”。 “发布”状态的ID生成器才能被其他功能模块引用。
-
步骤2:添加业务对象属性 在“ID生成器定义”页面,选择“业务对象码”页签。 选中业务对象记录后,单击“操作”列的“添加”。 在弹出的“添加业务对象属性”窗口中,参考表2配置各业务对象属性信息。 图3 添加业务对象属性 表2 ID生成器定义基础数据(业务对象码-对象属性) 业务对象 业务对象类属性代码 业务对象类属性名称 数据类型 默认值 业务对象类属性描述 MDM lineCatalog 线体种类 varchar 001 线体编号的线体种类对象 MDM workstepCode 工序编码 varchar Line 工位编号的工序编码对象 MDM wo_order 工单号 varchar WOP240101000001 LOT条码的工单号对象 MDM part_no 产品编码 varchar Product12345 箱子条码的产品编码对象 单击“保存”,业务对象属性添加完成。
-
步骤3:新增工位 如果工位配置了扩展属性,则在添加工位数据时,除了填写表3中的参数,还需要填写扩展属性参数。 在左侧工厂结构树中,选中线体节点,单击其右侧的,再在弹出的操作列表中单击“添加”,或者单击“新增工位”。 在弹出的“创建工位”窗口中,填写表3信息。 图4 创建工位 表3 创建工位参数表 参数 说明 设备名称 工位对应的设备名称,数据来源于设备规格定义。 工位分类 工位的分类。 工序代码 工位的工序代码,数据来源于工序定义。 工位编号 工位编号自动生成。生成规则:工序代码 + "-" + 三位流水,例如ce10-001。 工位名称 工位的名称。 工位描述 工位的描述。 站型代码 工位的站型代码。 站型描述 工位的站型描述。 是否生效 标识是否生效。有效的工位数据才能被其他功能模块引用。 是否计入工序产量 标识是否计入工序产量。 范围 工位的范围。 ESD等级 工位的ESD等级。 洁净度 工位的洁净度。 铅属性类别 工位的铅属性类别。 进出站采集 工位的进出站采集方式。 工序转移模式 工位的工序转移模式。 自动化程度 工位的自动化程度。 单击“保存后关闭”,工位添加完成。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格