2020-08-20 14:54发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
内部表的三种类型之间的差异:标准表,哈希表和排序表?
具有访问方法...
Mayank,你好
标准表:
对标准表的键访问使用顺序搜索。 访问所需的时间与内部表中的条目数成线性关系。
通常应使用索引操作访问标准表。
排序表:
该表始终在内部按其键排序。 因此,对已排序表的键访问可以使用二进制搜索。 如果键不是唯一的,则访问索引最低的条目。 访问所需的时间在对数上取决于内部表中条目的数量。
还允许对已排序的表进行索引访问。 通常,您应该使用其键访问已排序的表。
哈希表:
通过散列过程在内部管理表。 所有条目必须具有唯一键。 密钥访问所需的时间是恒定的,即它不依赖于内部表中条目的数量。
您不能使用索引访问哈希表。 访问必须使用通用键操作(SORT,LOOP等)。
奖励积分。
此致
Hemant
感谢您提供有关内部表类型的令人信服的答案
Hi Mayank,
标准表-最常用的表类型。 您可以随时对表进行排序和重新排序。 您可以在其中有重复的记录。 建议您在访问这些表时,先对它们进行排序,然后再通过BINARY SEARCH进行读取-以获得更好的性能。 当您写入该表时,记录将"追加"到表的末尾。 为了维持排序顺序(如果有的话),您必须再次使用SORT命令。
排序表-该表具有定义的排序顺序。 你不能求助。 您可以重复。 当您读取这些表时,SAP会自动尝试使用BINARY SEARCH。 因为您使用二进制搜索,所以检索时间与记录数成指数关系。 当您将记录写入此表时,将重新使用该表。
哈希表-该表具有已定义的键。 当您写入表格时,表格会使用哈希算法来识别记录的存储位置(请考虑一下是否将页面的位置写入书的索引中)。 当您读取该表时,系统将查找此"索引"并检索记录。 因此,检索时间是恒定的。 写入这种类型的表花费的时间最多,因为它需要计算哈希算法。
我个人通常使用标准表,因为它们是最灵活的表。 它使我可以随时随地使用我的数据。 我很少使用排序表。
我将哈希表用作"缓冲"表。 例如,假设我要检索许多销售代表的HR数据。 要获取HR数据,我需要使用FM'HR_READ_INFOTYPE'。 这需要时间。 因此,我要做的是读取哈希表,以查看是否已经获得数据(非常快)。 如果没有数据,请点击FM并下次更新哈希表。 通过以这种方式使用哈希表,我减少了需要拨打的FM呼叫的数量。
/people/harry.dietz/blog/2005/10/28/performance-improvement-hints-3-internal-table--fill-and-read
http://www.sap-img.com/abap/what-are-different-types-of-internal-tables-and-their-usage.htm
http://help.sap.com/saphelp_erp2005/ helpdata/zh-CN/fc/eb35de358411d1829f0000e829fbfe/frameset.htm
Priyanka。
您好 @Abdullah nematullah ,
请查看该线程的年龄,请不要响应较早的线程。
Hi
标准表将使用线性搜索。
排序的表将使用二进制搜索。
哈希表将使用哈希算法。
问候,
Sreeram
此 邮件受到审核。
标准版使用线性搜索
sorted 1st以其主键的sorted格式保存内部表
使用哈希算法
最多设置5个标签!
Mayank,你好
标准表:
对标准表的键访问使用顺序搜索。 访问所需的时间与内部表中的条目数成线性关系。
通常应使用索引操作访问标准表。
排序表:
该表始终在内部按其键排序。 因此,对已排序表的键访问可以使用二进制搜索。 如果键不是唯一的,则访问索引最低的条目。 访问所需的时间在对数上取决于内部表中条目的数量。
还允许对已排序的表进行索引访问。 通常,您应该使用其键访问已排序的表。
哈希表:
通过散列过程在内部管理表。 所有条目必须具有唯一键。 密钥访问所需的时间是恒定的,即它不依赖于内部表中条目的数量。
您不能使用索引访问哈希表。 访问必须使用通用键操作(SORT,LOOP等)。
奖励积分。
此致
Hemant
感谢您提供有关内部表类型的令人信服的答案
Hi Mayank,
标准表-最常用的表类型。 您可以随时对表进行排序和重新排序。 您可以在其中有重复的记录。 建议您在访问这些表时,先对它们进行排序,然后再通过BINARY SEARCH进行读取-以获得更好的性能。 当您写入该表时,记录将"追加"到表的末尾。 为了维持排序顺序(如果有的话),您必须再次使用SORT命令。
排序表-该表具有定义的排序顺序。 你不能求助。 您可以重复。 当您读取这些表时,SAP会自动尝试使用BINARY SEARCH。 因为您使用二进制搜索,所以检索时间与记录数成指数关系。 当您将记录写入此表时,将重新使用该表。
哈希表-该表具有已定义的键。 当您写入表格时,表格会使用哈希算法来识别记录的存储位置(请考虑一下是否将页面的位置写入书的索引中)。 当您读取该表时,系统将查找此"索引"并检索记录。 因此,检索时间是恒定的。 写入这种类型的表花费的时间最多,因为它需要计算哈希算法。
我个人通常使用标准表,因为它们是最灵活的表。 它使我可以随时随地使用我的数据。 我很少使用排序表。
我将哈希表用作"缓冲"表。 例如,假设我要检索许多销售代表的HR数据。 要获取HR数据,我需要使用FM'HR_READ_INFOTYPE'。 这需要时间。 因此,我要做的是读取哈希表,以查看是否已经获得数据(非常快)。 如果没有数据,请点击FM并下次更新哈希表。 通过以这种方式使用哈希表,我减少了需要拨打的FM呼叫的数量。
/people/harry.dietz/blog/2005/10/28/performance-improvement-hints-3-internal-table--fill-and-read
http://www.sap-img.com/abap/what-are-different-types-of-internal-tables-and-their-usage.htm
http://help.sap.com/saphelp_erp2005/ helpdata/zh-CN/fc/eb35de358411d1829f0000e829fbfe/frameset.htm
此致
Priyanka。
您好 @Abdullah nematullah ,
请查看该线程的年龄,请不要响应较早的线程。
Hi
标准表将使用线性搜索。
排序的表将使用二进制搜索。
哈希表将使用哈希算法。
问候,
Sreeram
此 邮件受到审核。
标准版使用线性搜索
sorted 1st以其主键的sorted格式保存内部表
使用哈希算法
一周热门 更多>