返回首页

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

更新日期:2024年09月11日



sword GCIStringAssign (
GCIEnv *envhp,
GCIError *errhp,
const GCIString *rhs,
GCIString **lhs
);

将一个字符串分配给另一个字符串。 参数
输入
/输出


envhp
输入/输出
环境句柄
errhp
输入/输出
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上
rhs
输入
分配的右侧(源)
lhs
输入/输出
分配的左侧(目标)


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

OUTER JOIN 的WHERE 部分如果有OR 条件,
GBase 8a MPP Cluster 在执行时会
先做JOIN,后做WHERE 部分的过滤,性能太差,为解决or 运算以及“OUTER
JOIN+OR”的性能问题,引入or 优化机制。
1.
优化特性:
将含有OR 的一系列单表条件组织为一个复合条件,这样,从总体看,这个
复合条件与普通的单表条件没有区别,
即从最外层看,
相当于没有OR 条件,
这样也解决了OUTER JOIN + OR 的性能问题。
例如:
WHERE t1.a > 0 AND (t1.b > 0 OR t1.c > 0)
原有执行逻辑会将条件展开为只有最外层为or 条件,内层全为and 条件:

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1333
WHERE (t1.a > 0 AND t1.b > 0) OR(t1.a > 0 AND t1.c > 0)
在新的机制下,优化后的逻辑为:
WHERE t1.a > 0 AND filter_condtition(t1)
filter_condtition(t1) := t1.b > 0 OR t1.c > 0
优化前提是用OR 连接的一系列条件只能与一个表相关,这样的条件才能优
化为一个复合条件。
2.
优化限制:
对于与多个表相关的OR 条件,不能优化,因为实际应用中的绝大多数OR
条件都是只与一个表相关,如果是与多个表相关,那么用最原始的执行逻辑
就可以了。
3.
优化参数:
参数_gbase_optimizer_or_condition 控制是否使用新的OR 优化,
默认为开启。

| 3-MEDIUM
|