Chinaunix首页 | 论坛 | 博客
  • 博客访问: 369388
  • 博文数量: 68
  • 博客积分: 1435
  • 博客等级: 上尉
  • 技术积分: 690
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-06 22:35
文章分类

全部博文(68)

文章存档

2013年(1)

2012年(1)

2011年(4)

2010年(62)

我的朋友

分类: WINDOWS

2010-06-20 01:05:42

这次的程序用到了哈希表,在这里,也顺便总结一下ABAP三种内表的特点。

   ABAP中有三类内表,标准表,排序表和哈希表。

三种内表介绍

   标准表的每一行对应一个逻辑索引-SY-TABIX,填充内表的时候,可以将数据附加在现有行

之后,也可以插入到指定的位置,程序对内表行的寻址操作可通过关键字或索引进行。在对表

进行插入删除等操作时,各数据行在内存中的位置不变,系统仅重新排列各数据行的索引值。

   排序表也有逻辑索引,不同的是排序表总是按其表关键字升序排列后再进行存储,也就是在

内存中的位置发生改变。

   哈希表没有索引,只有关键字。系统用哈希算法管理表中的数据,因而其寻址一个数据行的时间与表的行数无关。

表关键字 内表关键字在访问内表以及排序时非常之关键,定义时通过With key来定义,这也是一个可选项,即如果没有显式声明,那么内表中的非数值型栏位都为Key。 还有Unique的问题,即唯一性关键字声明,标准表不能使用此关键字,排序表可以用UNIQUE 或NON-UNIQUE,哈希表不能使用NON-UNIQUE,只能使用唯一表关键字。

行访问方式

                    标准表                    排序表                 哈希表

索引访问             允许                       允许                 不允许

关键字访问           允许                       允许                  允许

相同值关键字行       可重复                   可重复或不可重复       不可重复 

推荐访问方式       主要通过索引               主要通过关键字        只能通过关键字  

 

具体到使用什么类型的内表     

    对于一个小于100行的内表,且很少使用关键字操作,则使用标准表没有效率问题;数据量

比较巨大,切不存在重复行,只需使用关键字访问的内表应定义为哈希表;排序表适用于运行

期内必须以某种排序形式出现的内表。

阅读(7369) | 评论(0) | 转发(0) |
0

上一篇:MBEWH表数据更新逻辑

下一篇:ABAP-内表

给主人留下些什么吧!~~