Saltar al contenido

Impacto de definir la columna VARCHAR2 con mayor longitud

Intenta interpretar el código bien previamente a adaptarlo a tu proyecto si tdeseas aportar algo puedes compartirlo con nosotros.

Solución:

La respuesta depende de si se trata de una columna en una tabla de base de datos o de una variable en un programa PL/SQL.

Columna de base de datos

La cantidad de almacenamiento utilizado es proporcional al tamaño de los datos almacenados.

variables PL/SQL

Si la variable se declara con un tamaño de 1 a 4000 (11g+) / 1999 (10g o anterior), la memoria se asignará para la longitud máxima (es decir, VARCHAR2(100) requerirá al menos 100 bytes de memoria).

Si la variable se declara con un tamaño de 4001 (11g+) / 2000 (10g o anterior) o mayor, la memoria se asignará de acuerdo con el tamaño de los datos almacenados. (una pregunta secundaria interesante sería, si se cambia el valor de la variable, ¿cómo se cambia el tamaño de la memoria? ¿Reasigna otro búfer con el nuevo tamaño?)

Referencia para 10g: tipos de datos PL/SQL

Las variables VARCHAR2 pequeñas están optimizadas para el rendimiento y las más grandes están optimizadas para un uso eficiente de la memoria. El punto de corte es 2000 bytes. Para un VARCHAR2 de 2000 bytes o más, PL/SQL asigna dinámicamente solo la memoria suficiente para contener el valor real. Para una variable VARCHAR2 de menos de 2000 bytes, PL/SQL preasigna la longitud completa declarada de la variable. Por ejemplo, si asigna el mismo valor de 500 bytes a una variable VARCHAR2 (2000 BYTE) ya una variable VARCHAR2 (1999 BYTE), la primera ocupa 500 bytes y la segunda ocupa 1999 bytes.

Referencia para 11g: Cómo evitar la sobrecarga de memoria en código PL/SQL

Especifique un tamaño de más de 4000 caracteres para la variable VARCHAR2; PL/SQL espera hasta que asigne la variable, luego solo asigna tanto almacenamiento como sea necesario

En la base de datos, no hay diferencia. VARCHAR2 se almacenan con longitud variable, la longitud declarada es solo una limitación.

Sin embargo, algunas aplicaciones cliente reservarán 1000 bytes por columna en lugar de 10 si ven que la columna está definida como VARCHAR2(1000)

Puntuaciones y reseñas

Recuerda que puedes dar difusión a este ensayo si lograste el éxito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *