xzsfg6825 2017-09-20 02:18 采纳率: 0%
浏览 663

oracle 自定义聚合函数处理clob时间过长的问题如何解决

大神们,现有一问题,我自定义了一个类型和函数,用来聚合处理一个表中的某个字段的所有值,如下是类型图片说明图片说明
然后我又写了个存储过程用来执行这个函数,存储过程如下:图片说明其中我把TEST_TABLE_ORDER表中的position字段和strain字段的所有值都使用自定义的类型函数聚合存到了两个clob里面,进而存入了Test_Table_Info表中,这个过程和原理都没什么问题,存储过程可以正常执行,但是执行一次需要2分30秒的时间才能完成一次聚合,聚合的原数据存储形式为如下:
图片说明
聚合之后的数据存储形式为如下:图片说明其中position_clob和strain_clob字段都是clob数据类型,存储聚合之后的数据

目前我经过网上查资料,暂时这么解决字符串聚合问题的,但是用时太长了,无法满足项目要求,最好是把聚合存储和截取读取的时间控制在60秒或60秒之内,这样就可以了,所以再次想请教各位大神们这个该怎么优化啊?要是我这个无法优化的话,该换个啥方法呀?

  • 写回答

1条回答 默认 最新

  • lshen01 2023-03-16 10:29
    关注

    参考GPT和自己的思路:

    首先需要确定聚合存储和截取读取的具体时间是哪个环节造成的,是存储过程中的自定义聚合函数操作还是读取操作。其次可以尝试使用Oracle内置的聚合函数CONCAT来代替自定义的聚合函数,看是否可以提高效率。如果仍然无法满足项目需求,可以考虑使用分布式计算或者优化数据库结构等方法来提高性能。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog