SQL性能调优

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】SQL中带自定义UDF查询速度很慢,单独执行SQL其他逻辑部分或者单独执行UDF部分速度很快,合在一起执行时间超过两者加起来的10倍。
【背景】需要通过表关联获取底表中的JSON列中的部分keyvalues,编写了自定义UDF实现功能(从一个JSON字段中获取部分keyvalues值,并返回一个新的JSON)
【业务影响】
【是否存算分离】否
【StarRocks版本】例如:3.1.4
【集群规模】例如:3fe+12be
【机器信息】CPU虚拟核/内存/网卡,例如:32C/256G/万兆
【联系方式】

对应异常SQL:
异常sql对比.sql (142.3 KB)

UDF 代码
package org.example.json_agg;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

public class JsonExtraction {
public final String evaluate(String json , String keys) {
JSONObject jsonObject = JSON.parseObject(json);
Map<String, String> res = new HashMap<>();
Arrays.stream(keys.split(",")).forEach(key -> {
String s = jsonObject.getString(key);
if (Objects.nonNull(s)) {
res.put(key, s);
}
});
return JSON.toJSONString(res);
}
}