ABAP中有三類內表,標準表,排序表和哈希表。
三種內表介紹
標準表的每壹行對應壹個邏輯索引-SY-TABIX,填充內表的時候,可以將數據附加在現有行
之後,也可以插入到指定的位置,程序對內表行的尋址操作可通過關鍵字或索引進行。在對表
進行插入刪除等操作時,各數據行在內存中的位置不變,系統僅重新排列各數據行的索引值。
排序表也有邏輯索引,不同的是排序表總是按其表關鍵字升序排列後再進行存儲,也就是在
內存中的位置發生改變。
哈希表沒有索引,只有關鍵字。系統用哈希算法管理表中的數據,因而其尋址壹個數據行的時間與表的行數無關。
表關鍵字 內表關鍵字在訪問內表以及排序時非常之關鍵,定義時通過With key來定義,這也是壹個可選項,即如果沒有顯式聲明,那麽內表中的非數值型欄位都為Key。 還有Unique的問題,即唯壹性關鍵字聲明,標準表不能使用此關鍵字,排序表可以用UNIQUE 或NON-UNIQUE,哈希表不能使用NON-UNIQUE,只能使用唯壹表關鍵字。
行訪問方式標準表排序表哈希表索引訪問允許允許不允許關鍵字訪問允許允許允許相同值關鍵字行可重復
可重復或不可重復不可重復推薦訪問方式
主要通過索引
主要通過關鍵字
只能通過關鍵字
對於壹個小於100行的內表,且很少使用關鍵字操作,則使用標準表沒有效率問題;數據量
比較巨大,切不存在重復行,只需使用關鍵字訪問的內表應定義為哈希表;排序表適用於運行
期內必須以某種排序形式出現的內表。