默认分类,存储过程
只是一个默认分类

Linux下GO通过ODBC连接到GBase 8s数据库

操作系统:CentOS 7.8 64-bit
软件需求:
GBase 8s CSDK 2.0.1A2_2
unixODBC 2.3.1

1,系统环境确认

1.1 unixODBC版本

Linux下root用户通过rpm确认unixODBC、unixODBC-devel均已经安装,如下:

[root@a01 ~]# rpm -qa unixODBC unixODBC-devel
unixODBC-2.3.1-14.el7.x86_64
unixODBC-devel-2.3.1-14.el7.x86_64



阅读全文»

BenchMarkSQL 5.0测试GBase 8s

介绍

BenchmarkSQL5是一款经典的开源数据库测试工具,内嵌了TPCC测试脚本,可以对PostgreSQL、Firebird以及Oracle等数据库直接进行测试。由于其未对其它数据库(如GBase 8s)进行支持,需要对源码进行少量的修改,以增加对其它数据库的支持。它通过JDBC测试OLTP(联机事务处理, Online Transaction Processing)的TPC-C。

阅读全文»

GBase 8s性能调优流程

在实际的生产运行环境中,很多客户现场都看到开发人员和系统管理人员遇到很多有关于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-DATEINTERVAL DAY TO DAYdate('2020-05-08') - date('2020-05-01') 值为7
DATE-DATETIMEINTERVAL DAY TO DAYdate('2020-05-08') - datetime(2020-05-01 12:00:00) year to second 值为7
DATE+ -INTERVAL DAY TO DAYDATETIMEdate('2020-05-08') + interval(10) day to day 值为2020-05-18 00:00:00
DATE+ -NUMBERDATEdate('2020-05-08') - 10 值为2020-04-28
DATETIME-DATEINTERVALcurrent year to second - date('2020-05-08')值为 0 20:46:57
当前时间为2020-05-08 20:46:57,将DATE类型转换为当天00:00:00
DATETIME-DATETIMEINTERVALcurrent year to second - datetime(2020-05-01 12:58:58) year to second 值为 7 07:50:05
DATETIME+ -INTERVALDATETIMEcurrent year to second - interval(03:04:05) hour to second 值为2020-05-08 17:46:02
DATETIME+ -NUMBERDATETIMEcurrent year to second + 2/24/60 值为2020-05-08 21:07:17
当前时间为2020-05-08 21:05:17,2/24/60 (2分钟)
INTERVAL+ -INTERVALINTERVALinterval(03:04:05) hour to second + interval(3) hour to hour 值为 6:04:05
INTERVAL* /NUMBERINTERVALinterval(03:04:05) hour to second * 4 值为12:16:20


阅读全文»

GBase 8s 系统表syscolumns字段说明

syscolumns表结构

系统表syscolumns保存的是表的字段信息。其包含的主要字段如下:

字段名称字段类型说明
colnameVARCHAR(128)字段名称
tabidINTEGER该字段所属的表的唯一ID
colnoSMALLINT字段编号(表内)
coltypeSMALLINT字段的数据类型(数字形式)
collength对不同的数据类型有不同解释:
基本数值类型
可变长字符型
时间类型
定点数据类型
简单大对象
IDSSECURITYLABEL
取决于数据类型
colminINTEGER最小字段长度(单位:字节)
colmaxINTEGER最大字段长度(单位:字节)
extended_idINTEGER从系统表sysxtdtypes而来的数据类型编码
seclabelidINTERGER总是NULL
colattrSMALLINT字段属性:
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;

阅读全文»