返回首页

gbase数据、南大通用产品文档:GBase8cPGReplicationConnection

更新日期:2024年09月11日

PGReplicationConnection 是GBase 8c 的JDBC 驱动中提供的一个API 接口类,用于执
行逻辑复制相关的功能。
PGReplicationConnection 的继承关系
PGReplicationConnection 是逻辑复制的接口,实现类是PGReplicationConnectionImpl,
该类位于org.postgresql.replication Package 中,该类的声明如下:
public class PGReplicationConnection implements PGReplicationConnection
构造方法
public PGReplicationConnection(BaseConnection connection)
常用方法
返回值
方法
描述
throws
ChainedCreate
ReplicationSlot
Builder
createReplicationSlot( )
用于创建逻辑复制槽
——
void
dropReplicationSlot(S
tring slotName)
用于删除逻辑复制槽
SQLException,IOE
xception
ChainedStream
Builder
replicationStream()
用户开启逻辑复制
——

说明
自定义脱敏是对字符列进行脱敏,用户可以设定三个参数,prefix 开始保留字符数
量,suffix 结尾保留字符数量以及padding 遮挡字符,如果实际内容长度小于等于
prefix+suffix+length(padding)长度,则直接显示padding 的字符内容。
示例

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
460
设定prefix 为3,suffix 为6,padding 字符“XXXX”。
gbase>
CREATE
TABLE
t_m_partial(context
VARCHAR(255)
MASKED
WITH(FUNCTION = 'PARTIAL(3,"XXXX",6)'));
Query OK, 0 rows affected (Elapsed: 00:00:00.24)
gbase> INSERT INTO t_m_partial VALUES('This is a book on the desk.'),('Hello');
Query OK, 2 rows affected (Elapsed: 00:00:00.08)
Records: 2
Duplicates: 0
Warnings: 0
gbase> SELECT * FROM t_m_partial;
+---------------+
| context
|
+---------------+
| ThiXXXX desk. |
| XXXX
|
+---------------+
2 rows in set (Elapsed: 00:00:00.02)
表4- 77 脱敏前数据
内容(varchar(255))
This is a book on the desk.
Hello
表4- 78 应用自定义脱敏后结果
内容(varchar(255))
ThiXXXX desk.
XXXX
注意
NULL 值不做脱敏处理,显示为NULL。

使用 SET OPTIMIZATION 语句来指定查询执行优化器花费多长时间来制定查询
计划或指定优化目标。SET OPTIMIZATION 语句是对 SQL 的 ANSI/ISO 标准
的扩展。
当您随同 GBase 8s 使用 DB-Access 时,SET OPTIMIZATION 语句的
ENVIRONMENT 选项可为当前会话中的所有语句定义通用的优化环境。
语法

用法
您可在任何时刻执行 SET OPTIMIZATION 语句。在当前的数据库服务器上跨数
据库地支持指定的优化级别。您指定的选项保持有效,直到您发出另一 SET
OPTIMIZATION 语句或直到程序结束为止。对于查询优化器为确定查询计划而花
费的时间量,缺省的数据库服务器优化级别为 HIGH。
在 GBase 8s 上,缺省的优化目标为 ALL_ROWS。虽然在某一时刻您仅可设置一
个选项,但您可发出两个 SET OPTIMIZATION 语句:一个指定优化器为确定查
询计划所花费的时间,一个指定查询的优化目标。
类似地,您可发出包括 ENVIRONMENT 选项的多个 SET OPTIMIZATION 语句
来指定用于优化查询的会话环境。在数据仓库应用中,适当的优化器环境可提升
在星型模式中表的连接查询的性能。保持优化器环境设置,直到另一 SET

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 1063
OPTIMIZATION ENVIRONMENT 语句覆盖它们为止,或直到会话结束为止。要
获取更多信息,请参阅 ENVIRONMENT 选项 主题。
示例
下列示例展示跨网络的优化。central 数据库(在 midstate 数据库服务器上)
将有 LOW 优化;western 数据库(在 rockies 数据库服务器上)将有 HIGH
优化。
CONNECT TO 'central@midstate';
SET OPTIMIZATION LOW;
SELECT * FROM customer;
CLOSE DATABASE;
CONNECT TO 'western@rockies';
SET OPTIMIZATION HIGH;
SELECT * FROM customer;
CLOSE DATABASE;
CONNECT TO 'wyoming@rockies';
SELECT * FROM customer;
在此,wyoming 数据库将有 HIGH 优化,因为它驻留在与 western 数据库相同
的数据库服务器上。该代码不需要为 wyoming 数据库重新指定优化级别,因为
wyoming 数据库像 western 数据库一样,驻留在 rockies 数据库服务器上。
下列示例指导 GBase 8s 优化器使用大部分时间来确定查询计划,然后尽可能返
回结果的前几行:
SET OPTIMIZATION LOW;
SET OPTIMIZATION FIRST_ROWS;
SELECT lname, fname, bonus
FROM sales_emp, sales
WHERE sales.empid = sales_emp.empid AND bonus > 5,000
ORDER BY bonus DESC;
HIGH 和 LOW 选项
HIGH 和 LOW 选项确定查询优化器花费多长时间来确定查询计划:

HIGH
此选项指导优化器使用复杂的基于成本的算法,测试所有合理的查询计划
选择并选择总体上最佳的选项。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 1064
对于大型连接,此算法可能招致超出预期的代价。在极端情况下,您可用
尽内存。

LOW
此选项指导优化器使用不很复杂的但更快速地设计优化算法,在每一阶段
基于最低成本路径。此算法在优化的早期阶段期间消除不大可能的连接策
略,并减少优化期间的时间和资源消耗。
当您指定优化的 LOW 级别时,数据库服务器可能不选择最佳的策略,因
为在该算法的早期阶段期间就消除了那种策略。
FIRST_ROWS 和 ALL_ROWS 选项
FIRST_ROWS 与 ALL_ROWS 关键字选项标识两个不同的查询优化目标:

FIRST_ROWS
此选项指导优化器尽快选择返回第一个符合条件的记录的查询计划,而忽
略可能对记录排序或创建哈希表的计划。

ALL_ROWS
此选项指导优化器尽快选择返回所有符合条件的记录的查询计划。
Inline 优化器伪指令
不选择这些 SET OPTIMIZATION 语句选项中的一种,您可以改为为单个查询指
定优化-目标伪指令作为紧跟在开启该查询或子查询的 SELECT 关键字之后的注
解。对于 DELETE、SELECT 或 UPDATE 语句中的查询,要获取更多关于
inline 优化器伪指令的语法和选项的信息,请参阅 优化程序伪指令。
外部的优化器伪指令
除了 SET OPTIMIZATION 语句可为当前会话中的查询指定的查询优化器伪指
令,或可跟在 SELECT 关键字之后的 inline 优化器伪指令之外,数据库服务器
还支持通过查询优化器影响执行路径的选择的第三种格式。
在 sysdirectives 系统目录表中,DBA 或用户 gbasedbt 可执行 SAVE
EXTERNAL DIRECTIVES 语句来注册外部的优化器伪指令,也称为外部的伪指
令。如果已启用了对外部伪指令的支持,则 GBase 8s 数据库服务器自动地将这

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 1065
些伪指令应用到与指定的 SELECT 语句相匹配的查询。SAVE EXTERNAL
DIRECTIVES 语句的 ACTIVE、INACTIVE 或 TEST ONLY 关键字选项分别启
用、禁用或限制外部的伪指令的作用域。
在 ONCONFIG 文件中设置 EXT_DIRECTIVES 配置参数为 1 或 2,且设置
IFX_EXTDIRECTIVES 客户端侧环境变量为 1,启用对外部的伪指令的支持。
独立于 EXT_DIRECTIVES 配置参数或 IFX_EXTDIRECTIVES 客户端侧设置,
为会话环境设置 SET ENVIRONMENT EXTDIRECTIVES 为 '1'、on 或 ON,
在当前的用户会话中启用外部的优化器伪指令,如果在 sysdirectives 表中注册任
何活动的外部伪指令的话。
SET EXPLAIN 输出文件显示外部的伪指令对查询是否生效。
要获取更多关于外部的优化器伪指令的信息,请参阅 为会话启用或禁用外部伪指
令。
优化 SPL 例程
对于保持不变或仅有轻微改变的 SPL 例程,当您创建该 SPL 例程时,您可能想
要设置 SET OPTIMIZATION 语句为 HIGH。此步骤为 SPL 例程存储最佳查询
计划。然后,在您执行 SPL 例程之前执行 SET OPTIMIZATION LOW 语句。然
后,SPL 例程使用最佳的查询计划并以更高的成本-效率比运行。
ENVIRONMENT 选项
使用 SET OPTIMIZATION 语句的 ENVIRONMENT 选项子句来为当前会话中的
所有查询定义通用的优化环境。对于有些数据仓库应用,在每一维度表的主键对
应于事实表的外键的数据库中,您在此子句中指定的会话环境设置可提升将事实
表与维度表连接的查询的性能。
GBase 8s 的 DB-Access 实用程序支持 SET OPTIMIZATION 语句的
ENVIRONMENT 选项子句。
语法

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 1066

元素
描述
限制
语法
table 表、视图或同义词
在数据库中必须存在
标识符
用法
ENVIRONMENT 选项子句可指定当前会话的优化环境的属性。保持这些属性直
到会话结束为止,或直到另一 SET OPTIMIZATION ENVIRONMENT 语句重置优
化属性为止。
下表描述每一星型连接伪指令并指明它如何影响优化器的查询计划。
关键字
作用
优化器行动
STAR_JOIN
'ENABLED'开启(与 'DISABLED'
关闭)对当前会话的星型连接支
持。当可能的时候,对于所有查
询,'FORCED' 设置偏爱星型执
行路径。
对于 'ENABLED',优化器考
虑星型连接执行计划的可能
性。对于 'FORCED',如果可
用的话,会选择星型计划。
对于 'DISABLED',不考虑星
型连接。
FACT
标识在星型模式中对应于事实表
的表。如果 AVOID_FACT 表也列
为 FACT,则 FACT 优先。
DEFAULT(或空字符串)为会话
关闭此环境设置。
仅将在 FACT 列表中的表考
虑作为星型连接优化中的事
实表。可罗列多个表作为
FACT。
AVOID_FACT
请不要使用该表(或在表的列表
中的任何表)作为星型连接优化
将 AVOID_FACT 列表中的表
考虑作为星型连接优化中的

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 1067
中的事实表。DEFAULT(或空字
符串)为会话关闭此环境设置。
事实表。可罗列多个表作为
AVOID_FACT。
NON_DIM
标识在星型模式中不对应于维度
表的表。DEFAULT(或空字符
串)为会话关闭此环境设置。
将在 NON_DIM 列表中的表不
考虑作为星型连接优化中的
维度表。可罗列多个表作为
NON_DIM。
跟在 STAR_JOIN 伪指令之后的任何 'ENABLED'、'DISABLED' 或
'FORCED' 关键字,或以逗号分隔的一个或多个指定优化器环境属性的设置的
table 标识符,必须通过单引号(')或双引号(")定界。如果以逗号分隔的多个
table 标识符的列表跟在 FACT、AVOID_FACT 或 NON_DIM 关键字之后,则请
不要在列表中的任何项之间包括空格。
当用户连接到数据库时,DBA 可使用 sysdbopen( ) 例程来定义生效的优化环
境。例如,要指定总是偏爱星型连接执行计划的优化器环境,sysdbopen( ) 例程
应包括这些 SQL 语句:
SET OPTIMIZATION ENVIRONMENT STAR_JOIN 'FORCED';
SET OPTIMIZATION ENVIRONMENT FACT 'table1,table2, ... tableN';
在此,其名称罗列在 FACT 关键字之后的表都应是事实表。
要获取更多关于可偏爱或避免星型连接执行计划的查询优化器伪指令的信息,请
参阅 星型连接伪指令。
要获取更多关于如何使用内建的 sysdbopen( ) 例程来为指定的用户、为 PUBLIC
组或为角色,在连接时刻定义会话环境的信息,请参阅 会话配置过程。