多租数据库函数
- 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)
入参说明:
名称
类型
输入/输出
取值范围
描述
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)