华为云用户手册

  • table_distribution() 描述:查看当前库中所有表在各节点的存储空间分布情况。 返回值类型:record 使用本函数涉及全库表信息查询,需要具备管理员权限或预置角色gs_role_read_all_stats权限。 当前基于table_distribution()函数, GaussDB (DWS)提供视图PGXC_GET_TABLE_SKEWNESS进行数据倾斜查询,建议在数据库中表数量(小于10000)较少的场景直接使用。 示例: 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 SELECT * FROM table_distribution(); schemaname | tablename | nodename | dnsize--------------------+-------------------------+--------------+-------- scheduler | pg_task | dn_6005_6006 | 8192 public | ocr_group | dn_6005_6006 | 8192 public | ocr_item | dn_6005_6006 | 8192 sea | ocr_group | dn_6005_6006 | 16384 sea | ocr_item | dn_6005_6006 | 16384 public | customer_t1 | dn_6005_6006 | 16384 dbms_om | gs_wlm_session_info | dn_6005_6006 | 8192 dbms_om | gs_wlm_operator_info | dn_6005_6006 | 8192 dbms_om | gs_wlm_ec_operator_info | dn_6005_6006 | 8192 public | pgxc_copy_error_log | dn_6005_6006 | 8192 information_schema | sql_features | dn_6005_6006 | 98304 information_schema | sql_implementation_info | dn_6005_6006 | 49152 information_schema | sql_languages | dn_6005_6006 | 49152 information_schema | sql_packages | dn_6005_6006 | 49152 information_schema | sql_parts | dn_6005_6006 | 49152 information_schema | sql_sizing | dn_6005_6006 | 49152 information_schema | sql_sizing_profiles | dn_6005_6006 | 8192 scheduler | pg_task | dn_6003_6004 | 8192 public | ocr_group | dn_6003_6004 | 8192 public | ocr_item | dn_6003_6004 | 16384 sea | ocr_group | dn_6003_6004 | 8192 sea | ocr_item | dn_6003_6004 | 16384 public | customer_t1 | dn_6003_6004 | 16384 dbms_om | gs_wlm_session_info | dn_6003_6004 | 8192 dbms_om | gs_wlm_operator_info | dn_6003_6004 | 8192 dbms_om | gs_wlm_ec_operator_info | dn_6003_6004 | 8192 public | pgxc_copy_error_log | dn_6003_6004 | 8192 information_schema | sql_features | dn_6003_6004 | 98304 information_schema | sql_implementation_info | dn_6003_6004 | 49152 information_schema | sql_languages | dn_6003_6004 | 49152 information_schema | sql_packages | dn_6003_6004 | 49152 information_schema | sql_parts | dn_6003_6004 | 49152 information_schema | sql_sizing | dn_6003_6004 | 49152 information_schema | sql_sizing_profiles | dn_6003_6004 | 8192 scheduler | pg_task | dn_6001_6002 | 8192 public | ocr_group | dn_6001_6002 | 16384 public | ocr_item | dn_6001_6002 | 8192 sea | ocr_group | dn_6001_6002 | 8192 sea | ocr_item | dn_6001_6002 | 16384 public | customer_t1 | dn_6001_6002 | 16384 dbms_om | gs_wlm_session_info | dn_6001_6002 | 8192 dbms_om | gs_wlm_operator_info | dn_6001_6002 | 8192 dbms_om | gs_wlm_ec_operator_info | dn_6001_6002 | 8192 public | pgxc_copy_error_log | dn_6001_6002 | 8192 information_schema | sql_features | dn_6001_6002 | 98304 information_schema | sql_implementation_info | dn_6001_6002 | 49152 information_schema | sql_languages | dn_6001_6002 | 49152 information_schema | sql_packages | dn_6001_6002 | 49152 information_schema | sql_parts | dn_6001_6002 | 49152 information_schema | sql_sizing | dn_6001_6002 | 49152 information_schema | sql_sizing_profiles | dn_6001_6002 | 8192(51 rows)
  • table_data_skewness(data_row record, locatorType "char") 描述:计算指定表中列拼接出的record,对应的桶分布索引。 参数:data_row表示指定表中列拼接出的record,locatorType表示分布规则,当前建议指定'H',按hash分布计算。 返回值类型:smallint 示例: 计算tx表中a列拼接的record,按照hash分布规则对应的桶分布索引。 123456789 SELECT a, table_data_skewness(row(a), 'H') FROM tx; a | table_data_skewness ---+--------------------- 3 | 0 6 | 2 7 | 2 4 | 1 5 | 1(5 rows)
  • table_distribution(schemaname text, tablename text) 描述:查看指定表在各个节点上占用的存储空间。 参数:表示待查询表的模式名和表名,均为text类型。 返回值类型:record 使用本函数查询指定表存储分布信息,需要具备指定表的SELECT权限。 table_distribution性能比table_skewness更优,尤其是在大集群大数据量场景下,请优先考虑使用table_distribution函数。 当使用table_distribution并希望直观的看到空间占比时,可使用dnsize/(sum(dnsize) over ())的方式查看出具体的占比情况。
  • pg_options_to_table(reloptions) 描述:获取存储选项名称/值对的集合。 返回类型:setof record 备注:pg_options_to_table当通过pg_class.reloptions或pg_attribute.attoptions时返回存储选项名字/值对(option_name/option_value)的集合。 示例: 1234567 CREATE TABLE customer_test( state_ID CHAR(2), state_NAME VARCHAR2(40), area_ID NUMBER)WITH (ORIENTATION = COLUMN,COMPRESSION=middle); 123456789 SELECT pg_options_to_table(reloptions) FROM pg_class WHERE relname='customer_test';pg_options_to_table---------------------- (orientation,column) (compression,middle) (bucketnums,16384) (colversion,2.0) (enable_delta,false)(5 rows)
  • pg_get_indexdef(index_oid) 描述:获取索引的CREATE INDEX命令。 返回类型:text index_oid为索引的OID,可以通过PG_STATIO_ALL_INDEXES系统视图查询。 示例:查询索引ds_ship_mode_t1_index1的OID及其创建命令。 1 2 3 4 5 6 7 8 910 SELECT indexrelid FROM PG_STATIO_ALL_INDEXES WHERE indexrelname = 'ds_ship_mode_t1_index1'; indexrelid------------ 136035(1 row)SELECT * FROM pg_get_indexdef(136035); pg_get_indexdef--------------------------------------------------------------------------------------------------------------- CREATE INDEX ds_ship_mode_t1_index1 ON tpcds.ship_mode_t1 USING psort (sm_ship_mode_sk) TABLESPACE pg_default(1 row)
  • pg_get_viewdef(viewname text [, pretty bool [, fullflag bool]]) 描述:为视图获取底层的SELECT命令。 返回类型:text 备注: pg_get_viewdef重构定义视图的SELECT查询。pretty bool参数为true时,显示格式“适合打印”,且该格式易读。pretty bool参数缺省值为false,显示格式不易读。如果用于转储,那么尽可能使用缺省格式。pretty bool参数只对有效视图生效。 fullflag bool参数为true时,显示视图的完整定义。其缺省值为false。
  • pg_typeof(any) 描述:获取任何值的数据类型。 返回类型:regtype 备注: pg_typeof返回传递给他的值的数据类型OID。这可能有助于故障排除或动态构造SQL查询。声明此函数返回regtype,这是一个OID别名类型(请参考对象标识符类型);这意味着它是一个为了比较而显示类型名字的OID。 示例: 1 2 3 4 5 6 7 8 91011 SELECT pg_typeof(33); pg_typeof ----------- integer(1 row)SELECT typlen FROM pg_type WHERE oid = pg_typeof(33); typlen -------- 4(1 row)
  • pg_get_indexdef(index_oid, column_no, pretty_bool) 描述:获取索引的CREATE INDEX命令,或者如果column_no不为零,则只获取一个索引字段的定义。 返回类型:text 1 2 3 4 5 6 7 8 910 SELECT * FROM pg_get_indexdef(136035,0,false); pg_get_indexdef--------------------------------------------------------------------------------------------------------------- CREATE INDEX ds_ship_mode_t1_index1 ON tpcds.ship_mode_t1 USING psort (sm_ship_mode_sk) TABLESPACE pg_default(1 row)SELECT * FROM pg_get_indexdef(136035,1,false); pg_get_indexdef----------------- sm_ship_mode_sk(1 row)
  • pg_get_tabledef(table_oid) 描述:根据table_oid获取表定义。 返回类型:text 示例:先通过系统表pg_class获取表customer_t2的OID,再使用此函数查询表customer_t2的定义,可获取创建表customer_t2时的表字段,表的存储方式(行存或列存)及表的分布方式等信息。 1 2 3 4 5 6 7 8 910111213141516171819 SELECT oid FROM pg_class WHERE relname ='customer_t2'; oid------- 17353(1 row)SELECT * FROM pg_get_tabledef(17353); pg_get_tabledef-------------------------------------------- SET search_path = dbadmin; + CREATE TABLE customer_t2 ( + state_id character(2), + state_name character varying(40), + area_id numeric + ) + WITH (orientation=column, compression=low)+ DISTRIBUTE BY HASH(state_id) + TO GROUP group_version1;(1 row)
  • collation for (any) 描述:获取参数的排序。 返回类型:text 备注: 表达式collation for返回传递给他的值的排序。示例: 12345 SELECT collation for (description) FROM pg_description LIMIT 1; pg_collation_for ------------------ "default"(1 row) 值可能是引号括起来的并且模式限制的。如果没有为参数表达式排序,则返回一个null值。如果参数不是排序的类型,则抛出一个错误。
  • table_skewness(table_name text, column_name text[, row_num text]) 描述:查看表里某列数据,按hash分布规则,在各节点的占比情况。结果以数据节点上的数据量排序。 参数:table_name为表名;column_name为列名;row_num表示查看当前列所有数据,可缺省,默认为0。非0时,表示抽取指定条数的数据查看占比情况(每次采样结果可能不相同,只保证采集row_num条数据进行占比计算)。 返回值类型:record 示例: 根据tx表中的a列,按hash分布,则在1,2,0编号的DN上分布的数据量分别为7条,2条,1条。 1234567 SELECT * FROM table_skewness('tx','a'); seqnum | num | ratio--------+-----+---------- 1 | 7 | 70.000% 2 | 2 | 20.000% 0 | 1 | 10.000%(3 row)
  • format_type(type_oid, typemod) 描述:获取数据类型的SQL名称。 返回类型:text 备注: format_type通过数据类型的类型OID以及可能的类型修饰词,返回其SQL名称。如果不知道具体的修饰词,则在类型修饰词的位置传入NULL。类型修饰词一般只对有长度限制的数据类型有意义。format_type所返回的SQL名称中包含数据类型的长度值,其大小是:实际存储长度len - sizeof(int32),单位字节。数据存储时需要32位的空间来存储用户对数据类型的自定义长度信息,即实际存储长度要比用户定义长度多4个字节。在下例中,format_type返回的SQL名称为“character varying(6)”,6表示varchar类型的长度值是6字节,因此该类型的实际存储长度为10字节。 12345 SELECT format_type((SELECT oid FROM pg_type WHERE typname='varchar'), 10); format_type ---------------------- character varying(6)(1 row)
  • pg_get_expr(pg_node_tree, relation_oid, pretty_bool) 描述:反编译表达式的内部形式,假设其中的任何Vars都引用第二个参数指定的关系。 返回类型:text 备注:pg_get_expr反编译一个独立表达式的内部形式,比如一个字段的缺省值。在检查系统表的内容的时候很有用。如果表达式可能包含关键字,则指定它们引用相关的OID作为第二个参数;如果没有关键字,设置为零即可。
  • pgxc_verify_residualfiles() 描述:pg_verify_residualfiles()的CN统一查询函数。该函数为集群级函数,与当前所在的数据库相关,在CN实例上运行。 参数类型:无 返回值类型:record 函数返回字段如下: 表3 pgxc_verify_residualfiles()返回字段 名称 类型 描述 nodename text 节点名称 result bool 是否完成验证 filepath text 残留文件记录路径 notes text 注释 示例: 123456 SELECT * FROM pgxc_verify_residualfiles(); nodename | result | filepath | notes --------------+--------+---------------------------+------- cn_5001 | t | pgrf_20200910170129360401 | dn_6001_6002 | t | pgrf_20200908160211441546 | (2 rows) 本函数只能验证记录的文件在当前登录的数据库中是否是残留文件。如果记录的文件不属于当前登录的数据库,则不会进行校验行为。
  • pg_verify_residualfiles() 描述:用于验证当前实例上所有残留文件列表中记录的文件是否为残留文件。该函数为实例级函数,与当前所在的数据库相关,可以在任意实例上运行。 参数类型:无 返回值类型:record 函数返回字段如下: 表2 pg_verify_residualfiles()返回字段 名称 类型 描述 result bool 是否完成验证 filepath text 残留文件记录路径 notes text 注释 示例: 12345 SELECT * FROM pg_verify_residualfiles(); result | filepath | notes --------+---------------------------+------- t | pgrf_20200908160211441546 | (1 row) 本函数只能验证记录的文件在当前登录的数据库中是否是残留文件。如果记录的文件不属于当前登录的数据库,则不会进行校验行为。
  • pg_is_residualfiles(residualfile) 描述:用于查询当前库中指定的relfilenode是否为残留文件。该函数为实例级函数,与当前所在的数据库相关,可以在任意实例上运行。 参数类型:text 返回值类型:bool 函数返回字段如下: 表4 pg_is_residualfiles(residualfile)返回字段 名称 类型 描述 result bool 是否是残留文件 示例: 12345 SELECT * FROM pg_is_residualfiles('base/49155/114691'); result -------- t(1 row) 本函数只能验证记录的文件在当前登录的database中是否为残留文件。如果记录的文件不属于当前登录的数据库,则会被检测为是残留文件。 例如:针对gaussdb数据库中的非残留文件base/15092/14790,如果在gaussdb库中查询,则认为是非残留文件;在其他数据库中查询,则认为是残留文件。 SELECT * FROM pg_is_residualfiles('base/15092/14790');result--------f(1 row)\c db2db2=# SELECT * FROM pg_is_residualfiles('base/15092/14790');result--------t(1 row)
  • pg_verify_residualfiles(filepath) 描述:用于验证参数指定文件中记录的文件是否为残留文件。该函数为实例级函数,与当前所在的数据库相关,可以在任意实例上运行。 参数类型:text 返回值类型:bool 函数返回字段如下: 表1 pg_verify_residualfiles(filepath)返回字段 名称 类型 描述 isverified bool 是否完成验证 示例: 12345 SELECT * FROM pg_verify_residualfiles('pgrf_20200908160211441546'); isverified ------------ t(1 row) 本函数只能验证记录的文件在当前登录的数据库中是否是残留文件。如果记录的文件不属于当前登录的数据库,则不会进行校验行为。
  • generate_subscripts(array anyarray, dim int, reverse boolean) 描述:生成一系列包括给定数组的下标。当reverse为真时,该系列则以相反的顺序返回。 返回值类型:setof int 示例: 12345678 SELECT generate_subscripts('{NULL,1,NULL,2}'::int[], 1,TRUE) AS s; s--- 4 3 2 1(4 rows)
  • pv_compute_pool_workload() 描述:返回计算子集群当前的负载状态。 返回类型:void 示例: 123456 SELECT * from pv_compute_pool_workload(); nodename | rpinuse | maxrp | nodestate-----------+---------+-------+----------- datanode1 | 0 | 1000 | normal datanode2 | 0 | 1000 | normal(2 rows)
  • rb_andnot(roaringbitmap, roaringbitmap) 描述:在第一个roaringbitmap集合中,但是不在第二个roaringbitmap中的集合。 返回值类型:roaringbitmap 示例: 12345 SELECT rb_to_array(rb_andnot(rb_build('{1,2,3}'), rb_build('{2,3,4}')));rb_to_array-------------{1}(1 row)
  • rb_xor_cardinality(roaringbitmap, roaringbitmap) 描述:计算两个roaringbitmap异或以后的基数。 返回值类型:int 示例: 12345 SELECT rb_xor_cardinality(rb_build('{1,2,3}'), rb_build('{2,3,4}'));rb_xor_cardinality--------------------2(1 row)
  • rb_containedby_rb(roaringbitmap,roaringbitmap) 描述:判断跟定的第二个roaringbitmap是否包含第一个roaringbitmap。 返回值类型:bool 示例: 12345 SELECT rb_containedby_rb(rb_build('{1,3}'), rb_build('{2,3}'));rb_containedby_rb---------------f(1 row)
  • rb_to_array(roaringbitmap) 描述:rb_build的逆向操作,把roaringBitmap转成int数组。 返回值类型: array 示例: 1 2 3 4 5 6 7 8 910 SELECT rb_to_array(c) FROM r_row;rb_to_array-------------{1,2,3}(1 row)SELECT rb_to_array('\x3a300000010000000000020010000000010002000300');rb_to_array-------------{1,2,3}(1 row)
  • rb_and_cardinality(roaringbitmap, roaringbitmap) 描述:计算两个roaringbitmap的交集的基数。 返回值类型:int 示例: 12345 SELECT rb_and_cardinality(rb_build('{1,2,3}'), rb_build('{2,3,4}'));rb_and_cardinality--------------------2(1 row)
  • rb_andnot_cardinality(roaringbitmap, roaringbitmap) 描述:计算两个roaringbitmap按照andnot计算结果以后的基数。 返回值类型:int 示例: 12345 SELECT rb_andnot_cardinality(rb_build('{1,2,3}'), rb_build('{2,3,4}'));rb_andnot_cardinality-----------------------1(1 row)
  • rb_clear(roaringbitmap,int,int) 描述:从roaringbitmap中清除指定范围内的元素。 返回值类型:roaringbitmap 示例: 1 SELECT rb_to_array(rb_clear(rb_build('{1,2,3}'),1,2)); rb_to_array ------------- {2,3} (1 row)
  • rb_or_cardinality(roaringbitmap, roaringbitmap) 描述:计算两个roaringbitmap的并集的基数。 返回值类型:int 示例: 12345 SELECT rb_or_cardinality(rb_build('{1,2,3}'), rb_build('{2,3,4}'));rb_or_cardinality-------------------4(1 row)
  • rb_contain_rb(roaringbitmap,roaringbitmap) 描述:判断第一个roaringbitmap是否包含第二个roaringbitmap。 返回值类型:bool 示例: 12345 SELECT rb_contain_rb(rb_build('{1,3}'), rb_build('{2,3}'));rb_contain_rb---------------f(1 row)
  • rb_build(array) 描述:将int数组转成roaringbitmap类型。 返回值类型:roaringbitmap 示例: 12345 SELECT rb_build('{1,2,3}');rb_build------------------------------------------------\x3a300000010000000000020010000000010002000300(1 row) 1 2 3 4 5 6 7 8 91011121314151617181920212223 CREATE TABLE r_row (a int, b text, c roaringbitmap);NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using round-robin as the distribution mode by default.HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.CREATE TABLEINSERT INTO r_row values (1, 'a', rb_build('{1,2,3}'));INSERT 0 1SELECT * FROM r_row; a | b | c---+---+------------------------------------------------ 1 | a | \x3a300000010000000000020010000000010002000300(1 row)INSERT INTO r_row values (2, 'b', rb_build('{}'));INSERT 0 1SELECT * FROM r_row; a | b | c---+---+------------------------------------------------ 2 | b | \x3a30000000000000 1 | a | \x3a300000010000000000020010000000010002000300(2 rows)
  • hll_add(hll, hll_hashval) 描述:把hll_hashval加入到hll中。 返回值类型:hll 示例: 12345 SELECT hll_add(hll_empty(), hll_hash_integer(1)); hll_add -------------------------- \x128b7f8895a3f5af28cafe(1 row)
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全