Question

Y at-il inconvénient (à l'exception permettant la valeur ou un tableau de croître trop grande) pour le réglage de la taille entière max d'un VARCHAR ou VARRAY à une valeur nettement plus grande que réellement nécessaire (ou le réglage à la taille maximum autorisée)?

Était-ce utile?

La solution

Si vous parlez d'une colonne dans une table de base de données, il est conseillé de régler la longueur maximale d'un VARCHAR2 à la longueur minimale permise par les exigences - comme toute autre contrainte, il aide à utiliser ces fonctionnalités intégré du base de données pour garantir que des données valides est enregistré (par exemple si un nom de famille de 1000 caractères est entrée, je suis sûr que cela se tromper, et peut-être mettre en évidence un bug dans un programme quelque part).

Du côté PL / SQL, il peut vous intéresser de savoir qu'il peut y avoir des différences d'utilisation de la mémoire (PGA) en fonction de quelle taille vous déclarez vos chaînes dans vos programmes PL / SQL. En interne, il existe un seuil à 2000 octets, où le moteur PL / SQL commute entre deux régimes d'allocation de mémoire différentes. par exemple. la déclaration suivante:

DECLARE v VARCHAR2(2000); BEGIN...

va allouer 2000 octets dans la zone de mémoire de l'utilisateur, alors que:

DECLARE v VARCHAR2(2001); BEGIN...

ne sera allouer de la mémoire lorsqu'une valeur est affectée, et n'attribuera plus de mémoire que nécessaire pour maintenir la valeur qui lui est assignée.

forum Oracle: "allocation d'espace VARCHAR2"

Autres conseils

Il suffit de ne pas utiliser varray, utilisez table imbriquée. Les tables imbriquées peuvent contenir un nombre de arbitry d'éléments.

Utilisation varchar2 (4000) au lieu de varchar2 (20) dans une définition de table n'a pas vraiment mal, car Oracle ne prétend pas cet espace quand il est pas nécessaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top