返回首页

gbase数据、南大通用产品文档:GBase8a高效透明压缩

更新日期:2024年09月11日

高效透明压缩技术能够按照数据类型和数据分布规律自动选择最优压缩算
法,尽可能减少数据所占的存储空间,降低I/O 消耗,提升查询性能。支持库
级,表级,列级压缩选项,灵活平衡性能与压缩比的关系,而且压缩与解压缩
过程对用户是透明的。
从 I/O 资源消耗节约的角度来看,对 I/O 是主要瓶颈的分析系统而言,
相较于传统的行式数据库,高效透明压缩技术可以带来约一个数量级的性能提
升。

图 3-2 自适应透明压缩示意图
1) 压缩比可达到1:2 至1:20 甚至更优,远远高于行存储;
2) 节省50%-95%的存储空间,大大降低数据处理能耗;
3) 内置数十种不同等级的压缩算法,根据数据特征自动选择最优压缩算
法;

GBase 8a MPP Cluster 技术白皮书


- 10 -

南大通用数据技术股份有限公司
4) 压缩态下对I/O 要求大大降低,数据加载和查询性能明显提升。



sword GCITransCommit(
GCISvcCtx *svchp,
GCIError *errhp,
ub4 flags
);

提交SQL的执行动作。

参数
输入
/输出


svchp
输入
要提交的上下文句柄
errhp
输入
错误信息句柄,该接口调用失败时将错误码和错误信息写入
该句柄,可设置为空
flags
输入
保留参数, 目前不使用(仅用于和Oracle保持兼容)

如果执行成功, 则返回GCI_SUCCESS,否则返回GCI_ERROR。

decadd() 函数将两个 decimal 类型值相加。

语法
mint decadd(n1, n2, sum)
dec_t *n1;
dec_t *n2;
dec_t *sum;
n1
指向第一个运算对象的 decimal 结构的指针。

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 620 -

n2
指向第二个运算对象的 decimal 结构的指针。
sum
指向包含总和(n1 + n2)的 decimal 结构的指针。

用法
sum 可与 n1 或 n2 相同。

返回代码
0
操作成功。
-1200
导致溢出的操作。
-1201
导致下溢的操作。

示例

demo 目录中的文件 decadd.ec 包含下列样式程序。
/*
* decadd.ec *

The following program obtains the sum of two DECIMAL numbers.
*/
#include

EXEC SQL include decimal;
/* leading spaces will be ignored */
char string1[] = " 1000.6789";
char string2[] = "80";
char result[41];


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 621 -

main()
{
mint x;
dec_t num1, num2, sum;

printf("DECADD Sample ESQL Program running.\n\n");

if (x = deccvasc(string1, strlen(string1), &num1))
{
printf("Error %d in converting string1 to DECIMAL\n", x);
exit(1);
}
if (x = deccvasc(string2, strlen(string2), &num2))
{
printf("Error %d in converting string2 to DECIMAL\n", x);
exit(1);
}
if (x = decadd(&num1, &num2, ∑))
{
printf("Error %d in adding DECIMALs\n", x);
exit(1);
}
if (x = dectoasc(∑, result, sizeof(result), -1))
{
printf("Error %d in converting DECIMAL result to string\n", x);
exit(1);
}
result[40] = '\0';
/* display result */
printf("\t%s + %s = %s\n", string1, string2, result);
printf("\nDECADD Sample Program over.\n\n");
exit(0);
}

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 622 -

输出
DECADD Sample ESQL Program running.

1000.6789 + 80 = 1080.6789

DECADD Sample Program over.