更新日期:2024年09月11日
条件列的函数调用开销较高,且无法使用智能索引,转化成like 操作后一方面可
能用上智能索引,另一方面,可以去除SQL Function 的调用,通常都能大大提升
性能。
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1332
1.
优化特性:
将过滤条件中的字符函数(目前只支持substr)转化为like 操作,以提升查
询性能。
如:
优化前:
SELECT * FROM t1 WHERE SUBSTR(a, 2, 2)='ab';
优化后
SELECT * FROM t1 WHERE a LIKE '_ab%';
2.
优化限制:
如果没有len 参数,不能优化:substr(a, 2)='ab'不能优化成a like '__ab%'(不等
价);
len 参数和字符串长度不相同的,不能优化:substr(a, 2, 3)='ab'不能优化成a
like '_ab%';
substr 的第一个参数必须是列名,否则不能优化:substr(a+1, 2, 3);
如果substr 使用的列不是字符列,则不能优化;
如果substr 的pos/len 参数为负数,不能优化;
目前只优化了等于操作,其它操作如in 暂时不做优化;
如果等号右边不是字符串的,不能优化,如:substr(a, 2, 3) = substr(b, 2, 3)。
3.
优化参数:
参数_gbase_optimizer_substr_to_like 来选择是否使用优化:0(不使用),1(默
认值,使用)。