2020-08-19 07:12发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我经过了很多线程来查找标准表与哈希表与已排序表之间的确切差异。 但是我仍然不清楚确切的区别。
1。 何时使用标准表vs哈希表vs排序表?
通过阅读ABAP官方文档,我想您知道它们之间的技术区别(标准是什么,排序是什么,哈希是什么)。
其余的只是成本问题。
通常,更多地考虑优化性能成本而不是内存成本。
基于此,请使用成本最低的解决方案:
GáborMárián值得回答!
一些实用指南:
标准表:
排序表:
哈希表:
通常,在读取/插入/删除时,散列 表应该胜过排序表(就读/删除而言,标准表要比两者都要差得多),但是根据数据的不同,可能存在实例,其中排序胜过散列。 如果行数少于1万或什至100,000(并且读取访问的数量没有不成比例的数字),那么当用户等待执行结束时,您甚至可能不会注意到它们之间的差异(比较 到标准表,您会注意到它是用户)。
因此,这全都取决于您的要求,并且,如果需要,您需要仔细计划实现,并可能使用不同的表对大型测试数据进行性能测试 类型。 但是,如果您的测试数据与生产数据有很大不同,则您的测试可能是"无用的"。
@ GáborMárián谢谢,我通过上面的链接,清楚地理解了两者之间的区别。
从健壮的编程角度(应该始终在性能考虑之前), 仅在确实需要时(例如CL_SALV_TABLE),才使用HASHED表作为首选项,然后使用SORTED表和STANDARD表。
在20年中,我从未遇到过 性能或内存 遵循此指南的问题。
@ GáborMárián感谢您提供此链接。 完美答案。 我要关闭此线程。
仅当您拥有用于所有频繁访问的完整键来访问它时,散列表才可以具有更好的性能。( 或有辅助键来支持其余的键)。 此外,哈希表仅带有唯一键和 no 不允许索引访问(通过主键)。 通常,这是确定是否可以使用它们的因素。
内存消耗也有不同的成本。
最重要的是:标准表不应用于频繁查找键的大量数据。 即使对它们进行了排序,也只有READ TABLE BINARY SEARCH可以利用该顺序(没有手动编码技巧就不能进行LOOP/MODIFY/DELETE)。对于具有大量数据( 最典型的情况是,当您仅追加行时,最后一次遍历整个表,仅此而已)–开发人员需要知道自己在特殊情况下的工作
最多设置5个标签!
通过阅读ABAP官方文档,我想您知道它们之间的技术区别(标准是什么,排序是什么,哈希是什么)。
其余的只是成本问题。
通常,更多地考虑优化性能成本而不是内存成本。
基于此,请使用成本最低的解决方案:
GáborMárián值得回答!
一些实用指南:
标准表:
排序表:
哈希表:
通常,在读取/插入/删除时,散列 表应该胜过排序表(就读/删除而言,标准表要比两者都要差得多),但是根据数据的不同,可能存在实例,其中排序胜过散列。 如果行数少于1万或什至100,000(并且读取访问的数量没有不成比例的数字),那么当用户等待执行结束时,您甚至可能不会注意到它们之间的差异(比较 到标准表,您会注意到它是用户)。
因此,这全都取决于您的要求,并且,如果需要,您需要仔细计划实现,并可能使用不同的表对大型测试数据进行性能测试 类型。 但是,如果您的测试数据与生产数据有很大不同,则您的测试可能是"无用的"。
@ GáborMárián谢谢,我通过上面的链接,清楚地理解了两者之间的区别。
从健壮的编程角度(应该始终在性能考虑之前), 仅在确实需要时(例如CL_SALV_TABLE),才使用HASHED表作为首选项,然后使用SORTED表和STANDARD表。
在20年中,我从未遇到过 性能或内存 遵循此指南的问题。
@ GáborMárián感谢您提供此链接。 完美答案。 我要关闭此线程。
仅当您拥有用于所有频繁访问的完整键来访问它时,散列表才可以具有更好的性能。( 或有辅助键来支持其余的键)。 此外,哈希表仅带有唯一键和 no 不允许索引访问(通过主键)。 通常,这是确定是否可以使用它们的因素。
内存消耗也有不同的成本。
最重要的是:标准表不应用于频繁查找键的大量数据。 即使对它们进行了排序,也只有READ TABLE BINARY SEARCH可以利用该顺序(没有手动编码技巧就不能进行LOOP/MODIFY/DELETE)。
对于具有大量数据( 最典型的情况是,当您仅追加行时,最后一次遍历整个表,仅此而已)–开发人员需要知道自己在特殊情况下的工作
一周热门 更多>