在实际的生产运行环境中,很多客户现场都看到开发人员和系统管理人员遇到很多有关于GBase 8s 数据库引起的性能问题,进而被多次问起如何进行GBase 8s 数据库性能调优,
WildFly配置连接GBase 8s
简介:
WildFly,原名 JBoss AS(JBoss Application Server) 或者 JBoss,是一套应用程序服务器,属于开源的企业级 Java 中间件软件,用于实现基于 SOA 架构的 Web 应用和服务。 WildFly 包含一组可独立运行的软件。
GBase 8s(南大通用安全数据库管理系统),是具有完全自主知识产权的数据库产品,产品符合SQL92、ODBC、OLEDB、JDBC、ADO.NET等国际数据库规范和开发接口,参照国际主流数据库产品定义,提供完备的数据存储和数据管理功能
GBase 8s提高SQL查询效率的一些方法
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
3.下面的查询也将导致全表扫描:
select id from t where name like '%abcd%';
若要提高效率,可以考虑全文检索。
Django操作GBase 8s数据库配置(Linux)
简介:
Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。
使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。
[GBase 8s 教程]GBase 8s 时间/日期函数和操作符
日期/时间操做符
下表演示了基本算术操作符的行为(+,-,*,/等):
类型1 | 操作符 | 类型2 | 返回类型 | 示例、说明 |
---|---|---|---|---|
DATE | - | DATE | INTERVAL DAY TO DAY | date('2020-05-08') - date('2020-05-01') 值为7 |
DATE | - | DATETIME | INTERVAL DAY TO DAY | date('2020-05-08') - datetime(2020-05-01 12:00:00) year to second 值为7 |
DATE | + - | INTERVAL DAY TO DAY | DATETIME | date('2020-05-08') + interval(10) day to day 值为2020-05-18 00:00:00 |
DATE | + - | NUMBER | DATE | date('2020-05-08') - 10 值为2020-04-28 |
DATETIME | - | DATE | INTERVAL | current year to second - date('2020-05-08')值为 0 20:46:57 当前时间为2020-05-08 20:46:57,将DATE类型转换为当天00:00:00 |
DATETIME | - | DATETIME | INTERVAL | current year to second - datetime(2020-05-01 12:58:58) year to second 值为 7 07:50:05 |
DATETIME | + - | INTERVAL | DATETIME | current year to second - interval(03:04:05) hour to second 值为2020-05-08 17:46:02 |
DATETIME | + - | NUMBER | DATETIME | current year to second + 2/24/60 值为2020-05-08 21:07:17 当前时间为2020-05-08 21:05:17,2/24/60 (2分钟) |
INTERVAL | + - | INTERVAL | INTERVAL | interval(03:04:05) hour to second + interval(3) hour to hour 值为 6:04:05 |
INTERVAL | * / | NUMBER | INTERVAL | interval(03:04:05) hour to second * 4 值为12:16:20 |
GBase 8s 系统表syscolumns字段说明
syscolumns表结构
系统表syscolumns保存的是表的字段信息。其包含的主要字段如下:
字段名称 | 字段类型 | 说明 |
---|---|---|
colname | VARCHAR(128) | 字段名称 |
tabid | INTEGER | 该字段所属的表的唯一ID |
colno | SMALLINT | 字段编号(表内) |
coltype | SMALLINT | 字段的数据类型(数字形式) |
collength | 对不同的数据类型有不同解释: 基本数值类型 可变长字符型 时间类型 定点数据类型 简单大对象 IDSSECURITYLABEL | 取决于数据类型 |
colmin | INTEGER | 最小字段长度(单位:字节) |
colmax | INTEGER | 最大字段长度(单位:字节) |
extended_id | INTEGER | 从系统表sysxtdtypes而来的数据类型编码 |
seclabelid | INTERGER | 总是NULL |
colattr | SMALLINT | 字段属性: HIDDEN: 1 - 隐藏字段 ROWVER: 2 - 行版本字段 ROW_CHKSUM: 4 - 行键字段 ER_CHECKVER: 8 - ER行版本字段 UPGRD1_COL:16 - ER自动主键字段 UPGRD2_COL: 32 - ER自动主键字段 UPGRD3_COL: 64 - ER自动主键字段 PK_NOTNULL: 128 - 主键非空 |
说明:在tabid和colno上建有复合主键。
GBase 8s获取第几周、第几天的函数
Oracle数据库中获取某个日期是当年的第几周、当月的第几周、当年的第几天均可以使用to_char来获取。
to_char(sysdate,'WW'); -- 当年第几周,以01-01 至 01-07为第一周
to_char(sysdate,'W'); -- 当月第几周,以01 至 07为第一周
to_char(sysdate,'DDD'); -- 当年第几天,以01-01 为 001
GBase 8s的to_char尚未实际该功能,因此需要使用自定义函数来实现,具体如下:
当年的第几周
drop function if exists weekofyear(datetime year to second);
-- day of year, first week is 01-01 ~ 01-07
create function weekofyear(p_datetime datetime year to second) returns int with (not variant);
return trunc(1 + (p_datetime - TRUNC(p_datetime, 'YEAR')) / 7);
end function;
GBase 8s 普通表转换成分片表的方式分析
GBase 8s中的普通表可以通过两种方式转换成分片表:通过init初始化为分片表;通过attach加入新建的分片表。
以下面的测试表t1为例:
create table t1(col1 int, col2 datetime year to second, col3 varchar(128)) in datadbs01;
create index ix_t1_col1 on t1(col1);
以下将以col2字段按月进行表分片。
GBase 8s 存储加密配置
1. 概述
存储加密一种数据库安全技术, 在数据库主程序启动时加载扩展插件,可以实现:
(1)在数据写入存储介质前将数据进行加密,实现数据的存储加密;
(2)在从存储介质加载数据到内存前进行数据解密,实现数据的解密使用。
GBase 8s使用存储加密必须要数据库初始化之前完成数据库参数及存储加密参数的配置。
本文基于数据库版本为GBase 8s V8.7 2.0.1a2_2,操作系统为CentOS 7.8编写。
GBase 8s 传输加密SSL配置
1. 概述
数据传输加密是指在网络中传输的数据需要加密传输,从而确保数据的机密性和完整性。
针对网络中传输的数据进行加密,焦点就在连接上。对于GBase 8s体系下,总共有如下连接场景需要进行数据传输加密:
1) 客户端连接数据库服务端,包含:csdk或jdbc连接GBase 8s。
2) 客户端连接到连接管理器,包含:csdk或jdbc连接连接管理器。无论连接管理器选择代理,还是重定向,客户端都会建立到连接管理器的连接。
3) 连接管理器连接数据库服务端。
4) 数据库服务端连接数据库服务端。对于高可用环境,数据库服务端之间是存在连接的。
对于连接而言,数据库服务端和连接管理器都存在组的概念。客户端可以选择连接数据库服务端的组或者连接管理器的组。经过调研,真正的连接不是建立在组上的。客户端代码,会根据sqlhosts的配置,在连接前选择合适数据库服务端或连接管理器进行连接。根据这个情况,对于组的连接不需要专门讨论。
本文基于数据库版本为GBase 8s V8.7 2.0.1a2_2,操作系统为CentOS 7.8编写。