SQL allgemein: Neue Standard-Spaltengrößen für Zeichenfolgen- und Binärdatentypen (verschoben)¶
Bemerkung
Diese Verhaltensänderung war Teil des Bundles 2025_07, die Änderung wurde aber verschoben. Die Änderung wird in einem zukünftigen Bundle eingeführt. Die Änderung ist nicht zum Testen verfügbar.
Wenn dieses Verhaltensänderungs-Bundle aktiviert ist, ändern sich die Standardgrößen für Zeichenfolgen- und Binärdatentyp:
- Vor der Änderung:
Die Standardgröße für Textzeichenfolgen-Datentypen war 16 MB.
Die Standardgröße für Binärdatentypen war 8 MB.
- Nach der Änderung:
Die Standardgröße für Textzeichenfolgen-Datentypen ist 128 MB.
Die Standardgröße für Binärdatentypen ist 64 MB.
Vor dieser Änderung konnten in DDL-Anweisungen explizit Größen über 16 MB für Textzeichenfolgenspalten und 8 MB für Binärspalten angegeben werden; der Standardwert betrug jedoch 16 MB bzw. 8 MB, wenn keine Größe angegeben wurde.
Nach dieser Verhaltensänderung ist die Standardgröße 128 MB für Textzeichenfolgenspalten und 64 MB für Binärspalten, wenn in DDL-Anweisungen keine Größe angegeben wird. Daher können mit INSERT-Anweisungen Werte über 16 MB in Spalten mit Textzeichenfolgen und über 8 MB in Binärspalten eingefügt werden, ohne dass vorher explizit höhere Limits angegeben werden müssen.
Bemerkung
Diese Änderung wirkt sich nicht auf DDL-Anweisungen für Apache Iceberg™-Tabellen und benutzerdefinierte Funktionen (UDFs) aus, da für sie bereits die größeren Standardgrößen gelten.
Die Änderung gilt für Spalten des Datentyps VARCHAR und Spalten von Datentypen, die gleichbedeutend mit VARCHAR sind, z. B. STRING, außer für Datentypen mit einer Standardgröße von 1 (wie CHAR, CHARACTERund NCHAR). Die Änderung gilt auch für Spalten des Datentyps BINARY und Spalten von Datentypen, die gleichbedeutend mit BINARY sind, wie z. B. VARBINARY.
Mit der folgenden Anweisung wird beispielsweise eine Tabelle erstellt, ohne die maximale Größe für die Spalten anzugeben:
Führen Sie die folgende Abfrage aus, um die maximale Größe der Spalten anzuzeigen:
Vor der Verhaltensänderung gibt die Abfrage die folgende Ausgabe zurück:
Nach der Änderung der Verhaltensweise gibt die Abfrage die folgende Ausgabe zurück:
Ansichten und materialisierte Ansichten können große Standardgrößen übernehmen¶
Wenn Sie eine Ansicht oder materialisierte Ansicht erstellen, die Ausdrücke in Spaltendefinitionen verwendet, übernehmen die Spalten in einigen Fällen die neuen Standardgrößen, auch wenn in den Spalten der Quelltabelle ausdrücklich kleinere Größen angegeben sind.
Erstellen Sie zum Beispiel eine Quelltabelle, die explizit die maximale Größe für eine Spalte des Datentyps VARCHAR auf 16.777.216 festlegt:
Erstellen Sie eine Ansicht und eine materialisierte Ansicht, die auf dieser Tabelle basieren, ohne Ausdrücke in den Spaltendefinitionen zu verwenden:
Führen Sie die folgenden Abfragen aus, um die maximale Größe der Spalten anzuzeigen:
Sowohl vor als auch nach der Änderung geben diese Abfragen die folgende Ausgabe zurück:
Erstellen Sie eine Ansicht und eine materialisierte Ansicht auf der Basis der Quelltabelle, und verwenden Sie Ausdrücke in den Spaltendefinitionen:
Führen Sie die folgenden Abfragen aus, um die maximale Größe der Spalten anzuzeigen:
Vor der Verhaltensänderung geben diese Abfragen die folgende Ausgabe zurück:
Nach der Verhaltensänderung geben diese Abfragen die folgende Ausgabe zurück:
Mit CREATE TABLE AS SELECT erstellte Tabellen können große Standardgrößen übernehmen¶
In einigen Fällen, wenn Sie eine Tabelle mit einer CREATE TABLE AS SELECT (CTAS)-Anweisung ausführen, die Ausdrücke in Spaltendefinitionen verwendet, übernehmen die Spalten die neuen Standardgrößen, auch wenn in den Spalten der Quelltabelle ausdrücklich kleinere Größen angegeben sind.
Erstellen Sie beispielsweise eine Quelltabelle, die ausdrücklich die maximale Größe für VARCHAR- und BINARY-Spalten festlegt:
Erstellen Sie mit einer CTAS-Anweisung eine Tabelle aus dieser Quelltabelle:
In diesem Beispiel verwendet die Spaltendefinition für die processed_text-Spalte einen Ausdruck.
Führen Sie die folgenden Abfragen aus, um die maximale Größe der Spalten anzuzeigen:
Vor der Verhaltensänderung gibt die Abfrage die folgende Ausgabe zurück (und die Spalte processed_text zeigt die kleinere Standardgröße an):
Nach der Verhaltensänderung gibt die Abfrage nun folgende Ausgabe zurück (und die Spalte processed_text zeigt die größere Standardgröße an):
Ref: 2118