自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 问答 (9)
  • 收藏
  • 关注

原创 GBase 8c 表自动分析

autovacuum设置为on时,系统定时启动autovacuum线程来进行表自动分析,如果表中数据量发生较大变化达到阈值时,会触发表自动分析,即autoanalyze。GBase 8c提供GUC参数autovacuum,用于控制数据库自动清理功能的启动。...

2022-08-26 17:42:32 244

原创 GBase 8c 分析表

执行计划生成器需要使用表的统计信息,以生成最有效的查询执行计划,提高查询性能。因此数据导入完成后,建议执行ANALYZE语句生成最新的表统计信息。统计结果存储在系统表PG_STATISTIC中。ANALYZE支持的表类型有行/列存表。ANALYZE同时也支持对本地表的指定列进行信息统计。...

2022-08-26 17:41:04 192

原创 GBase 8c 通过创建临时表并截断原始表来执行深层复制

与使用永久表相比,使用临时表可以提高性能,但存在丢失数据的风险。如果数据丢失是不可接受的,请使用永久表。该方法使用CREATE TEMP TABLE ... AS语句创建原始表的临时表,然后截断原始表并从临时表填充原始表,以完成原始表的深层复制。使用CREATE TEMP TABLE AS语句创建表customer_t的临时表副本customer_t_temp。在新建表需要保留父表的主键属性,或如果父表具有依赖项的情况下,建议使用此方法。删除临时表副本customer_t_temp。...

2022-08-26 17:38:41 461

原创 GBase 8c 使用CREATE TABLE LIKE深度复制

该方法使用CREATE TABLE LIKE语句创建原始表的副本,将原始表的数据填充至副本并重命名副本,完成原始表的复制。该方法不继承父表的主键属性,可以使用ALTER TABLE语句来添加主键属性。使用CREATE TABLE LIKE语句创建表customer_t的副本customer_t_copy。使用INSERT INTO…SELECT语句向副本填充原始表中的数据。使用ALTER TABLE语句将副本重命名为原始表名称。...

2022-08-26 17:37:09 746

原创 GBase 8c使用CREATE TABLE深度复制

该方法使用CREATE TABLE语句创建原始表的副本,将原始表的数据填充至副本并重命名副本,以完成原始表的复制。使用CREATE TABLE语句创建表customer_t的副本customer_t_copy。使用INSERT INTO…SELECT语句向副本填充原始表中的数据。使用ALTER TABLE语句将副本重命名为原始表名称。执行以下步骤对表customer_t进行深层复制。在创建新表时,可以指定表以及列属性,比如主键。...

2022-08-26 17:35:48 432

原创 GBase 8c 深度复制

数据导入后,如果需要修改表的分区键、或者将行存表改列存、添加PCK(Partial Cluster Key)约束等场景下,可以使用深层复制的方式对表进行调整。深层复制是指重新创建表,然后使用批量插入填充表的过程。GBase 8c数据库提供了三种深层复制的方式:使用 CREATE TABLE 执行深层复制、使用 CREATE TABLE LIKE执行深层复制、通过创建临时表并截断原始表来执行深层复制。...

2022-08-26 17:34:58 266

原创 GBase 8c 数据导入-gs_restore命令导入

gs_restore是GBase 8c数据库提供的与gs_dump配套的导入工具。通过该工具,可将gs_dump导出的文件导入至数据库。gs_restore支持导入的文件格式包含自定义归档格式、目录归档格式和tar归档格式。如果未指定导入数据库,则创建包含重建数据库所需的SQL语句脚本,并将其写入至文件或者标准输出。如果指定了数据库,则数据将被导入到指定的数据库中。gs_restore工具在导入时,允许用户选择需要导入的内容,并支持在数据导入前对等待导入的内容进行排序。...

2022-08-26 17:21:58 674

原创 GBase 8c 数据导入-gsql元命令导入

在gsql客户端登录数据库成功后,可以使用该命令进行数据的导入/导出操作。但是与SQL的COPY命令不同,该命令读取/ 写入的文件是本地文件,而非数据库服务器端文件;所以,要操作的文件的可访问性、权限等,都是受限于本地用户的权限。说明:\COPY只适合小批量、格式良好的数据导入场景,不会对非法字符做预处理,也无容错能力,无法适用于含有异常数据的场景。GBase 8c数据库中,gsql工具提供了元命令\copy进行数据导入。\copy命令格式以及说明参见表1。\copy 元命令说明。...

2022-08-26 09:55:34 713

原创 GBase 8c 数据导入-错误处理

2. 对由于转义字符导致的错误,需检查报错的行中是否含有转义字符(\)。若存在,建议在创建外表时,将参数“noescaping”(是否不对'\'和后面的字符进行转义)设置为true。由于存在转义字符“\”,分隔符“|”被转义为第二个字段的字段值, 导致第三个字段值缺失。对于TEXT格式的数据源文件,由于转义字符(\)导致delimiter(分隔符)错位或者quote(引号字符) 错位造成的错误。通过设置关键字DISTINCT,从SELECT 结果集中删除重复的行,保证导入的每一行都是唯一 的。...

2022-08-26 09:53:15 688

原创 GBase 8c 数据导入-数据格式错误

在创建外表时,通过设置参数LOG INTO error_table_name,将数据导入过程中出现的数据格式错误信息,写入指定的错误信息表error_table_name中。可以通过以下SQL命令,查询详细错误信息。数据导入过程中发生的错误,一般分为数据格式错误和非数据格式错误。在数据源文件中,出现数据格式错误的原始记录。在数据源文件中,出现数据格式错误的行号。出现数据格式错误的数据源文件名。错误信息表结构如表1所示。出现数据格式错误的时间。...

2022-08-26 09:46:48 278

原创 GBase 8c数据导入(三)

用户可以通过执行COPY FROM STDIN语句,直接向GBase 8c数据库中写入数据。

2022-08-25 20:05:01 185

原创 GBase 8c数据导入(二)

GBase 8c数据库支持完整的数据库事务级别的增删改操作。INSERT是最简单的一种数据写入方式。这种方式适合数据写入量不大,并发度不高的场景。通过INSERT语句直接写入数据。

2022-08-25 20:03:17 806

原创 GBase 8c 数据导入(一)

COPY只适合小批量、格式良好的数据导入,不会对非法字符做预处理,也无容错能力,无法适用于含有异常数据的场景。GBase 8c数据库提供了灵活的数据导入方式:INSERT、COPY以及gsql元命令\copy。各方式具有不同的特点,具体请参见表1。通过JDBC驱动的CopyManager接口,从其他数据库向GBase 8c数据库写入数据。与直接使用COPY语句不同,该命令读取/写入的文件只能是gsql客户端所在机器上的本地文件。通过COPY FROM STDIN语句,直接向GBase 8c写入数据。...

2022-08-25 19:58:33 544

原创 GBase 8c 基于JDBC开发(三)

在创建数据库连接之后,才能使用它来执行SQL语句操作数据。JDBC提供了三个方法,用于创建数据库连接。

2022-08-24 11:26:48 175

原创 GBase 8c 基于JDBC开发(二)

若未配置JAVA_HOME,则在变量值的最前面加上 JAVA安装的全路径: C:\Program Files\Java\jdk1.8.0_131\bin;1、DOS窗口输入“java -version”,查看JDK版本,确认为JDK1.8版本。如果未安装JDK,请从官方网站下载安装包并安装。若配置了JAVA_HOME,则在变量值的最前面加上: %JAVA_HOME%\bin;在“环境变量”页面上,“系统变量”区域单击“新建”或“编辑”配置系统变量。若不存在,则单击“新建”。若存在,则单击“编辑”。

2022-08-24 10:26:08 156

原创 GBase 8c 基于JDBC开发(一)

JDBC(Java Database Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问接口,应用程序可基于它操作数据。驱动包与PostgreSQL保持兼容,其中类名、类结构与PostgreSQL驱动完全一致,曾经运行于PostgreSQL的应用程序可以直接移植到当前系统使用。由于GBase 8c在JDBC的使用上与PG的使用方法保持兼容,所以同时在同一进程内使用两个JDBC驱动的时候,可能会类名冲突。

2022-08-24 10:18:42 636

原创 GBase 8c 约束设计(三)

唯一约束主键约束检查约束

2022-08-24 10:07:06 50

原创 GBase 8c 约束设计(二)

Partial Cluster Key(局部聚簇,简称PCK)是列存表的一种局部聚簇技术,在GBase 8c中,使用PCK可以通过min/max稀疏索引实现事实表快速过滤扫描。【建议】在查询中的简单表达式过滤条件上创建PCK。这种过滤条件一般形如col op const,其中col为列名,op为操作符=、>、>=、

2022-08-24 10:05:55 219

原创 GBase 8c 约束设计

DEFAULT和NULL约束

2022-08-24 10:03:33 41

原创 GBase 8c 字段设计-选择数据类型

在字段设计时,基于查询效率的考虑,一般遵循以下原则:

2022-08-24 10:01:33 144

原创 GBase 8c 表设计-选择分区方案

表数据通过范围进行分区,超出范围的会自动根据间隔创建新的分区。表数据通过指定列按照具体值进行分区。表数据通过Hash散列方式进行分区。表 1 表的分区方式及使用场景。表数据通过范围进行分区。

2022-08-24 10:00:37 715 1

转载 GBase 8c 表设计-选择存储方案

【建议】表的存储类型是表定义设计的第一步,客户业务类型是决定表的存储类型的主要因素,表存储类型的选择依据请参考表1。表1 表的存储类型及场景。

2022-08-24 09:58:52 45

转载 GBase 8c 表设计原则

总体上讲,良好的表设计需要遵循以下原则:

2022-08-24 09:56:47 59

转载 GBase 8c 数据库和模式设计建议(三)

Schema 设计建议

2022-08-23 20:45:02 60

转载 GBase 8c 数据库和模式设计建议(二)

Database 设计建议

2022-08-23 20:43:55 189

转载 GBase 8c 数据库和模式设计建议(一)

GBase 8c中可以使用Database和Schema实现业务的隔离,区别在于Database的隔离更加彻底,各个Database之间共享资源极少,可实现连接隔离、权限隔离等, Database之间无法直接互访。Schema隔离的方式共用资源较多,可以通过grant与revoke语法便捷地控制不同用户对各Schema及其下属对象的权限。

2022-08-23 20:42:48 107

转载 GBase 8c 序列注意事项

除了为序列指定了cache,方法二所实现的功能基本与方法一类似。但是一旦定义cache,序列将会产生空洞(序列值为不连贯的数值,如:1.4.5),并且不能保序。另外为某序列指定从属列后,该列删除,对应的sequence也会被删除。虽然数据库并不限制序列只能为一列产生默认值,但最好不要多列共用同一个序列。当前版本只支持在定义表的时候指定自增列,或者指定某列的默认值为nextval('seqname'), 不支持在已有表中增加自增列或者增加默认值为nextval('seqname')的列。

2022-08-23 20:41:34 108

转载 GBase 8c 序列管理操作示例

方法二: 创建序列,并通过nextval('sequence_name')函数指定为某一字段的默认值。将序列和一个表的指定字段进行关联。这样,在删除那个字段或其所在表的时候会自动删除已关联的序列。方法一: 声明字段类型为序列整型来定义标识符字段。

2022-08-23 20:40:13 665

转载 【转载】GBase 8c 序列简介

序列Sequence是用来产生唯一整数的数据库对象。序列的值是按照一定规则自增的整数。因为自增所以不重复,因此说Sequence具有唯一标识性。这也是Sequence常被用作主键的原因。

2022-08-23 20:36:52 313

转载 GBase 8c 视图操作示例

执行如下命令查询MyView视图的详细信息。执行如下命令创建新视图MyView。执行如下命令查询MyView视图。执行如下命令删除MyView视图。

2022-08-23 20:35:03 355

原创 GBase 8c 视图简介

数据库中仅存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。若基本表中的数据发生变化,从视图中查询出的数据也随之改变。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中用户感兴趣的数据及变化。视图每次被引用的时候都会运行一次。注意的是:CREATE VIEW中的OR REPLACE可有可无,当存在OR REPLACE时,表示若以前存在该视图就进行替换。当用户对数据库中的一张或者多张表的某些字段的组合感兴趣,而又不想每次键入这些查询时,用户就可以定义一个视图,以便解决这个问题。

2022-08-23 20:32:01 305

转载 【转载】GBase 8c 创建特殊索引

假如用户需要经常查询表tpcds.customer_address_bak中ca_address_sk是5050, 且ca_street_number小于1000的记录,使用以下命令进行查询。使用以下命令在字段ca_address_sk和ca_street_number上定义一个多字段索引。在表tpcds.ship_mode_t1上的SM_SHIP_MODE_SK字段上创建唯一索引。如果只需要查询ca_address_sk为5050的记录,可以创建部分索引来提升查询效率。

2022-08-23 20:28:37 302

原创 GBase 8c 创建普通索引

通常,数据库系统需要逐行扫描整个tpcds.customer_address_bak表以寻找所有匹配的元组。如果表tpcds.customer_address_bak的规模很大,但满足WHERE条件的只有少数几个(可能是零个或一个),则这种顺序扫描的性能就比较差。如果让数据库系统在ca_address_sk属性上维护一个索引,用于快速定位匹配的元组,则数据库系统只需要在搜索树上查找少数的几层就可以找到匹配的元组,这将会大大提高数据查询的性能。使用以下命令创建索引。

2022-08-23 20:24:32 773

原创 mysql主从复制(一主一从)

mysql主从复制

2022-08-03 09:28:01 132

原创 mycat的安装

mycat 安装

2022-08-02 17:34:18 1088

转载 GBase 8c 使用之执行预编译语句

预编译语句是只编译和优化一次,然后可以通过设置不同的参数值多次使用。由于已经预先编译好,后续使用会减少执行时间。因此,如果多次执行一条语句,请选择使用预编译语句。(3)调用PreparedStatement的executeUpdate方法执行预编译SQL语句。(1)调用Connection的prepareStatement方法创建预编译语句对象。(4)调用PreparedStatement的close方法关闭预编译语句对象。(2)调用PreparedStatement的setShort设置参数。...

2022-07-26 20:29:44 124

转载 GBase 8c 使用之执行SQL语句

数据库中收到的一次执行请求(不在事务块中),如果含有多条语句,将会被打包成一个事务,事务块中不支持vacuum操作。如果其中有一个语句失败,那么整个请求都将会被回滚。使用Statement执行多语句时应以“;”作为各语句间的分隔符,存储过程、函数、匿名块不支持多语句执行。(1)调用Connection的createStatement方法创建语句对象。(2)调用Statement的executeUpdate方法执行SQL语句。“/”可用作创建单个存储过程、函数、匿名块的结束符。(3)关闭语句对象。...

2022-07-26 20:29:07 731

转载 GBase 8c 数据库对象位置函数

备注pg_relation_filenode接受一个表、索引、序列或压缩表的OID或者名称,并且返回当前分配给它的“filenode”数。对大多数表来说,结果和pg_class.relfilenode相同,但对确定的系统目录来说,relfilenode为0而且这个函数必须用来获取正确的值。备注pg_relation_filepath类似于pg_relation_filenode,但是它返回关系的整个文件路径名(相对于GBase8c的数据目录PGDATA)。描述指定关系的文件路径名。...

2022-07-26 20:21:19 99

转载 GBase 8c 安全函数

描述根据decrypttype,以keystr为密钥对decrypt字符串进行解密,返回解密后的字符串。解密使用的decrypttype及keystr必须保证与加密时使用的encrypttype及keystr一致才能正常解密。版权声明本文为CSDN博主「TYD123013」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。查看上一次登录认证通过的日期、时间和IP等信息。查看上一次登录认证失败的日期、时间和IP等信息。描述查看登录用户的登录信息。返回值类型int32。...

2022-07-26 20:20:36 190

转载 GBase 8c 实践之导入最佳实践

如果从指定表插入数据到当前表,例如在数据库中创建了一个表customer_t1的备份表customer_t2,现在需要将表customer_t1中的数据插入到表customer_t2中,则可以执行如下命令。与COPY命令相比较,\copy命令不是读取或写入指定文件的服务器,而是直接读取或写入文件。插入如果不能使用copy命令,而您需要进行sql插入,可以根据情况使用多行插入。\COPY只适合小批量,格式良好的数据导入,不会对非法字符做预处理,也无容错能力,无法适用于含有异常数据的场景。...

2022-07-26 20:14:15 681

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除