我负责一个上传 ABAP 生成的平面文件的系统。我们每天都会从 SAP 的 HR 模块生成一个大文件(500,000 条记录),它会为每个人生成下一年的记录。如果一个人在某一天被轮班或计划在某一天休假,他们就会获得记录。
这项工作需要 8 多个小时才能运行,并且开始变得时间紧迫。我不是 ABAP 程序员,但在与程序员讨论这个问题时我很担心,因为他们一直在提到“循环”。
查看源代码,它只是嵌套循环后嵌套循环内的一堆单行选择。不仅它有大量的SELECT
我向程序员建议他们更多地使用 SQL,但他们坚持 SAP 认可的方式是使用循环而不是 SQL,并使用提供的 SAP 函数(即查找工作计划规则),并且使用 SQL 会更慢。
作为一名数据库程序员,我从不使用循环(游标),因为它们比 SQL 慢得多,而且游标通常是程序程序员在数据库上松懈的赠品。
我简直不敢相信将现有程序更改为比循环更频繁地使用 SQL 会减慢它的速度。有没有人有任何见解?如果需要,我可以提供更多信息。
看看谷歌,我猜我会让双方的人都说它更好。