华为云用户手册

  • GLOBAL_OS_RUNTIME 提供数据库中所有正常节点下的操作系统运行状态信息。 表1 GLOBAL_OS_RUNTIME字段 名称 类型 描述 node_name name 节点名称。 id integer 编号。 name text 操作系统运行状态名称。 value numeric 操作系统运行状态值。 comments text 操作系统运行状态注释。 cumulative boolean 操作系统运行状态的值是否为累加值。 父主题: OS
  • PG_TS_DICT PG_TS_DICT系统表包含定义文本搜索字典的记录。字典取决于文本搜索模板,该模板声明所有需要的实现函数;字典本身提供模板支持的用户可设置的参数的值。 这种分工允许字典通过非权限用户创建。参数由文本字符串dictinitoption指定,参数的格式和意义取决于模板。 表1 PG_TS_DICT字段 名称 类型 引用 描述 oid oid - 行标识符(隐含属性,必须明确选择)。 dictname name - 文本搜索字典名。 dictnamespace oid PG_NAMESPACE.oid 包含这个字典的名称空间的OID。 dictowner oid PG_AUTHID.oid 字典的所有者。 dicttemplate oid PG_TS_TEMPLATE.oid 这个字典的文本搜索模板的OID。 dictinitoption text - 该模板的初始化选项字符串。 父主题: 系统表
  • GLOBAL_WAIT_EVENTS GLOBAL_WAIT_EVENTS视图显示各节点的event的等待相关的统计信息。 表1 GLOBAL_WAIT_EVENTS字段 名称 类型 描述 nodename text 数据库进程名称。 type text event类型。 event text event名称。 wait bigint 等待次数。 failed_wait bigint 失败的等待次数。 total_wait_time bigint 总等待时间(单位:微秒)。 avg_wait_time bigint 平均等待时间(单位:微秒)。 max_wait_time bigint 最大等待时间(单位:微秒)。 min_wait_time bigint 最小等待时间(单位:微秒)。 last_updated timestamp with time zone 最后一次更新该事件的时间。 父主题: Wait Events
  • 参数说明 name 查询标签。 取值范围:字符串 EXPLAIN中的PLAN选项表示需要将计划信息存储于PLAN_TABLE中,存储成功将返回“EXPLAIN SUC CES S”。 STATEMENT_ID用户可以对查询设置标签,输入的标签信息也将存储于PLAN_TABLE中。 用户在执行EXPLAIN PLAN时,如果没有进行SET STATEMENT_ID,则默认为空值。同时,用户可输入的STATEMENT_ID最大长度为30个字节,超过长度将会产生报错。
  • SUMMARY_STAT_DATABASE_CONFLI CTS 显示数据库内汇聚的数据库冲突状态的统计信息。 表1 SUMMARY_STAT_DATABASE_CONFLICTS字段 名称 类型 描述 datname name 数据库名称。 confl_tablespace bigint 冲突的表空间的数目。 confl_lock bigint 冲突的锁数目。 confl_snapshot bigint 冲突的快照数目。 confl_bufferpin bigint 冲突的缓冲区数目。 confl_deadlock bigint 冲突的死锁数目。 父主题: Object
  • PG_TIMEZONE_NAMES PG_TIMEZONE_NAMES视图显示所有能够被SET TIMEZONE语法识别的时区名及其缩写、UTC偏移量、是否实行夏令时。 表1 PG_TIMEZONE_NAMES字段 名称 类型 描述 name text 时区名。 abbrev text 时区名缩写。 utc_offset interval 相对于UTC的偏移量。 is_dst boolean 如果当前正处于夏令时范围则为TRUE,否则为FALSE。 父主题: 系统视图
  • PG_INDEXES PG_INDEXES视图显示数据库中每个索引的信息。 表1 PG_INDEXES字段 名称 类型 引用 描述 schemaname name PG_NAMESPACE.nspname 包含表和索引的模式的名称。 tablename name PG_CLASS.relname 此索引所在的表的名称。 indexname name PG_CLASS.relname 索引的名称。 tablespace name PG_TABLESPACE.nspname 包含索引的表空间的名称。 indexdef text - 索引定义(一个重建的CREATE INDEX命令)。 父主题: 系统视图
  • 背景信息 序列Sequence是用来产生唯一整数的数据库对象。序列的值是按照一定规则自增的整数。因为自增所以不重复,因此说Sequence具有唯一标识性。这也是Sequence常被用作主键的原因。 通过序列使某字段成为唯一标识符的方法有两种: 一种是声明字段的类型为序列整型,由数据库在后台自动创建一个对应的Sequence。 另一种是使用CREATE SEQUENCE自定义一个新的Sequence,然后将nextval('sequence_name')函数读取的序列值,指定为某一字段的默认值,这样该字段就可以作为唯一标识符。
  • 操作步骤 方法一: 声明字段类型为序列整型来定义标识符字段。例如: 1 2 3 4 5 openGauss=# CREATE TABLE T1 ( id serial, name text ); 当结果显示为如下信息,则表示创建成功。 1 CREATE TABLE 方法二: 创建序列,并通过nextval('sequence_name')函数指定为某一字段的默认值。 创建序列 1 openGauss=# CREATE SEQUENCE seq1 cache 100; 当结果显示为如下信息,则表示创建成功。 1 CREATE SEQUENCE 指定为某一字段的默认值,使该字段具有唯一标识属性。 1 2 3 4 5 openGauss=# CREATE TABLE T2 ( id int not null default nextval('seq1'), name text ); 当结果显示为如下信息,则表示默认值指定成功。 1 CREATE TABLE 指定序列与列的归属关系。 将序列和一个表的指定字段进行关联。这样,在删除那个字段或其所在表的时候会自动删除已关联的序列。 1 openGauss=# ALTER SEQUENCE seq1 OWNED BY T2.id; 当结果显示为如下信息,则表示指定成功。 1 ALTER SEQUENCE 除了为序列指定了cache,方法二所实现的功能基本与方法一类似。但是一旦定义cache,序列将会产生空洞(序列值为不连贯的数值,如:1.4.5),并且不能保序。另外为某序列指定从属列后,该列删除,对应的sequence也会被删除。 虽然数据库并不限制序列只能为一列产生默认值,但建议不要多列共用同一个序列。 当前版本只支持在定义表的时候指定自增列,或者指定某列的默认值为nextval('seqname'), 不支持在已有表中增加自增列或者增加默认值为nextval('seqname')的列。
  • 注意事项 当enable_access_server_directory=off时,只允许初始用户删除directory对象;当enable_access_server_directory=on时,具有SYSADMIN权限的用户、directory对象的属主、被授予了该directory的DROP权限的用户或者继承了内置角色gs_role_directory_drop权限的用户可以删除directory对象。
  • PG_DB_ROLE_SETTING PG_DB_ROLE_SETTING系统表存储数据库运行时每个角色与数据绑定的配置项的默认值 。 表1 PG_DB_ROLE_SETTING字段 名称 类型 描述 setdatabase oid 配置项所对应的数据库,如果未指定数据库,则为0。 setrole oid 配置项所对应的角色,如果未指定角色,则为0。 setconfig text[] 运行时配置项的默认值。 父主题: 系统表
  • 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 程序的参数默认值。 父主题: 系统表
  • 连接方式介绍 连接数据库的方式通常是根据安全性、性能、可扩展性和实现复杂度等因素进行选择的。下面是3种方式连接数据库的优缺点以及选择原则: 表1 不同方式的优缺点以及选择原则 连接方式 优点 缺点 选择原则 非加密方式 简单易实现,无需额外的加密和解密操作。 性能较高,因为不需要进行加密/解密操作,减少了数据传输的开销。 安全性较低,数据在传输过程中容易被窃听或篡改。 不适合传输敏感信息,可能违反隐私保护法规。 只适用于内部网络或对安全性要求不高的环境。 SSL方式 提供了加密传输,数据在传输过程中得到保护,安全性较高。 支持客户端/服务器身份验证,增强了安全性。 配置和管理相对复杂,需要证书的颁发和更新。 可能会增加一些性能开销,特别是在加密和解密大量数据时。 适用于对数据传输安全性要求较高的环境,如金融、医疗等行业。 UDS方式 适用于本地通信,不经过网络,传输速度快。 不需要额外的网络开销,不容易受到网络攻击。 仅限于在同一台主机上的进程间通信,无法用于远程连接。 适用于本地通信的场景,如本地服务和应用之间的数据交换。 父主题: 连接数据库
  • 创建表 执行如下命令创建表。 1 2 3 4 5 6 7 openGauss=# CREATE TABLE customer_t1 ( c_customer_sk integer, c_customer_id char(5), c_first_name char(6), c_last_name char(8) ); 当结果显示为如下信息,则表示创建成功。 1 CREATE TABLE 其中c_customer_sk 、c_customer_id、c_first_name和c_last_name是表的字段名,integer、char(5)、char(6)和char(8)分别是这四个字段名称的类型。 默认情况下,新的数据库对象是创建在“$user”模式下的,例如刚刚新建的表。关于模式的更多信息请参考创建和管理schema。 除了创建的表以外,数据库还包含很多系统表。这些系统表包含数据库安装信息以及 GaussDB 上运行的各种查询和进程的信息。可以通过查询系统表来收集有关数据库的信息。请参见查看系统表。
  • DBE_PLDEVELOPER.gs_source 用于记录PL/SQL对象(存储过程、函数、包、包体)编译相关信息,具体内容见下列字段描述。 打开plsql_show_all_error参数后,会把成功或失败的PL/SQL对象编译信息记录在此表中,如果关闭plsql_show_all_error参数则只会将正确的编译相关信息插入此表中。 gs_source表中只记录用户定义的原始对象语句,即使用户使用了ALTER改变了创建的SCHEMA或者名字,gs_source表中的信息也不会发生变化,如果用户更改了对象的SCHEMA或者名字,会导致用户在删除对象后,对象仍存在于gs_source表中。 gs_source表中的owner指创建的用户,不是用户创建存储过程或者package时指定的用户。 数据库默认情况下没有对gs_source表中设置行级访问控制,如果用户想使用数据库隔离性特性,请参考以下语句,自行添加行级访问控制。 ALTER TABLE dbe_pldeveloper.gs_source ENABLE ROW LEVEL SECURITY; CREATE ROW LEVEL SECURITY POLICY all_data_rls ON dbe_pldeveloper.gs_source USING(owner = (select oid from pg_roles where rolname=current_user)); 表1 DBE_PLDEVELOPER.gs_source字段 名称 类型 描述 id oid 对象的ID。 owner bigint 对象创建用户ID。 nspid oid 对象的模式ID。 name name 对象名。 type text 对象类型(procedure/function/package/package body)。 status boolean 是否创建成功。 src text 对象创建的原始语句。 父主题: DBE_PLDEVELOPER
  • 参数说明 policy_name 审计策略名称,需要唯一,不可重复。 取值范围:字符串,要符合标识符命名规范。 DDL 指的是针对数据库执行如下操作时进行审计,目前支持:CREATE、ALTER、DROP、ANALYZE、COMMENT、GRANT、REVOKE、SET、SHOW、 LOG IN_ANY、LOGIN_FAILURE、LOGIN_SUCCESS、LOGOUT。 DML 指的是针对数据库执行如下操作时进行审计,目前支持:SELECT、COPY、DEALLOCATE、DELETE、EXECUTE、INSERT、PREPARE、REINDEX、TRUNCATE、UPDATE。 ALL 指的是上述DDL或DML中支持的所有对数据库的操作。当形式为{ DDL | ALL }时,ALL指所有DDL操作;当形式为{ DML | ALL }时,ALL指所有DML操作。 filter_type 指定审计策略的过滤信息,过滤类型包括:IP、ROLES、APP。 filter_value 指具体过滤信息内容。 policy_comments 用于记录策略相关的描述信息。 ENABLE|DISABLE 可以打开或关闭统一审计策略。若不指定ENABLE|DISABLE,语句默认为ENABLE。
  • 语法格式 ALTER AUDIT POLICY [ IF EXISTS ] policy_name { ADD | REMOVE } { [ privilege_audit_clause ] [ access_audit_clause ] }; ALTER AUDIT POLICY [ IF EXISTS ] policy_name MODIFY ( filter_group_clause ); ALTER AUDIT POLICY [ IF EXISTS ] policy_name DROP FILTER; ALTER AUDIT POLICY [ IF EXISTS ] policy_name COMMENTS policy_comments; ALTER AUDIT POLICY [ IF EXISTS ] policy_name { ENABLE | DISABLE }; privilege_audit_clause: 1 PRIVILEGES ({ DDL | ALL } [ ON LABEL ( resource_label_name [, ... ] ) ]) access_audit_clause: ACCESS ({ DML | ALL } [ ON LABEL ( resource_label_name [, ... ] ) ]) filter_group_clause 1 FILTER ON { filter_type ( filter_value [, ... ] ) } [, ... ]
  • 示例 --创建一个普通表。 openGauss=# CREATE TABLE my_table (c1 int, c2 int); --创建全量物化视图。 openGauss=# CREATE MATERIALIZED VIEW my_mv AS SELECT * FROM my_table; --基表写入数据。 openGauss=# INSERT INTO my_table VALUES(1,1),(2,2); --对全量物化视图my_mv进行全量刷新。 openGauss=# REFRESH MATERIALIZED VIEW my_mv; --删除全量物化视图。 openGauss=# DROP MATERIALIZED VIEW my_mv; --删除普通表my_table。 openGauss=# DROP TABLE my_table;
  • 参数说明 mv_name 要创建的物化视图的名称(可以被模式限定)。 取值范围:字符串,要符合标识符命名规范。 column_name 新物化视图中的一个列名。物化视图支持指定列,指定列需要和后面的查询语句结果的列数量保持一致;如果没有提供列名,会从查询的输出列名中获取列名。 取值范围:字符串,要符合标识符命名规范。 WITH ( storage_parameter [= value] [, ... ] ) 这个子句为表或索引指定一个可选的存储参数。详见CREATE TABLE。 TABLESPACE tablespace_name 指定新建物化视图所属表空间。如果没有声明,将使用默认表空间。 AS query 一个SELECT、TABLE 或者VALUES命令。这个查询将在一个安全受限的操作中运行。
  • PG_STAT_ACTIVITY_NG PG_STAT_ACTIVITY_NG视图显示在当前用户所属的逻辑数据库实例下,所有查询的相关信息。 表1 PG_STAT_ACTIVITY_NG字段 名称 类型 描述 datid oid 用户会话在后台连接到的数据库OID。 datname name 用户会话在后台连接到的数据库名称。 pid bigint 后台线程ID。 sessionid bigint 会话ID。 usesysid oid 登录该后台的用户OID。 usename name 登录该后台的用户名。 application_name text 连接到该后台的应用名。 client_addr inet 连接到该后台的客户端的IP地址。 如果此字段是null,它表明通过服务器机器上UNIX套接字连接客户端或者这是内部进程,如autovacuum。 client_hostname text 客户端的主机名,这个字段是通过client_addr的反向DNS查找得到。这个字段只有在启动log_hostname且使用IP连接时才非空。 client_port integer 客户端用于与后台通讯的TCP端口号,如果使用UNIX套接字,则为-1。 backend_start timestamp with time zone 该过程开始的时间,即当客户端连接服务器时。 xact_start timestamp with time zone 启动当前事务的时间,如果没有事务是活跃的,则为null。如果当前查询是首个事务,则这列等同于query_start列。 query_start timestamp with time zone 开始当前活跃查询的时间,如果state的值不是active,则这个值是上一个查询的开始时间。如果是存储过程、函数、PACKAGE,则查询的是第一个查询时间,不会随着存储过程内语句运行而改变。 state_change timestamp with time zone 上次状态改变的时间。 waiting boolean 如果后台当前正等待锁则为true。否则为false。 enqueue text 语句当前排队状态。可能值是: waiting in queue:表示语句在排队中。 空:表示语句正在运行。 state text 该后台当前总体状态。可能值是: active:后台正在执行一个查询。 idle:后台正在等待一个新的客户端命令。 idle in transaction:后台在事务中,但事务中没有语句在执行。 idle in transaction (aborted):后台在事务中,但事务中有语句执行失败。 fastpath function call:后台正在执行一个fast-path函数。 disabled:如果后台禁用track_activities,则报告这个状态。 说明: 普通用户只能查看到自己账户所对应的会话状态。即其他账户的state信息为空。例如以judy用户连接数据库后,在pg_stat_activity中查看到的普通用户joe及初始用户omm的state信息为空: SELECT datname, usename, usesysid, state,pid FROM pg_stat_activity_ng; datname | usename | usesysid | state | pid ----------+---------+----------+--------+----------------- testdb | omm | 10 | | 139968752121616 testdb | omm | 10 | | 139968903116560 db_tpcds | judy | 16398 | active | 139968391403280 testdb | omm | 10 | | 139968643069712 testdb | omm | 10 | | 139968680818448 testdb | joe | 16390 | | 139968563377936 (6 rows) resource_pool name 用户使用的资源池。 query_id bigint 查询语句的ID。 query text 该后台的最新查询。如果state状态是active(活跃的),此字段显示当前正在执行的查询。所有其他情况表示上一个查询。 node_group text 语句所属用户对应的逻辑数据库实例。 父主题: 系统视图
  • 注意事项 SQLGetDiagRec不发布自己的诊断记录。它用下列返回值来报告它自己的执行结果: SQL_SUCCESS:函数成功返回诊断信息。 SQL_SUCCESS_WITH_INFO:MessageText太小以致不能容纳所请求的诊断信息。没有诊断记录生成。 SQL_INVALID_HANDLE:由HandType和Handle所指出的句柄是不合法句柄。 SQL_ERROR:RecNumber小于等于0或BufferLength小于0。 如果调用ODBC函数返回SQL_ERROR或SQL_SUCCESS_WITH_INFO,可调用SQLGetDiagRec返回诊断信息值SQLSTATE,SQLSTATE值的如下表。 表2 SQLSTATE值 SQLSATATE 错误 描述 HY000 一般错误 未定义特定的SQLSTATE所产生的一个错误。 HY001 内存分配错误 驱动程序不能分配所需要的内存来支持函数的执行或完成。 HY008 取消操作 调用SQLCancel取消执行语句后,依然在StatementHandle上调用函数。 HY010 函数系列错误 在为执行中的所有数据参数或列发送数据前就调用了执行函数。 HY013 内存管理错误 不能处理函数调用,可能由当前内存条件差引起。 HYT01 连接超时 数据源响应请求之前,连接超时。 IM001 驱动程序不支持此函数 调用了StatementHandle相关的驱动程序不支持的函数。
  • 参数 表1 SQLGetDiagRec参数 关键字 参数说明 HandleType 句柄类型标识符,它说明诊断所要求的句柄类型。必须为下列值之一: SQL_HANDLE_ENV SQL_HANDLE_DBC SQL_HANDLE_STMT SQL_HANDLE_DESC Handle 诊断数据结构的句柄,其类型由HandleType来指出。如果HandleType是SQL_HANDLE_ENV,Handle可以是共享的或非共享的环境句柄。 RecNumber 指出应用从查找信息的状态记录。状态记录从1开始编号。 SQLState 输出参数:指向缓冲区的指针,该缓冲区存储着有关RecNumber的五字符的SQLSTATE码。 NativeErrorPtr 输出参数:指向缓冲区的指针,该缓冲区存储着本地的错误码。 MessageText 指向缓冲区的指针,该缓冲区存储着诊断信息文本串。 BufferLength MessageText的长度。 TextLengthPtr 输出参数:指向缓冲区的指针,返回MessageText中的字节总数。如果返回字节数大于BufferLength,则MessageText中的诊断信息文本被截断成BufferLength减去NULL结尾字符的长度。
  • 原型 1 2 3 4 5 6 7 8 SQLRETURN SQLGetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR *SQLState, SQLINTEGER *NativeErrorPtr, SQLCHAR *MessageText, SQLSMALLINT BufferLength SQLSMALLINT *TextLengthPtr);
  • 处理步骤 显式游标处理需六个PL/SQL步骤: 定义静态游标:就是定义一个游标名,以及与其相对应的SELECT语句。 定义静态游标的语法图,请参见图1。 图1 static_cursor_define::= 参数说明: cursor_name:定义的游标名。 parameter:游标参数,只能为输入参数,其格式为: parameter_name datatype select_statement:查询语句。 根据执行计划的不同,系统会自动判断该游标是否可以用于以倒序的方式检索数据行。 语法上支持parameter为输出参数,但其行为与输入参数保持一致。 定义动态游标:指ref游标,可以通过一组静态的SQL语句动态的打开游标。首先定义ref游标类型,然后定义该游标类型的游标变量,在打开游标时通过OPEN FOR动态绑定SELECT语句。 定义动态游标的语法图,请参见图2和图3。 图2 cursor_typename::= 图3 dynamic_cursor_define::= 打开静态游标:就是执行游标所对应的SELECT语句,将其查询结果放入工作区,并且指针指向工作区的首部,标识游标结果集合。如果游标查询语句中带有FOR UPDATE选项,OPEN语句还将锁定数据库表中游标结果集合对应的数据行。 打开静态游标的语法图,请参见图4。 图4 open_static_cursor::= 打开动态游标:可以通过OPEN FOR语句打开动态游标,动态绑定SQL语句。 打开动态游标的语法图,请参见图5。 图5 open_dynamic_cursor::= PL/SQL程序不能用OPEN语句重复打开一个游标。 提取游标数据:检索结果集合中的数据行,放入指定的输出变量中。 提取游标数据的语法图,请参见图6。 图6 fetch_cursor::= 对该记录进行处理。 继续处理,直到活动集合中没有记录。 关闭游标:当提取和处理完游标结果集合数据后,应及时关闭游标,以释放该游标所占用的系统资源,并使该游标的工作区变成无效,不能再使用FETCH语句获取其中数据。关闭后的游标可以使用OPEN语句重新打开。 关闭游标的语法图,请参见图7。 图7 close_cursor::=
  • 属性 游标的属性用于控制程序流程或者了解程序的状态。当运行DML语句时,PL/SQL打开一个内建游标并处理结果,游标是维护查询结果的内存中的一个区域,游标在运行DML语句时打开,完成后关闭。显式游标的属性为: %FOUND布尔型属性:当最近一次读记录时成功返回,则值为TRUE。 %NOTFOUND布尔型属性:与%FOUND相反。 %ISOPEN布尔型属性:当游标已打开时返回TRUE。 %ROWCOUNT数值型属性:返回已从游标中读取的记录数。
  • DBE_SQL_UTIL Schema DBE_SQL_UTIL模式存储了用于管理SQL PATCH的工具,包括创建、删除、开启、禁用SQL PATCH等系统函数。普通用户只有usage权限,没有create、alter、drop、comment等权限。 DBE_SQL_UTIL.create_hint_sql_patch DBE_SQL_UTIL.create_abort_sql_patch DBE_SQL_UTIL.drop_sql_patch DBE_SQL_UTIL.enable_sql_patch DBE_SQL_UTIL.disable_sql_patch DBE_SQL_UTIL.show_sql_patch 父主题: Schema
  • 配置设置函数 配置设置函数是可以用于查询以及修改运行时配置参数的函数。 current_setting(setting_name) 描述:当前的设置值。 返回值类型:text 备注:current_setting用于以查询形式获取setting_name的当前值。和SQL语句SHOW是等效的。比如: 1 2 3 4 5 6 openGauss=# SELECT current_setting('datestyle'); current_setting ----------------- ISO, MDY (1 row) set_working_grand_version_num_manually(tmp_version) 描述:通过切换授权版本号来更新和升级数据库的新特性。 返回值类型:void shell_in(type) 描述: 为shell类型输入路由(那些尚未填充的类型)。 返回值类型:void shell_out(type) 描述:为shell 类型输出路由(那些尚未填充的类型)。 返回值类型:void set_config(setting_name, new_value, is_local) 描述:设置参数并返回新值。 返回值类型:text 备注:set_config将参数setting_name设置为new_value。如果is_local为true,则new_value将只应用于当前事务。如果希望new_value应用于当前会话,可以使用false,和SQL语句SET是等效的。例如: 1 2 3 4 5 6 openGauss=# SELECT set_config('log_statement_stats', 'off', false); set_config ------------ off (1 row) 父主题: 系统管理函数
  • STATEMENT_COUNT 显示数据库当前节点当前时刻执行的五类语句(SELECT、INSERT、UPDATE、DELETE、MERGE INTO)和(DDL、DML、DCL)统计信息。 普通用户查询STATEMENT_COUNT视图仅能看到该用户当前节点的统计信息;管理员权限用户查询STATEMENT_COUNT视图则能看到所有用户当前节点的统计信息。当数据库或该节点重启时,计数将清零,并重新开始计数。计数以节点收到的查询数为准,数据库内部进行的查询。例如,数据库主节点收到一条查询,若该查询包含多条子查询,那将在数据库节点上进行相应次数的计数。 表1 STATEMENT_COUNT字段 名称 类型 描述 node_name text 节点名称。 user_name text 用户名。 select_count bigint select语句统计结果。 update_count bigint update语句统计结果。 insert_count bigint insert语句统计结果。 delete_count bigint delete语句统计结果。 mergeinto_count bigint merge into语句统计结果。 ddl_count bigint DDL语句的数量。 dml_count bigint DML语句的数量。 dcl_count bigint DCL语句的数量。 total_select_elapse bigint 总select的时间花费(单位:微秒)。 avg_select_elapse bigint 平均select的时间花费(单位:微秒)。 max_select_elapse bigint 最大select的时间花费(单位:微秒)。 min_select_elapse bigint 最小select的时间花费(单位:微秒)。 total_update_elapse bigint 总update的时间花费(单位:微秒)。 avg_update_elapse bigint 平均update的时间花费(单位:微秒)。 max_update_elapse bigint 最大update的时间花费(单位:微秒)。 min_update_elapse bigint 最小update的时间花费(单位:微秒)。 total_insert_elapse bigint 总insert的时间花费(单位:微秒)。 avg_insert_elapse bigint 平均insert的时间花费(单位:微秒)。 max_insert_elapse bigint 最大insert的时间花费(单位:微秒)。 min_insert_elapse bigint 最小insert的时间花费(单位:微秒)。 total_delete_elapse bigint 总delete的时间花费(单位:微秒)。 avg_delete_elapse bigint 平均delete的时间花费(单位:微秒)。 max_delete_elapse bigint 最大delete的时间花费(单位:微秒)。 min_delete_elapse bigint 最小delete的时间花费(单位:微秒)。 父主题: Query
  • 功能描述 显示SQL语句的执行计划。 执行计划将显示SQL语句所引用的表会采用什么样的扫描方式,如:简单的顺序扫描、索引扫描等。如果引用了多个表,执行计划还会显示用到的JOIN算法。 执行计划的最关键的部分是语句的预计执行开销,是指计划生成器估算执行该语句将花费多长的时间。 若指定了ANALYZE选项,则该语句会被执行,然后根据实际的运行结果显示统计数据,包括每个计划节点内时间总开销(毫秒为单位)和实际返回的总行数。这对于判断计划生成器的估计值是否接近实际非常有用。
  • 语法格式 显示SQL语句的执行计划,支持多种选项,对选项顺序无要求。 EXPLAIN [ ( option [, ...] ) ] statement; 其中选项option子句的语法为: ANALYZE [ boolean ] | ANALYSE [ boolean ] | VERBOSE [ boolean ] | COSTS [ boolean ] | CPU [ boolean ] | DETAIL [ boolean ] |(集中式不可用) NODES [ boolean ] |(集中式不可用) NUM_NODES [ boolean ] |(集中式不可用) BUFFERS [ boolean ] | TIMING [ boolean ] | PLAN [ boolean ] | FORMAT { TEXT | XML | JSON | YAML } 显示SQL语句的执行计划,且要按顺序给出选项。 EXPLAIN { [ ANALYZE | ANALYSE ] [ VERBOSE ] | PERFORMANCE } statement;
共100000条