ABAP 內表的一些知識點【學習筆記】
使用ABAP的人,不可能逃過內表,使用內表的人不可能逃過內表定義,使用內表定義的人,可能很多人不瞭解定義的幾種內表的區別,當然我也包括在內,所以趁此機會,學習一下。
一般情況下都是定義為標準內表,那麼有問題嗎?
1)內表的幾種形式
1.1 Standard Table(標準表),系統為該表的每一行資料生成一個邏輯索引。填充標準表時,可以將資料附加在所有行的最後,也可以插入到制定的位置,程式對內錶行的定址操作可以通過關鍵字或索引來進行(如果key值一致,返回的應該是順序第一次查到符合值的位置,存於SY-TABIX)。 在對表進行插入,刪除等操作時,各資料行在記憶體中的位置不變,系統僅重新排列各資料行的索引值。
1.2 Sorted Table (排序表),具有一個邏輯索引,不同之處是排序表總是按照其表關鍵字升序排序後再進行儲存,其訪問方式與標準表相同。
1.3 Hashed Table (雜湊表),沒有索引,只能通過關鍵字來訪問。所以資料的訪問與資料行的多少無關。
2)內表的定義語法
TYPES|DATA itab {TYPE|LIKE} tabkind
OF {linetype | lineobj}
[WITH key]
[INITIAL SIZE n].
在沒特別宣告時預設為 標準表。
2.1 表關鍵字 內表關鍵字在訪問內表以及排序時非常之關鍵,定義時通過With key來定義,這也是一個可選項,即如果沒有顯式宣告,那麼內表中的非數值型欄位都為Key。 還有Unique的問題,即唯一性關鍵字宣告,標準表不能使用此關鍵字,排序表可以用UNIQUE 或NON-UNIQUE,雜湊表不能使用NON-UNIQUE,只能使用唯一表關鍵字。
2.2 內表可初始大小,考慮記憶體的準備時間,所以對程式效率會有影響,(影響大小暫不明確),使用過程中如果不夠,會自動增加;開始分配的過大,也是會浪費記憶體的,如果初始為0或不指定大小,系統會預設使用8K空間,所以如果確認表比較小的話,最好制定大小。
2.3 occurs 是比較舊的定義方式,大家要朝前看。
3.我覺得最重要的也是最不好把握的就是:
具體到程式中應該使用什麼型別的表,則取決與其預計需要容納的資料行數和訪問頻率。 對於小於100行的內表,且很少使用關鍵字操作,則使用標準表沒有任何效率問題;資料量比較巨大的,且不存在重複行的,只需要使用關鍵字訪問的內表則應定義為雜湊表;排序表適用於執行期內必須以某種排序方式出現的內表。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/554557/viewspace-469953/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JavaScript學習筆記 - 值的型別的一些知識點JavaScript筆記型別
- React學習筆記知識點整理React筆記
- Html標籤知識點學習筆記HTML筆記
- Promise學習筆記(知識點 + 手寫Promise)Promise筆記
- EXTJs學習筆記(知識點總結)JS筆記
- Node基礎知識點--學習筆記(一)筆記
- 學習記錄 -- 知識點
- <react學習筆記(5)>知識點回顧(1)React筆記
- 基礎知識學習筆記筆記
- 機器學習學習筆記——基本知識機器學習筆記
- 《圖解HTTP》學習筆記(附帶WebSocket知識點)圖解HTTP筆記Web
- C++學習筆記,知識點+程式碼測試C++筆記
- python及pandas,numpy等知識點技巧點學習筆記Python筆記
- RxJava 學習筆記 -- 基礎知識RxJava筆記
- R學習-知識點記錄(Temp)
- numpy知識點筆記筆記
- 生物知識點筆記筆記
- 知識盲點 隨筆筆記筆記
- JAVA學習筆記及知識積累Java筆記
- Java學習筆記之----------Java基本知識Java筆記
- vue學習筆記1-基本知識Vue筆記
- linux基礎知識學習筆記Linux筆記
- 架構師課程學習筆記-第二週知識點架構筆記
- python學習-知識點記錄(Temp)Python
- abap學習筆記-SAP欄位與表的對應關係筆記
- MyBatis知識點學習MyBatis
- Java知識點學習Java
- 【筆記】動手學深度學習-預備知識筆記深度學習
- GO 學習筆記 《1. 基礎知識》Go筆記
- 虛擬化學習筆記-基礎知識筆記
- Java基礎知識學習筆記總結Java筆記
- R語言學習筆記:基礎知識R語言筆記
- PHP學習筆記(1)–基礎知識篇PHP筆記
- C++基礎知識學習筆記(1)C++筆記
- C++基礎知識學習筆記(3)C++筆記
- 【知識圖譜 趙軍 學習筆記】第二章 知識表示筆記
- 學習筆記 - 知識圖譜的符號表示方法筆記符號
- vueX基礎知識點筆記Vue筆記