华为云用户手册

  • 告警场景 目前支持对以下7种导致性能问题的场景上报告警。 多列/单列统计信息未收集 如果存在单列或者多列统计信息未收集,则上报相关告警。 告警信息示例: 整表的统计信息未收集: Statistic Not Collect: schema_test.t1 单列统计信息未收集: Statistic Not Collect: schema_test.t2(c1,c2) 多列统计信息未收集: Statistic Not Collect: schema_test.t3((c1,c2)) 单列和多列统计信息未收集: Statistic Not Collect: schema_test.t4(c1,c2) schema_test.t4((c1,c2)) SQL不下推 对于不下推的SQL,尽可能详细上报导致不下推的原因。调优方法请参见语句下推调优。 对于因函数而导致的不下推,会告警对应的函数信息。 对于不支持下推的语法,会告警对应语法不支持下推,例如:含有With Recursive、Distinct On、row表达式和返回值为record类型的,会告警相应语法不支持下推等。 告警信息示例: SQL is not plan-shipping, reason : "With Recursive" can not be shipped" SQL is not plan-shipping, reason : "Function now() can not be shipped" SQL is not plan-shipping, reason : "Function string_agg() can not be shipped" HashJoin中大表做内表 如果在表连接过程中使用了Hashjoin,且连接的内表行数是外表行数的10倍或以上,同时内表在每个DN上的平均行数大于10万行,且发生了下盘,则上报相关告警。调优方法请参见使用plan hint调优执行计划。 告警信息示例: PlanNode[7] Large Table is INNER in HashJoin “Vector Hash Aggregate” 大表等值连接使用Nestloop 如果在表连接过程中使用了nestloop,并且两个表中较大表的行数平均每个DN上的行数大于10万行,表的连接中存在等值连接,则上报相关告警。调优方法请参见使用plan hint调优执行计划。 告警信息示例: PlanNode[5] Large Table with Equal-Condition use Nestloop"Nested Loop" 大表Broadcast 如果在Broadcast算子中,平均每DN的行数大于10万行,则告警大表broadcast。调优方法请参见使用plan hint调优执行计划。 告警信息示例: PlanNode[5] Large Table in Broadcast "Streaming(type: BROADCAST dop: 1/2)" 数据倾斜 某表在各DN上的分布,存在某DN上的行数是另一DN上行数的10倍或以上,且有DN中的行数大于10万行,则上报相关告警。 告警信息示例: PlanNode[6] DataSkew:"Seq Scan", min_dn_tuples:0, max_dn_tuples:524288 估算不准 如果优化器的估算行数和实际行数中的较大值平均每DN行数大于10万行,并且估算行数和实际行数中较大值是较小值的10倍或以上,则上报相关告警。调优方法请参见使用plan hint调优执行计划。 告警信息示例: PlanNode[5] Inaccurate Estimation-Rows: "Hash Join" A-Rows:0, E-Rows:52488
  • 示例 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 --建表并插入数据。 gaussdb=# CREATE TABLE tbl_test(c1 int); gaussdb=# INSERT INTO tbl_test VALUES (generate_series(1,20)); --建立一个名为cursor1的游标。 gaussdb=# BEGIN; gaussdb=# CURSOR cursor1 FOR SELECT * FROM tbl_test ORDER BY 1; --使用MOVE命令使游标向后移动5行,不返回结果。 gaussdb=# MOVE FORWARD 5 FROM cursor1; MOVE 5 --使用FETCH命令检索两行数据。 gaussdb=# FETCH FORWARD 2 FROM cursor1; c1 ---- 6 7 (2 rows) --关闭游标并结束事务。 gaussdb=# CLOSE cursor1; gaussdb=# END; --删除。 gaussdb=# DROP TABLE tbl_test;
  • 语法格式 1 MOVE [ direction [ FROM | IN ] ] cursor_name; 其中direction子句为可选参数。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 NEXT | PRIOR | FIRST | LAST | ABSOLUTE count | RELATIVE count | count | ALL | FORWARD | FORWARD count | FORWARD ALL | BACKWARD | BACKWARD count | BACKWARD ALL
  • GS_SPM_EVOLUTION GS_SPM_EVOLUTION是SPM计划管理特性中的系统表,当前该特性在分布式中不支持。它用于存储计划演进结果的系统表,具备sysadmin权限的用户可以对该系统表进行读操作,但只有初始用户才可以对该系统表进行写的操作。 表1 GS_SPM_EVOLTOIN字段 名称 类型 描述 sql_namespace oid schema oid。 sql_hash bigint SPM中SQL的唯一标识。 plan_hash bigint plan id。 better boolean 是否是正向收益演进: t表示正向收益演进。 f表示负向收益演进。 refer_plan bigint 报告生成主要参考的plan hash。 status integer 演进过程中是否出现异常: 0表示没有发生异常。 1表示有异常发生。 reason text 演进报告的内容。 user oid 生成演进结果的用户。 creation_time timestamp with time zone 创建演进结果的时间。 父主题: SPM计划管理
  • 简化版查询 通过使用TABLE语法,直接指定具体的表进行查询操作。 该操作与使用SELECT语法进行全表信息简单查询功能一致。 --创建表。 gaussdb=# CREATE TABLE t1(c1 int, c2 int, c3 int); --插入数据。 gaussdb=# INSERT INTO t1 VALUES (1,2,3); c1 | c2 | c3 ----+----+---- 1 | 2 | 3 (1 row) --查询表的数据。 gaussdb=# TABLE t1; c1 | c2 | c3 ----+----+---- 1 | 2 | 3 (1 row) --删除。 gaussdb=# DROP TABLE t1; 父主题: SELECT
  • 列级字符集字符序 每个字符串类型(即类型为CHAR 、VARCHAR、 TEXT等字符串类型)的列都可以设置列的字符集和列的字符序。 CREATE TABLE table_name ( column_name data_type [ CHARACTER SET | CHARSET charset ] [ COLLATE collation ] ); 语法说明: table_name 表名称。 data_type 字段的数据类型,字符串类型支持字符集、字符序语法。 CHARACTER SET | CHARSET charset 指定表字段的字符集,单独指定时会将字段的字符序设置为指定字符集的默认字符序。 COLLATE collation COLLATE子句指定列的字符序(该列的数据类型必须支持字符序)。如果没有指定,则使用默认的排序规则。 GaussDB 通过以下方式选择表字段的字符集和字符序: 如果同时指定了charset和collation,则使用字符集charset和字符序collation ,且charset和collation需要对应,不对应会产生报错。 如果仅指定了charset,则使用字符集 charset 及其默认字符序。 如果仅指定了collation,则使用与collation关联的字符集和指定的字符序。 如果既不指定charset也不指定collation,则使用表的默认字符集和默认字符序。 default_charset仅支持指定为带有默认字符序的字符集,如果指定的字符集没有默认字符序则报错。 default_collation仅支持指定为MYSQL模式下的字符序,指定其他字符序报错。 如果表字段为文本类型且指定的字符序为binary ,则文本类型会转换为对应的二进制类型,字符序为指定的binary字符序。 分区表的分区键的字符集必须与数据库字符集相同。 暂不支持设置表字段的默认字符集和默认字符序与数据库字符集server_encoding不同。 示例: 1 2 3 4 5 6 7 8 -- 仅设置字符集,字符序为字符集的默认字符序 gaussdb=# CREATE TABLE test(c1 text CHARSET utf8); -- 仅设置字符序,字符集为字符序关联的字符集 gaussdb=# CREATE TABLE test(c1 text COLLATE utf8_bin); -- 同时设置字符集与字符序,字符集和字符序需对应 gaussdb=# CREATE TABLE test(c1 text CHARSET utf8 COLLATE utf8_bin); 父主题: 字符集与字符序
  • GS_AUDITING_POLICY_FILTERS GS_AUDITING_POLICY_FILTERS系统表记录统一审计相关的过滤策略相关信息,每条记录对应一个设计策略。需要有系统管理员或安全策略管理员权限才可以访问此系统表。 表1 GS_AUDITING_POLICY_FILTERS字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 filtertype name 过滤类型。目前值仅为logical_expr。 labelname name 名称。目前值仅为logical_expr。 policyoid oid 所属审计策略的OID,对应审计策略系统表GS_AUDITING_POLICY中的oid。 modifydate timestamp without time zone 创建或修改的最新时间戳。 logicaloperator text 过滤条件的逻辑字符串。 父主题: 审计
  • pagewriter_thread_num 参数说明:增量检查点打开后,设置后台刷页的线程数,将按照脏页置脏的先后顺序刷盘,产生干净的缓冲区页面,并推进用于打检查点的恢复点。 参数类型:整型 参数单位:无 取值范围:1 ~ 16 默认值:4 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • postmaster_parallel_init_thread_num 参数说明:设置数据库启动时可使用的并行线程数量。 参数类型:整型 参数单位:无 取值范围:1 ~ 256 默认值:16 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:该数值表示并行初始化的线程数量,因此建议设置值不超过(环境CPU核数量-1)。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • pagewriter_sleep 参数说明:增量检查点模式下,设置pagewriter刷页线程的刷脏周期。 参数类型:整型 参数单位:ms(毫秒) 取值范围:0 ~ 3600000 默认值:2000(即2s) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:建议CN保持为默认值。DN不宜设置大于2s,脏页产生很快的情况下,建议设置100ms - 500ms,因为设置过大会导致redo点推进过慢,影响xlog回收。 设置不当的风险与影响:设置过大时,会导致刷页速度降低,redo点推进过慢,进而影响Xlog回收;同时,由于停止实例时需要等待该参数设置的时间,设置过大时可能导致进程退出超时。
  • enable_consider_usecount 参数说明:设置缓冲区的页面淘汰算法是否考虑页面冷热程度。 参数类型:布尔型 参数单位:无 取值范围: on:表示考虑页面冷热程度。 off:表示不考虑页面冷热程度。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:建议大容量场景等频繁执行单页面淘汰的场景开启此参数。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • dw_file_num 参数说明:设置批量双写文件的数量。 参数类型:整型 参数单位:无 取值范围:1 ~ 16 默认值:1 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:该参数值与pagewriter_thread_num有关,不会大于pagewriter_thread_num。如果dw_file_num设置过大,内部会纠正为pagewriter_thread_num大小。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • dirty_page_percent_max 参数说明:增量检查点打开后,设置脏页数量占shared_buffers的最大期望百分比。达到这个设定值时,后台刷页线程将以设置的max_io_capacity刷脏。 参数类型:浮点型 参数单位:无 取值范围:0.1 ~ 1 默认值:0.9 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • bgwriter_lru_multiplier 参数说明:数据库内核根据当前缓冲区大小设置shared_buffers,在内核实际运行业务时发现当前设置的shared_buffers过小或过大,通过调整bgwriter_lru_multiplier参数给出最优推荐值,推荐值为该参数和shared_buffers的乘积。设置为推荐值之后,在数据库重新启动时生效。 参数类型:浮点型 参数单位:无 取值范围:0 ~ 10 默认值:2 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议: 写“脏”缓存区到磁盘的数目取决于服务器最近几次使用的缓存区数目。最近使用buffers数目的平均值乘以bgwriter_lru_multiplier是为了评估下次服务器进程需要使用的buffers数目。在有足够多的干净的、可用的缓存区之前,后端写线程会一直写“脏”缓存区(每次写的缓存区数目不会超过bgwriter_lru_maxpages的值)。 设置bgwriter_lru_multiplier为1.0表示一种“实时”策略,其作用是准确预测下次写“脏”缓冲区的数目。设置为较大的值可以应对突然的需求高峰,而较小的值则可以让服务器进程执行更多的写操作。 设置较小的bgwriter_lru_maxpages和bgwriter_lru_multiplier,会减小后端写线程导致的额外I/O开销,但是服务器进程会发出写操作,增加了对查询的响应时间。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • max_io_capacity 参数说明:设置后端pagewriter刷页线程批量刷脏每秒的I/O上限。 参数类型:整型 参数单位:kB 取值范围:30720 ~ 10485760 默认值:512000(即500MB) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。取值不带单位,则默认为kB;取值如果要带单位,必须为kB、MB、GB。例如:max_io_capacity=512000,max_io_capacity=512000kB,max_io_capacity=500MB都表示设置max_io_capacity为500MB。 设置建议:根据具体业务场景和磁盘I/O能力进行设置。比如磁盘I/O带宽为500MB,建议设置带宽为500MB以内。要求更小的RTO时间或者在大容量场景,可以调大max_io_capacity,例如设置为2GB。 设置不当的风险与影响:设置过小时,刷脏速度慢于业务产生脏页的速度,会导致缓冲区脏页满,从而导致性能劣化。设置过大时,会导致写放大,影响存储设备寿命。
  • bgwriter_delay 参数说明:定期循环逐块扫描缓冲区刷脏的时间间隔。全量checkpoint模式下,根据bgwriter_lru_maxpages参数控制每次写的量,然后休眠bgwriter_delay毫秒后才再次启动;增量checkpoint模式下,根据设定candidate_buf_percent_target计算目标空闲缓冲页面个数,当候选缓冲页面不足时,每隔bgwriter_delay毫秒扫描一次10GB的缓冲区页面,当遇到脏页时把脏页刷盘后再放进候选链表,当遇到干净的页面直接放进候选链表。在许多系统上,休眠延时的有效分辨率是10毫秒。因此,设置一个不是10倍数的数值与把它设置为一个10的倍数是一样的效果。 参数类型:整型 参数单位:ms(毫秒) 取值范围:10 ~ 10000 默认值:2000(即2s) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议: 增量checkpoint模式:数据量是shared_buffers多倍时,bgwriter_delay设置值不宜大于2s;数据量比shared_buffers小时,如果为了节省I/O,bgwriter_delay可以适当调大。 全量checkpoint模式:保持默认值即可,但是磁盘能力差的,可以适当调大。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • candidate_buf_percent_target 参数说明:当增量检查点打开时,设置干净页面候选链表占整体缓冲区页面数量百分比的期望值。若当干净页面链表中的页面比例小于该值,bgwriter线程会启动,扫描缓冲区页面将干净的页面放入链表,把脏页刷盘后再放入链表。 参数类型:浮点型 参数单位:无 取值范围:0.1 ~ 0.85 默认值:0.3 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:该参数直接影响bgwriter线程刷页个数。当数据量大于shared_buffers时,candidate_buf_percent_target设置过小,会影响性能。若数据量是shared_buffers的2倍及以上,该值不宜小于默认值;其他场景下,若要降低I/O,可适当调小该参数。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • bgwriter_lru_maxpages 参数说明:设置后端写线程每次脏页刷盘的脏页数量上限。 参数类型:整型 参数单位:无 取值范围:0 ~ 1000。0表示禁用后端写功能,禁用后端写功能不会对checkpoints产生影响。 默认值:100 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • SUMMARY_WORKLOAD_TRANSACTION 显示集群内汇聚的负载事务信息,如表1所示。 表1 SUMMARY_WORKLOAD_TRANSACTION字段 名称 类型 描述 workload name 负载的名称。 commit_counter numeric 用户事务commit数量。 rollback_counter numeric 用户事务rollback数量。 resp_min bigint 用户事务最小响应时间(单位:微秒)。 resp_max bigint 用户事务最大响应时间(单位:微秒)。 resp_avg bigint 用户事务平均响应时间(单位:微秒)。 resp_total numeric 用户事务总响应时间(单位:微秒)。 bg_commit_counter numeric 后台事务commit数量。 bg_rollback_counter numeric 后台事务rollback数量。 bg_resp_min bigint 后台事务最小响应时间(单位:微秒)。 bg_resp_max bigint 后台事务最大响应时间(单位:微秒)。 bg_resp_avg bigint 后台事务平均响应时间(单位:微秒)。 bg_resp_total numeric 后台事务总响应时间(单位:微秒)。 dbid oid 统计信息所属的数据库id。 父主题: Workload
  • GS_JOB_ARGUMENT GS_JOB_ARGUMENT系统表提供了DBE_SCHEDULER定时任务和程序的参数属性。 表1 GS_JOB_ARGUMENT字段 名称 类型 描述 oid oid 行标识符(隐含字段)。 argument_position integer 定时任务或程序的参数位置。 argument_type name 定时任务或程序的参数类型。 job_name text 定时任务或程序名。 argument_name text 定时任务或程序的参数名(定时任务继承了程序的参数名,所以为空)。 argument_value text 定时任务的参数值(程序本身无法绑定值)。 default_value text 程序的参数默认值。 父主题: 其他系统表
  • 获取ODBC包以及依赖库 ODBC包以及依赖库支持两种操作系统(Linux和Windows),请用户根据实际情况进行选择。 Linux系统: 从驱动包中获取,包名为GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_Odbc.tar.gz。Linux环境下,开发应用程序要用到unixODBC提供的头文件(sql.h、sqlext.h等)和库libodbc.so。 这些头文件和库可从unixODBC-2.3.7的源码包中获得。 Windows系统: 从驱动包中获取,包名为GaussDB-Kernel_数据库版本号_Windows_X86_Odbc.tar.gz(32位)和GaussDB-Kernel_数据库版本号_Windows_X64_Odbc.tar.gz(64位)。 Windows环境下,开发应用程序用到的相关头文件和库文件由系统自带
  • 获取驱动包 下载表1中的驱动包和驱动包校验包。 表1 驱动包下载列表 版本 下载地址 V2.0-8.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: Linux操作系统软件包完整性校验: 上传软件包和软件包校验包到虚拟机的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB_driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK Windows操作系统软件包完整性校验: 使用快捷键“Win+R”打开“运行”窗口。 在“打开”栏,输入“cmd”,按“Enter”回车,打开命令行页面。 执行以下命令,获取驱动包的Hash值。 certutil -hashfile {驱动包本地目录}\{驱动包名} sha256 {驱动包本地目录}:请根据实际下载目录进行替换。例如:C:\Users {驱动包名}:请根据实际下载的驱动包名进行替换。例如:GaussDB_driver.zip 示例:certutil -hashfile C:\Users\GaussDB_driver.zip sha256 将2获取到的Hash值和表1中获取到的驱动包校验包的Hash值进行比较。 若一致则通过校验。 若不一致,请重新下载驱动包,重复1~3进行校验。
  • 示例 创建示例表和索引: create table t1(c1 int, c2 int, c3 int); create table t2(c1 int, c2 int, c3 int); create table t3(c1 int, c2 int, c3 int); create index it1 on t1(c1,c2); create index it2 on t2(c1,c2); create index it3 on t1(c3,c2); -- 下面TPCH数据表需要插入10X数据量已匹配给出的计划示例 create table store ( s_store_sk integer not null, s_store_id char(16) not null, s_rec_start_date date , s_rec_end_date date , s_closed_date_sk integer , s_store_name varchar(50) , s_number_employees integer , s_floor_space integer , s_hours char(20) , s_manager varchar(40) , s_market_id integer , s_geography_class varchar(100) , s_market_desc varchar(100) , s_market_manager varchar(40) , s_division_id integer , s_division_name varchar(50) , s_company_id integer , s_company_name varchar(50) , s_street_number varchar(10) , s_street_name varchar(60) , s_street_type char(15) , s_suite_number char(10) , s_city varchar(60) , s_county varchar(30) , s_state char(2) , s_zip char(10) , s_country varchar(20) , s_gmt_offset decimal(5,2) , s_tax_precentage decimal(5,2) , primary key (s_store_sk) ); create table store_sales ( ss_sold_date_sk integer , ss_sold_time_sk integer , ss_item_sk integer not null, ss_customer_sk integer , ss_cdemo_sk integer , ss_hdemo_sk integer , ss_addr_sk integer , ss_store_sk integer , ss_promo_sk integer , ss_ticket_number integer not null, ss_quantity integer , ss_wholesale_cost decimal(7,2) , ss_list_price decimal(7,2) , ss_sales_price decimal(7,2) , ss_ext_discount_amt decimal(7,2) , ss_ext_sales_price decimal(7,2) , ss_ext_wholesale_cost decimal(7,2) , ss_ext_list_price decimal(7,2) , ss_ext_tax decimal(7,2) , ss_coupon_amt decimal(7,2) , ss_net_paid decimal(7,2) , ss_net_paid_inc_tax decimal(7,2) , ss_net_profit decimal(7,2) , primary key (ss_item_sk, ss_ticket_number) ); create table store_returns ( sr_returned_date_sk integer , sr_return_time_sk integer , sr_item_sk integer not null, sr_customer_sk integer , sr_cdemo_sk integer , sr_hdemo_sk integer , sr_addr_sk integer , sr_store_sk integer , sr_reason_sk integer , sr_ticket_number integer not null, sr_return_quantity integer , sr_return_amt decimal(7,2) , sr_return_tax decimal(7,2) , sr_return_amt_inc_tax decimal(7,2) , sr_fee decimal(7,2) , sr_return_ship_cost decimal(7,2) , sr_refunded_cash decimal(7,2) , sr_reversed_charge decimal(7,2) , sr_store_credit decimal(7,2) , sr_net_loss decimal(7,2) , primary key (sr_item_sk, sr_ticket_number) ); create table customer ( c_customer_sk integer not null, c_customer_id char(16) not null, c_current_cdemo_sk integer , c_current_hdemo_sk integer , c_current_addr_sk integer , c_first_shipto_date_sk integer , c_first_sales_date_sk integer , c_salutation char(10) , c_first_name char(20) , c_last_name char(30) , c_preferred_cust_flag char(1) , c_birth_day integer , c_birth_month integer , c_birth_year integer , c_birth_country varchar(20) , c_login char(13) , c_email_address char(50) , c_last_review_date char(10) , primary key (c_customer_sk) ); create table promotion ( p_promo_sk integer not null, p_promo_id char(16) not null, p_start_date_sk integer , p_end_date_sk integer , p_item_sk integer , p_cost decimal(15,2) , p_response_target integer , p_promo_name char(50) , p_channel_dmail char(1) , p_channel_email char(1) , p_channel_catalog char(1) , p_channel_tv char(1) , p_channel_radio char(1) , p_channel_press char(1) , p_channel_event char(1) , p_channel_demo char(1) , p_channel_details varchar(100) , p_purpose char(15) , p_discount_active char(1) , primary key (p_promo_sk) ); create table customer_address ( ca_address_sk integer not null, ca_address_id char(16) not null, ca_street_number char(10) , ca_street_name varchar(60) , ca_street_type char(15) , ca_suite_number char(10) , ca_city varchar(60) , ca_county varchar(30) , ca_state char(2) , ca_zip char(10) , ca_country varchar(20) , ca_gmt_offset decimal(5,2) , ca_location_type char(20) , primary key (ca_address_sk) ); create table item ( i_item_sk integer not null, i_item_id char(16) not null, i_rec_start_date date , i_rec_end_date date , i_item_desc varchar(200) , i_current_price decimal(7,2) , i_wholesale_cost decimal(7,2) , i_brand_id integer , i_brand char(50) , i_class_id integer , i_class char(50) , i_category_id integer , i_category char(50) , i_manufact_id integer , i_manufact char(50) , i_size char(20) , i_formulation char(20) , i_color char(20) , i_units char(10) , i_container char(10) , i_manager_id integer , i_product_name char(50) , primary key (i_item_sk) ); 本章节大部分示例使用下述语句,便于Plan Hint支持的各方法作对比,示例语句及不带hint的原计划如下所示:
  • SUMMARY_USER_ LOG IN SUMMARY_USER_LOGIN用来记录所有CN节点上用户登录和退出次数的相关信息,如表1所示。 表1 SUMMARY_USER_LOGIN字段 名称 类型 描述 node_name text 节点名称。 user_name text 用户名称。 user_id integer 用户oid(同pg_authid中的oid字段)。 login_counter bigint 登录次数。 logout_counter bigint 退出次数。 dbid oid 用户登录的数据库id。 父主题: Utility
  • V$OPEN_CURSOR V$OPEN_CURSOR视图显示当前节点所有会话打开的游标的相关信息。默认只有系统管理员权限才可以访问此系统视图,普通用户若要访问需要得到授权。该视图同时存在于PG_CATALOG和SYS Schema下。具体字段信息如表1所示。 表1 V$OPEN_CURSOR字段 名称 类型 描述 saddr raw 暂不支持,值为NULL。 sid numeric 会话id。 user_name character varying(128) 用户名称。 address raw 暂不支持,值为NULL。 hash_value numeric 暂不支持,值为NULL。 sql_id character varying(13) 查询语句的id。 sql_text character varying(60) 游标的SQL文本的前60个字节。 last_sql_active_time date 暂不支持,值为NULL。 sql_exec_id numeric 暂不支持,值为NULL。 cursor_type character varying(64) 游标类型。 OPEN-PL/SQL:打开的PL/SQL游标。 OPEN:其他打开的游标。 child_address raw 暂不支持,值为NULL。 con_id numeric 暂不支持,值为NULL。 dbid oid 游标所属的数据库id。 父主题: 其他系统视图
  • gs_sensitive_data_discovery(scan_target text, scan_classifier text) 描述:扫描目标数据,返回统计的扫描结果。 参数: scan_target:指定扫描对象,取值必须是schema、table或column的名称,但必须指定扫描对象的上级名称,比如扫描某列传入扫描对象为scheme_name.table_name.column_name。 scan_classifier:指定使用的分类器,支持指定email、creditcard、phonenumber、chinesename、encryptedcontent 5种分类器,多选可以用逗号分隔,或者使用all选中所有分类器。 返回值类型:record 示例请参见《特性指南》的“敏感数据发现”章节。
  • gs_sensitive_data_discovery_detail(scan_target text, scan_classifier text) 描述:扫描目标数据,返回详细的扫描结果。 scan_target:指定扫描对象,取值必须是schema、table或column的名称,但必须指定描对象的上级名称,比如扫描某列传入扫描对象为scheme_name.table_name.column_name。 scan_classifier:指定使用的分类器,支持email、creditcard、phonenumber、chinesename、encryptedcontent 5种分类器,多选可以用逗号分隔,或者使用all选中所有分类器。 返回值类型:record 示例请参见《特性指南》的“敏感数据发现”章节。
  • GLOBAL_GS_SEG_SEGMENTS GLOBAL_GS_SEG_SEGMENTS在CN上执行,查看所有节点所有表空间的段信息,包含表、索引、TOAST、TOAST INDEX段及fsm fork、vm fork段。只支持管理员权限用户查询。 表1 GLOBAL_GS_SEG_SEGMENTS字段 名称 类型 描述 node_name text 节点名称。 schema_name name 段对象所属的名称空间。 segment_name name 段对象名,来源:pg_class、pg_partition.relname。 partition_name name 段对象分区名称,非分区为NULL。来源:pg_partition.relname。 forknum integer 段对象的分支类型,取值范围: 0表示main fork。 1表示fsm fork。 2表示vm fork。 segment_type text 段对象类型。取值范围: table:段页式普通表。 table partition:段页式分区表(主表和子表)、段页式二级分区表(其中的一级分区表)。 table subpartition:段页式二级分区表(其中的顶层节点表和二级分区表)。 index:段页式普通表索引。 index partition:段页式分区表、二级分区表的索引。 global partition index:段页式分区表、二级分区表的全局索引。 toast:段页式toast表。 toast index:段页式toast表的索引。 tablespace_name name 段对象所属的表空间。 bucketnode integer 0~1023表示hash bucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 2048~6143表示rangebucket表的bucketnode。 head_block_id bigint 段头页面号。 contents text 数据文件的存储内容,取值范围: permanent:永久。 unlogged:不记录日志。 temporary:全局临时。 temporary2:本地临时。 table_name name 段对象所属的基表名。 blocks bigint 段对象的逻辑页面数。 total_blocks bigint 段对象的物理页面数。 extents integer 段对象的逻辑扩展数。 total_extents integer 段对象的物理扩展数。 head_lsn text 段头lsn标识。 level0_slots bigint[] 段扩展映射level0槽位数组。 level1_slots bigint[] 段扩展映射level1槽位数组。 fork_head bigint[] 段对象的分支段头数组。 父主题: 段页式存储
  • GLOBAL_THREAD_WAIT_STATUS 通过该视图可以检测所有节点上工作线程(backend thread)以及辅助线程(auxiliary thread)的阻塞等待情况,如表 GLOBAL_THREAD_WAIT_STATUS字段所示。具体事件信息见表 Wait Events事件信息列表。 通过GLOBAL_THREAD_WAIT_STATUS视图,可以查看集群全局各个节点上所有SQL语句产生的线程之间的调用层次关系,以及各个线程的阻塞等待状态,从而更容易定位hang以及类似现象的原因。 GLOBAL_THREAD_WAIT_STATUS视图和THREAD_WAIT_STATUS视图列定义完全相同,这是由于GLOBAL_THREAD_WAIT_STATUS视图本质是到集群中各个节点上查询THREAD_WAIT_STATUS视图汇总的结果。 表1 GLOBAL_THREAD_WAIT_STATUS字段 名称 类型 描述 node_name text 节点名称。 db_name text 数据库名称。 thread_name text 线程名称。 query_id bigint 查询ID,对应debug_query_id。 tid bigint 当前线程的线程号。 sessionid bigint session的ID。 lwtid integer 当前线程的轻量级线程号。 psessionid bigint streaming线程的父线程。 tlevel integer streaming线程的层级。 smpid integer 并行线程的ID。 wait_status text 当前线程的等待状态。等待状态的详细信息请参见表 Wait Events事件信息列表。 wait_event text 如果wait_status是acquire lock、acquire lwlock、wait io三种类型,此列描述具体的锁、轻量级锁、I/O的信息。否则是空。 locktag text 当前线程正在等待锁的信息。 lockmode text 当前线程正等待获取的锁模式。包含表级锁、行级锁、页级锁下的各模式。 block_sessionid bigint 阻塞当前线程获取锁的会话标识。 global_sessionid text 全局会话ID。 父主题: Session/Thread
  • PG_PREPARED_STATEMENTS PG_PREPARED_STATEMENTS视图显示当前会话所有可用的预备语句的信息。具体字段信息如表1所示。 表1 PG_PREPARED_STATEMENTS字段 名称 类型 描述 name text 预备语句的标识符。 statement text 创建该预备语句的查询字符串。对于从SQL创建的预备语句而言是客户端提交的PREPARE语句;对于通过前/后端协议创建的预备语句而言是预备语句自身的文本。 prepare_time timestamp with time zone 创建该预备语句的时间戳。 parameter_types regtype[] 该预备语句期望的参数类型,以regtype类型的数组格式出现。与该数组元素相对应的OID可以通过把regtype转换为OID值得到。 from_sql boolean 如果该预备语句是通过PREPARE语句创建的则为true。 如果是通过前/后端协议创建的则为false。 父主题: 其他系统视图
共100000条
提示

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