Frage

Gibt es einen Nachteil (außer den Wert oder Array ermöglicht, zu groß zu wachsen) die maximale ganze Zahl Größe eines VARCHAR oder VARRAY auf einen Wert deutlich größer als eigentlich notwendig, um Einstellung (oder es auf die maximale Größe erlaubt Einstellung)

War es hilfreich?

Lösung

Wenn Sie sich um eine Spalte in einer Datenbanktabelle zu sprechen, ist es ratsam, die maximale Länge eines VARCHAR2 auf die minimale Länge zulässigen durch die Anforderungen einzustellen - wie jede andere Einschränkung, hilft es, diese eingebauten Funktionen des verwenden Datenbank nur gültige Daten, um sicherzustellen, wird gespeichert (zB wenn der familienname mit 1000 Zeichen eingegeben ich bin mir ziemlich sicher, dass falsch sein, und markieren Sie vielleicht einen Fehler in einem Programm irgendwo).

Auf der PL / SQL-Seite, kann es Sie interessieren, dass es möglicherweise Speicher (PGA) Nutzungs Unterschiede abhängig, welche Größe Sie Ihre Strings in PL / SQL-Programme erklären. Intern gibt es einen Grenzwert bei 2000 Bytes, wobei die PL / SQL-Motor schaltet zwischen zwei verschiedenen Speicherzuweisungsschemata. z.B. die folgende Erklärung ab:

DECLARE v VARCHAR2(2000); BEGIN...

wird zuteilen 2000 Byte im Speicherbereich des Benutzers, während:

DECLARE v VARCHAR2(2001); BEGIN...

wird nur Speicher zuweisen, wenn ein Wert zugewiesen wird, und wird nur so viel Speicher zuweisen, wie erforderlich ist, den Wert zugewiesen zu halten.

Oracle Forum: "VARCHAR2 Platzzuordnung"

Andere Tipps

Verwenden Sie einfach nicht VARRAY, verwenden Sie verschachtelte Tabelle. Verschachtelte Tabellen können eine arbitry Anzahl von Elementen halten.

Mit varchar2 (4000) statt varchar2 (20) in einer Tabellendefinition verletzt nicht wirklich, weil Oracle nicht diesen Raum beanspruchen, wenn es nicht benötigt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top