Unterschied zwischen Standard-Tabellen und Hash-Tabellen Abap
Können Sie bitte geben Sie mir eine klare Erklärung über den Unterschied zwischen der Verwendung von "standard Tabelle", "Hash-Tabellen", oder einfach "Tisch". Auch was ist die Bedeutung des "initial size 0"?
Referenz bitte haben Sie einen Blick in code unten..
it_c01_d006_raw TYPE STANDARD TABLE OF /bic/ac01_d00600
INITIAL SIZE 0,
it_c01_d006 TYPE HASHED TABLE OF /bic/ac01_d00600
WITH UNIQUE KEY /bic/cemployee /bic/cdatetype,
it_c01_d002 TYPE TABLE OF /bic/ac01_d00200.
InformationsquelleAutor Siva | 2012-02-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sinne des
TYPE STANDARD TABLE OF
undTYPE TABLE OF
ist genau das gleiche,STANDARD
wird impliziert, wenn nichts anderes angegeben ist. Aber im OO-Kontext-Sie werden jetzt erwartet, um zu erklären, interne Tabellen voll und Sie wäre nicht in der Lage zu verlassen, die für dieSTANDARD
hinaus. In diesem Fall ist es nur ein Lager-standard-Tabelle zugegriffen werden kann durch das Lesen gemäß der Tabelle-index, oder-Taste, wenn Sie sortiert haben, manuell in die Tabelle.Einer Tabelle von
TYPE HASHED TABLE
erstellt eine interne Tabelle, die vertreten ist, mit einer internen HASH-Algorithmus, so dass Lesezugriffe auf die Tabelle, wo die Kosten (annähernd) unabhängig von der Größe der Tabelle. Mit dieser Art von Tisch ist gut, wenn Sie große Daten-sets, die viel liest, aber vergleichsweise wenige schreibt. Bei der Deklaration einer hash-Tabelle, die Sie haben, um auch erklärenUNIQUE KEY
, da der HASH-Algorithmus ist abhängig von dieser.INITIAL SIZE 0
ist auch eine redundante Verwendung von code - es bedeutet, dass der Speicher-Zuweisung auftreten in Bausteine. (Ich bin mir nicht sicher, ob diese Größe ist vordefiniert oder konfigurierbar-BASIS), aber die ANFÄNGLICHE GRÖßE ist 0 der Standardwert. Wenn Sie wollte Speicherreservierung geschehen in Gruppen zu 10-mal die Anzahl der Zeilen in der internen Tabelle, die Sie benutzt haben, als die ANFÄNGLICHE GRÖßE 10", aber in den meisten Fällen verlassen die standardmäßige Speicherzuordnung ist besser als zu versuchen, es zu zwingen.Zusätzlich
Einer Tabelle von
TYPE SORTED TABLE
erklärt werden kann entweder mit einerUNIQUE
oder eineNON-UNIQUE
- Taste. Die Kosten zum Lesen eines Datensatzes ist kleiner als der einerSTANDARD
Tabelle, da es ermöglicht, eineBINARY SEARCH
, aber mehr als einHASHED
Tabelle. Die Kosten zu schreiben ist etwas teurer als einSTANDARD
Tabelle, aber weniger als einHASHED
Tabelle.Eigentlich, wenn Sie Folgen Sie den bereitgestellten link von Rene unten, und scrollen Sie nach unten zum Abschnitt "Vollständig Angegebenen Tabellen", du wirst sehen, dass STANDARD-TABELLE und nur TABELLE können Synonym verwendet werden. Definieren Sie eine generische Tabelle, die Sie verwenden würden, TYP INDEX-TABELLE, oder GEBEN Sie einen BELIEBIGEN TABELLE.
Ich bin verwirrt. Wo kann es Schaden verursachen, wenn ich das weglassen der Begriff "STANDARD"?
InformationsquelleAutor Esti
Standard-Tabelle
Dies ist die geeignetste Art, wenn Sie gehen, um auf die einzelnen Einträge der Tabelle mit dem index. Index access ist der möglichst schnellen Zugang. Sie sollten füllen einer standard-Tabelle durch das anfügen von Zeilen (ABAP APPEND) und das Lesen, ändern und löschen von Einträgen durch die Angabe des index (INDEX-option, mit der entsprechende ABAP-Befehl). Die Zugriffszeit für eine standard-Tabelle steigt linear mit der Anzahl der Tabelleneinträge. Wenn Sie brauchen, Schlüssel-Zugang, standard-Tabellen sind besonders nützlich, wenn Sie füllen können, und verarbeiten Sie die Tabelle in separate Schritte. Zum Beispiel, Sie könnte füllen Sie die Tabelle durch das anfügen Einträge, und dann sortiert werden. Wenn Sie die binäre Suche (binary-option mit Schlüssel zugreifen, ist die Reaktionszeit logarithmisch proportional zu der Anzahl der Tabelleneinträge.
Hash-Tabellen
Dies ist die am besten geeignete Art für die Tabelle, wo der Hauptbetrieb ist der Schlüssel Zugang. Sie können nicht Zugriff auf eine Hash-Tabelle über den index. Die Reaktionszeit für Schlüssel Zugang bleibt konstant, unabhängig von der Anzahl der Tabelleneinträge. Wie Datenbank-Tabellen, Hash-Tabellen haben immer einen eindeutigen Schlüssel. Hash-Tabellen sind nützlich, wenn Sie möchten, erstellen und verwenden Sie eine interne Tabelle, die ähnelt einer Datenbank-Tabelle oder für die Verarbeitung großer Datenmengen.manu
InformationsquelleAutor Dhivya