SQL-Begrenzungen

Die folgenden Tabellen beschreiben bestimmte SQL- und Datenbankbeschränkungen, die vom Db2 for i-Datenbankmanager auferlegt werden.

Hinweis:
  • Systemspeichergrenzwerte können die hier angegebenen Grenzwerte ausschließen. Beispiel: Siehe Maximale Zeilengrößen.
  • Ein Grenzwert von Speicher bedeutet, dass der Grenzwert von der verfügbaren Speicherkapazität abhängt.
  • Ein Grenzwert von anweisung bedeutet, dass der Grenzwert von dem Grenzwert für die maximale Länge einer Anweisung abhängig ist.
Tabelle 1. Längenbegrenzungen von Kennungen
Kennungsbegrenzungen Db2 for i Grenzwert
Längste Berechtigungsname 101
Längste Korrelationsname 128
Längste Cursorname 128
Längste Deskriptorname 128
Längste externe Programmname (Zeichenfolgeform) 2792
Längste externe Programmname (nicht qualifizierte Form) 10
Längste Host-ID3 128
Längste Paketversions-ID 64
Längster Partitionsname 10
Name des längsten Sicherungspunkts 128
Längste Schemaname 128
Längster Servername 18
Längster Anweisungsname 128
Name der längsten SQL-Bedingung 128
Längste SQL-Bezeichnung 128
Längster nicht qualifizierter Aliasname 128
Längste nicht qualifizierte Spalte 128
Längste nicht qualifizierte Integritätsbedingung 128
Längste nicht qualifizierte eindeutige Typname 128
Längster nicht qualifizierter Funktionsname 128
Name der längsten nicht qualifizierten globalen Variablen 128
Längster nicht qualifizierter Indexname 128
Längste nicht qualifizierte Maske 128
Längste nicht qualifizierte Knotengruppe 10
Längster nicht qualifizierter Paketname 10
Längster nicht qualifizierter Berechtigungsname 128
Längster nicht qualifizierter Prozedurname 128
Längster nicht qualifizierter Sequenzname 128
Längster nicht qualifizierter spezifischer Name 128
Längste nicht qualifizierte SQL-Parametername 128
Längster nicht qualifizierter SQL-Variablenname 128
Längster nicht qualifizierter Systemspaltenname 10
Längster nicht qualifizierter Systemobjektname 10
Längste nicht qualifizierte Systemschemaname 10
Längste nicht qualifizierte Tabelle und längste Sicht 128
Längster nicht qualifizierter Triggername 128
Längster nicht qualifizierter XSR-Objektname 128
Längster XML-Elementname, Attributname, Präfixname oder Verarbeitungsanweisungsname, angegeben in XMLELEMENT, XMLFOREST, XMLATTRIBUTES, XMLNAMESPACES oder XMLPI 128
In XMLTABLE angegebener längste XML-Pfadname 128
Längster XML-Elementname, Attributname, Präfixname oder Verarbeitungsanweisungsname für ein syntaktisch analysiertes XML-Dokument 1.000
Längste URI (Uniform Resource Identifier) für Position des XML-Schemas 1.000
Längster JSON-Pfadname 128

Tabelle 2. Numerische Grenzen
Numerische Grenzen Db2 for i Grenzwert
Niedrigster SMALLINT-Wert -32.768
Höchster SMALLINT-Wert +32.767
Niedrigster INTEGER-Wert -2.147.483.648
Höchster INTEGER-Wert +2.147.483.647
Niedrigster BIGINT-Wert -9.223.372.036.854.775.808
Höchster BIGINT-Wert +9.223.372.036.854.775.807
Größte Dezimalgenauigkeit 63
Maximaler Exponent (Emax) für REAL-Werte 38
Kleinster REAL-Wert4 -3,4 x 1038
Größter REAL-Wert4 + 3,4 x 1038
Minimaler Exponent (Emin) für REAL-Werte -38
Kleinster positiver REAL-Wert4 + 1,18x10-38
Größter negativer REAL-Wert4 -1,18x10-38
Maximaler Exponent (Emax) für DOUBLE-Werte 308
Kleinster DOUBLE-Wert4 -1,79x10308
Größter DOUBLE-Wert4 + 1,79x10308
Minimaler Exponent (Emin) für DOUBLE-Werte -308
Kleinster positiver DOUBLE-Wert4 + 2,23x10-308
Größter negativer DOUBLE-Wert4 -2,23x10-308
Maximaler Exponent (Emax) für DECFLOAT(16)-Werte 384
Kleinster DECFLOAT (16) -Wert5 -9,999999999999999x10384
Größter Wert für DECFLOAT (16)5 9,999999999999999x10384
Minimaler Exponent (Emin) für DECFLOAT(16)-Werte -383
Kleinster positiver Wert DECFLOAT (16)5 1 x 10-383
Größter negativer Wert für DECFLOAT (16)5 - 1x10-383
Maximaler Exponent (Emax) für DECFLOAT(34)-Werte 6144
Kleinster Wert für DECFLOAT (34)5 -9,999999999999999999999999999999999x106144
Größter DECFLOAT (34) -Wert5 9,999999999999999999999999999999999x106144
Minimaler Exponent (Emin) für DECFLOAT(34)-Werte -6143
Kleinster positiver DECFLOAT (34) -Wert5 1x10-6143
Größter negativer Wert für DECFLOAT (34)5 - 1x10-6143

  

Tabelle 3. Zeichenfolgebegrenzungen
Zeichenfolgebegrenzungen Db2 for i Grenzwert
Maximale Länge von CHAR (in Byte) 327656
Maximale Länge von VARCHAR (in Byte) 327396
Maximale Länge von CLOB (in Byte) 2 147 483 647
Maximale Länge von GRAPHIC (in Doppelbytezeichen) 163826
Maximale Länge von VARGRAPHIC (in Doppelbytezeichen) 163696
Maximale Länge von DBCLOB (in Doppelbytezeichen) 1 073 741 823
Maximale Länge von BINARY (in Byte) 327656
Maximale Länge von VARBINARY (in Byte) 327396
Maximale Länge von BLOB (in Byte) 2 147 483 647
Maximale Länge von serialisierter XML (in Byte) 2 147 483 647
Maximale Länge der Zeichenkonstanten 32740
Maximale Länge einer Grafikkonstante 16370
Maximale Länge der Binärkonstanten 32740
Maximale Länge der verknüpften Zeichenfolge 2 147 483 647
Maximale Länge der verknüpften Grafikzeichenfolge 1 073 741 823
Maximale Länge der verknüpften Binärzeichenfolge 2 147 483 647
Maximale Anzahl von Hexadezimalkonstantenziffern 32 762
Maximale Länge von Katalogkommentaren 20007
Maximale Länge der Spaltenbeschriftung (in Byte) 60
Maximale Länge des SQL-Routinenkennsatzes 128
Maximale Länge der Tabelle, des Pakets oder der Aliasbezeichnung 50
Maximale Länge von C NUL-terminiert 327396
Maximale Länge der C NUL-terminierten Grafik 163696

 

Tabelle 4. XML-Begrenzungen
XML-Begrenzungen Db2 for i Grenzwert
Maximale Länge eines XML-Schemadokuments (in Byte) 2 147 483 647
Maximale Länge einer geparsten XML-Entität 1 Gigabyte
Maximale Tiefe einer internen XML-Baumstruktur 128
Tabelle 5. JSON-Grenzwerte
JSON-Grenzwerte Db2 for i Grenzwert
Maximale Länge eines JSON-Dokuments (in Byte) 2 147 483 647
Tabelle 6: Begrenzungen für Datums- und Uhrzeitangaben
Begrenzungen für Datums- und Uhrzeitangaben Db2 for i Grenzwert
Niedrigster DATE-Wert 0001-01-01
Höchster DATE-Wert 9999-12-31
Niedrigster TIME-Wert 00:00:00
Höchster TIME-Wert 24:00:00
Niedrigster TIMESTAMP-Wert 0001-01-01-00.00.00.000000000000
Höchster TIMESTAMP-Wert 9999-12-31-24.00.00.000000000000
Kleinste Zeitmarkengenauigkeit 0
Größte Zeitmarkengenauigkeit 12
Tabelle 7: DataLink Begrenzungen
Datalink Grenzwerte Db2 for i Grenzwert
Maximale Länge von DATALINK 32718
Maximale Länge des DATALINK-Kommentars 254
Tabelle 8. Begrenzungen des Datenbankmanagers
Begrenzungen des Datenbankmanagers Db2 for i Grenzwert
Relationale Datenbank
Maximale Anzahl Schemas Speicher
Maximale Anzahl Tabellen in einer relationalen Datenbank Speicher
Maximale Anzahl Knoten in einer Knotengruppe 32
Schemata
Maximale Anzahl Objekte in einem Schema ungefähr 1 000 000
Tabellen und Sichten
Maximale Anzahl von Spalten in einer Tabelle 8
Maximale Anzahl Spalten in einer Ansicht 8
Maximale Länge einer Zeile ohne LOBs einschließlich des gesamten Systemaufwands 32766
Maximale Länge einer Zeile mit LOBs einschließlich des gesamten Systemaufwands 3 758 096 383
Maximale Anzahl Zeilen in einer nicht partitionierten Tabelle 4 294 967 288
Maximale Anzahl Zeilen in einer Datenpartition 4 294 967 288
Maximale Größe einer nicht partitionierten Tabelle 1.7 Terabyte
Maximale Größe einer Datenpartition 1.7 Terabyte
Maximale Anzahl Datenpartitionen in einer einzelnen partitionierten Tabelle 256
Maximale Anzahl von Tabellenpartitionierungsspalten 120
Maximale Anzahl Tabellen, auf die in einer Sicht oder einer MQT verwiesen wird 10008
Maximale Anzahl abhängiger Sichten, MQTs (Materialized Query Tables) und Indizes für eine Tabelle oder Sicht. Speicher
Integritätsbedingungen
Max. Anzahl Integritätsbedingungen für eine Tabelle 5.000
Maximale Anzahl Spalten in einer UNIQUE-Integritätsbedingung 120
Maximale kombinierte Länge von Spalten in einer Integritätsbedingung UNIQUE (in Byte) 327676
Maximale Anzahl von verweisenden Spalten in einem Fremdschlüssel 120
Maximale kombinierte Länge von Referenzspalten in einem Fremdschlüssel (in Byte) 327676
Maximale Länge einer CHECK-Integritätsbedingung (in Byte) Anweisung
Auslöser
Maximale Anzahl Auslöser für eine Tabelle 300
Maximale Laufzeitverschachtelungstiefe von hintereinandergeschalteten Triggern 200
Indizes
Maximale Anzahl von Indizes für eine Tabelle ungefähr 15000
Maximale Anzahl Spalten in einem Indexschlüssel 120
Maximale Länge eines Indexschlüssels 327676
Maximale Größe eines nicht partitionierten Index Beginn der Änderung16 TerabyteEnde der Änderung
Maximale Größe einer Partition eines partitionierten Index Beginn der Änderung16 TerabyteEnde der Änderung
SQL
Maximale Länge einer SQL-Anweisung (in Byte) 2 097 152
Maximale Anzahl Tabellen, auf die in einer SQL-Anweisung verwiesen wird 10008
Maximale Anzahl von Variablen und Konstanten in einer SQL-Anweisung 327009
Maximale Anzahl von Elementen in einer SELECT-Liste ungefähr 800010
Maximale Anzahl von Vergleichselementen in einer Klausel WHERE oder HAVING Anweisung
Maximale Anzahl von Spalten in einer Klausel GROUP BY Gesamtlänge von GROUP BY
Maximale Gesamtlänge von Spalten in einer GROUP BY-Klausel 3.5 Gigabyte11
Maximale Anzahl von Elementen in einer CUBE-Gruppierung 10
Maximale Anzahl von Spalten in einer Klausel ORDER BY Gesamtlänge von ORDER BY
Maximale Gesamtlänge von Spalten in einer ORDER BY-Klausel 3.5 Gigabyte 11
Maximale Rekursionsebenen für hierarchische Abfragen 250
Maximal zulässige Ebenen für eine Unterabfrage 256
Maximale Anzahl von Werten für eine Zeile bei einem Einfügevorgang 8
Maximale Anzahl von SET-Klauseln in einer einzigen Aktualisierungsoperation 8
Routinen
Maximale Anzahl Parameter in einer Prozedur 200012
Maximale Anzahl Parameter in einer Funktion 200012
Maximale Anzahl Rückgabespalten in einer Tabellenfunktion 8
Maximale Anzahl von Verschachtelungsebenen für Routinen Speicher
Arten
Maximale Kardinalität eines Array-Typs 2 147 483 647
Anwendungen
Maximale Anzahl Hostvariablendeklarationen in einem vorkompilierten Programm Speicher13
Maximale Länge eines Hostvariablenwerts (in Byte) 2 147 483 647
Maximale Länge eines CLOB-Werts für MQ -Nachrichten (in Byte) 2M
Maximale Länge eines MQ -Nachrichtenwerts variabler Länge (in Byte) 32000
Maximale Anzahl deklarierter Cursor in einem Programm Speicher
Maximale Anzahl von Cursorn, die zu einem bestimmten Zeitpunkt geöffnet wurden Speicher 14
Maximale Anzahl gesperrter Zeilen in einer Arbeitseinheit 500 000 000
Maximale Anzahl DDL-Anweisungen in einer Arbeitseinheit 131 036
Maximale Anzahl Locator in einer Transaktion 16.000 000 15
Maximale Größe eines SQL-Deskriptorbereichs (in Byte) 16 777 215
Maximale Anzahl vorbereiteter Anweisungen Speicher
Maximale Anzahl gleichzeitig aktiver Sicherungspunkte Speicher
Maximale Anzahl gleichzeitig zugeordneter CLI-Handles in einem Prozess 160 000 16
Maximale Größe eines Pakets 1008 Megabyte17
Maximale Länge eines Pfads 8843
Maximale Anzahl von Schemata in einem Pfad 268
Maximale Länge eines Kennworts 127
Maximale Länge eines Hinweises 32
Maximale Größe eines Programms, eines Serviceprogramms oder eines dem Modul zugeordneten Speicherbereichs (in Byte) 16 777 216
Maximale Größe des Diagnosebereichs 90K
Maximale Größe einer Array-Variablen 4GB

1 Db2 for i kann als Anwendungsrequester einen Berechtigungsnamen von bis zu 255 Byte senden.
2 Für REXX-Prozeduren ist der Grenzwert 33.
3 Für ein RPG-, COBOL - oder REXX-Programm liegt die Grenze bei 64.
4 Die angezeigten Werte sind Näherungswerte.
5 Dies sind die Grenzwerte für normale Zahlen in DECFLOAT. DECFLOAT enthält auch Sonderwerte wie NaN und Infinity, die ebenfalls gültig sind. DECFLOAT unterstützt auch subnormale Zahlen, die außerhalb des dokumentierten Bereichs liegen.
6 Wenn die Spalte NOT NULL ist, ist das Maximum ein weiteres.
7 Für Sequenzen ist der Grenzwert 500.
8 Die maximale Anzahl der Member (und Partitionen), auf die verwiesen wird, beträgt ebenfalls 1000. In DELETE-und UPDATE-Anweisungen beträgt die maximale Anzahl 256. In einer komplexen SQL-Anweisung kann die Anzahl der Tabellen, auf die verwiesen werden kann, durch interne Strukturen begrenzt werden.
9 Der Grenzwert ist durch interne Strukturen beschränkt und kann weniger davon abhängen, wie die Konstanten in der Anweisung verwendet werden und ob sehr große Zeichenfolgekonstanten oder Variablen verwendet werden.
10 Die Begrenzung basiert auf der Größe der internen Strukturen, die für die analysierte SQL-Anweisung generiert wurden.
11 Der Grenzwert ist 32766, wenn CQE die Anweisung SELECT verarbeitet hat. Der Grenzwert ist geringer, wenn eine ICU-Sortierfolge oder ALWCPYDTA (*NO) verwendet wird.
12 SQL-Prozeduren und SQL-Funktionen können bis zu 2000 Parameter haben. Die Anzahl der Parameter für externe Prozeduren und externe Funktionen darf 2000 nicht überschreiten und wird durch die maximale Anzahl der in der Sprache zulässigen Parameter begrenzt.
13 In den Programmen RPG/400® und PL/I liegt die Grenze bei etwa 4000, wenn die alte Technik der Parameterübergabe verwendet wird. Der Grenzwert basiert auf der Anzahl der im Programm zulässigen Zeiger. In allen anderen Fällen basiert der Grenzwert auf Betriebssystemeinschränkungen.
14 Die maximale Anzahl Cursor, die gleichzeitig in einem einzelnen Job geöffnet sind, beträgt ungefähr 20 966.
15 Die maximale Anzahl von Locators in einer Transaktion im Modus SQL Server ist 209.000.
16 Die maximale Anzahl zugeordneter Kennungen pro DRDA-Verbindung beträgt 500.
17 Die maximale Größe eines DRDA-Pakets kann mithilfe der Option QAQQINI von 500 Megabyte auf 1 Gigabyte erhöht werden.