DIMENSIONAMIENTO
Muchas veces es necesario realizar un dimensionamiento (sizing) de un esquema de base de datos.
Es habitual que los dba's conozcan el tamaño actual y proyectado para así poder anticipar problemas
de espacio, realizar pedidos de nuevo hardware con tiempo, anticipar carga de un equipo, etc.
• Para hacer una estimación de la base de datos, hay que conocer el uso de la misma, que
volumen de datos necesita para el correcto funcionamiento de la aplicación, y como cambiaran estos
datos durante el tiempo de vida de la aplicación, si los datos serán modificados o si por el contrario
se estará constantemente añadiendo datos nuevos, cuantos se borran, el tiempo de retención de la
información, pero finalmente algo importante es conocer el diseño.
Los archivos que intervienen en el dimensionamiento son varios, entre los que se encuentran los
archivos de la instancia, los de parámetros, los de control, los de datos que a su vez se dividen en
datos, índices y bitacoras
Existen varias herramientas para estimar el tamaño, se pueden usar productos como el TOAD,
DbaArtisan, etc.
Para llevar a cabo un buen dimensionamiento es necesario conocer la forma en cómo está
estructurada la base de datos y algunos parámetros que pueden influir, tales como:
PCTFREE y PCTUSED son parámetros que nos permite especificar comportamientos de
almacenamiento de los bloques de datos. Se los configura a nivel de tabla durante la creación o
posterior a la creación.
PCFREE: Especifica cuál es la cantidad de espacio que se deberá dejar libre en el bloque para las
futuras actualizaciones que se vayan a realizar en los registros previamente almacenados en el
bloque. Esto quiere decir que Oracle insertará registros en el bloque hasta que se llegue al %
especificado en el PCFREE para las futuras actualizaciones de los registros que se encuentran en el
bloque y tamaño puede aumentar, con esto se evita la migración de datos.
PCTUSED: Especifica cuanto espacio disponible debe de haber para realizar nuevas inserciones
después de que el bloque llego a su máxima capacidad definida por el PCTFREE. Supongamos que
tenemos un PCTFREE de 10% para una tabla y un PCTUSED de 60%, cuando realizamos
inserciones se realizaran hasta llegar a 10% libre del bloque, pero qué pasa después de que
realizamos borrados de filas, este bloque queda disponible para inserciones de nuevos registros,
Pues el bloque se pondrá disponible para inserciones hasta que se llegue un valor usado definido por
el PCTUSED, es decir cuando llegue a un 60%
En una base de datos es muy importante poder establecer este parámetro al momento de crear una
tabla o tener en cuenta poder modificarlo según la evaluación que le demos a la tabla. ¿Qué
deberíamos considerar para definir el PCTFREE? Según el tipo de transacciones SQL(Insert, delete
o update) que se le aplique a la tabla.
• Si es una tabla log, histórica que solo se aplican transacciones Insert debería tener un
PCTFREE de 0%.
• Si es una tabla que sirve como data warehouse (base de datos de consulta) el PCTFREE
deberá configurarse con 0%.
• Si es una tabla transaccional que sufre de inserts, update y delete deberá configurarse un
PCTFREE superior a 0%.
En el caso de tablas transaccionales que sufren de inserts, updates y deletes el PCTFREE deberá
configurarse con un valor de acuerdo a un previo análisis que dependerá de la cantidad de columnas
que se actualizarán posteriores a la inserción y del tipo de dato. Supongamos que tenemos una
estructura de "Analisis_Credito" el cual es llenada por un analista de ventas para poder dar crédito a
un cliente, en principio esta se llena con información básica que luego es actualizada por un flujo de
trabajo que va desde el análisis, verificación y aprobación durante este flujo se actualizaron datos de
comentarios, referencias, teléfono y otros como vemos esta información es llenada posterior a la
creación del registro, por lo que se debería considerar un PCTFREE de 60%.
Muchas veces es necesario realizar un dimensionamiento (sizing) de un esquema de base de datos.
Es habitual que los dba's conozcan el tamaño actual y proyectado para así poder anticipar problemas
de espacio, realizar pedidos de nuevo hardware con tiempo, anticipar carga de un equipo, etc.
• Para hacer una estimación de la base de datos, hay que conocer el uso de la misma, que
volumen de datos necesita para el correcto funcionamiento de la aplicación, y como cambiaran estos
datos durante el tiempo de vida de la aplicación, si los datos serán modificados o si por el contrario
se estará constantemente añadiendo datos nuevos, cuantos se borran, el tiempo de retención de la
información, pero finalmente algo importante es conocer el diseño.
Los archivos que intervienen en el dimensionamiento son varios, entre los que se encuentran los
archivos de la instancia, los de parámetros, los de control, los de datos que a su vez se dividen en
datos, índices y bitacoras
Existen varias herramientas para estimar el tamaño, se pueden usar productos como el TOAD,
DbaArtisan, etc.
Para llevar a cabo un buen dimensionamiento es necesario conocer la forma en cómo está
estructurada la base de datos y algunos parámetros que pueden influir, tales como:
PCTFREE y PCTUSED son parámetros que nos permite especificar comportamientos de
almacenamiento de los bloques de datos. Se los configura a nivel de tabla durante la creación o
posterior a la creación.
PCFREE: Especifica cuál es la cantidad de espacio que se deberá dejar libre en el bloque para las
futuras actualizaciones que se vayan a realizar en los registros previamente almacenados en el
bloque. Esto quiere decir que Oracle insertará registros en el bloque hasta que se llegue al %
especificado en el PCFREE para las futuras actualizaciones de los registros que se encuentran en el
bloque y tamaño puede aumentar, con esto se evita la migración de datos.
PCTUSED: Especifica cuanto espacio disponible debe de haber para realizar nuevas inserciones
después de que el bloque llego a su máxima capacidad definida por el PCTFREE. Supongamos que
tenemos un PCTFREE de 10% para una tabla y un PCTUSED de 60%, cuando realizamos
inserciones se realizaran hasta llegar a 10% libre del bloque, pero qué pasa después de que
realizamos borrados de filas, este bloque queda disponible para inserciones de nuevos registros,
Pues el bloque se pondrá disponible para inserciones hasta que se llegue un valor usado definido por
el PCTUSED, es decir cuando llegue a un 60%
En una base de datos es muy importante poder establecer este parámetro al momento de crear una
tabla o tener en cuenta poder modificarlo según la evaluación que le demos a la tabla. ¿Qué
deberíamos considerar para definir el PCTFREE? Según el tipo de transacciones SQL(Insert, delete
o update) que se le aplique a la tabla.
• Si es una tabla log, histórica que solo se aplican transacciones Insert debería tener un
PCTFREE de 0%.
• Si es una tabla que sirve como data warehouse (base de datos de consulta) el PCTFREE
deberá configurarse con 0%.
• Si es una tabla transaccional que sufre de inserts, update y delete deberá configurarse un
PCTFREE superior a 0%.
En el caso de tablas transaccionales que sufren de inserts, updates y deletes el PCTFREE deberá
configurarse con un valor de acuerdo a un previo análisis que dependerá de la cantidad de columnas
que se actualizarán posteriores a la inserción y del tipo de dato. Supongamos que tenemos una
estructura de "Analisis_Credito" el cual es llenada por un analista de ventas para poder dar crédito a
un cliente, en principio esta se llena con información básica que luego es actualizada por un flujo de
trabajo que va desde el análisis, verificación y aprobación durante este flujo se actualizaron datos de
comentarios, referencias, teléfono y otros como vemos esta información es llenada posterior a la
creación del registro, por lo que se debería considerar un PCTFREE de 60%.