关于大数据文件的处理优化的问题
我想把一个 17G 的集文件中的部分字段组合去重,然后拼接字符串,转换为 JSON 文件,我用游标处理,代码如下,跑了一晚上没跑完,麻烦帮我看看,我的代码有啥问题,可以优化不
"我想把一个 17G 的集文件中的部分字段组合去重,然后拼接字符串,转换为 JSON 文件,我用游标处理,代码如下,跑了一晚上没跑完,麻烦帮我看看,我的代码有啥问题,可以优化不 [图片]"
我想把一个 17G 的集文件中的部分字段组合去重,然后拼接字符串,转换为 JSON 文件,我用游标处理,代码如下,跑了一晚上没跑完,麻烦帮我看看,我的代码有啥问题,可以优化不
先用小点的数据量做个测试,看慢在哪一步。
前面 groupx 通常会比较慢,这个相当于大排序,要尝试一下缓存空间。
后面 B10 和 C11 写成一句就行了,SPL 不推荐用 for,一个循环函数就行了。字符串不断地加也会很慢。
缓存空间,如何处理
我觉得一个 for 有问题,比如 for A8,1000,下如何没有 for A10, 在 C11 中拼接字符串时只会从 1000 条中拼接第一条记录,剩下的 999 条不会拼接,所以我加了一个 for 把 1000 记录拼接完后,接着拼接下一个 1000 条,不过 我这代码有问题,我先改一下
groupx 有个 n 参数,SPL 会根据内存自动调整这个值,但不一定准,有时手工调整会更好,但也只能靠试了。调得不好,可能会非常慢。调得好了,也不会太快,这个大排序总规是比较慢的。一般会在数据组织设计时避免它,尽量设计成一次性的动作(也许现在就已经是一次性的数据准备,那慢就慢了,反正就一次)。
这个代码能执行到 A10(黄色了),说明 groupx 已经结束了,如果后面没搞完,那就是生成串和写文件比较慢(也可能两步都慢)。
前面的 for 代码有问题,我改了:
奇怪图片传不上来了
咋会只拼第一条
【程序设计】7.2 [字与时] 拆分合并
以及这本书的循环函数概念要理解一下,SPL 代码用到 for 的情况不算多,大多数循环运算都可以用循环函数解决。
具体你这个问题,大概是 A8.(…).concat(…),自己试一下吧