En Oracle 19c, un database block o bloque de base de datos es la unidad básica de almacenamiento en la arquitectura de la base de datos. Los bloques son la manera en que Oracle organiza y gestiona los datos en el disco. Aquí te explico qué es y cómo funciona:

¿Qué es un Database Block?

Un bloque de base de datos es una sección de espacio en disco que contiene registros de datos. Cada bloque tiene un tamaño fijo que se determina al momento de crear la base de datos (comúnmente 2K, 4K, 8K, 16K o 32K).

Estructura de un Database Block

Un bloque de base de datos en Oracle está compuesto por varias secciones:

  1. Header (Encabezado): Contiene información sobre el bloque, como el tipo de bloque, el número de fila, el timestamp, y otras estructuras de control.
  2. Data Area (Área de Datos): Es donde se almacenan los datos reales. Dependiendo del tamaño del bloque y de la cantidad de datos, puede contener múltiples filas.
  3. Free Space (Espacio Libre): Es el espacio no utilizado dentro del bloque, que se reserva para futuras inserciones y actualizaciones.

¿Cómo funciona un Database Block?

  1. Lectura y Escritura: Cuando Oracle necesita acceder a datos, lee bloques de la base de datos en la memoria (buffer cache). Si un bloque no está en la memoria, Oracle lo trae desde el disco. Una vez en memoria, las operaciones de escritura se hacen en el buffer primero y luego se escriben de nuevo en disco, lo que ayuda a optimizar el rendimiento.
  2. Gestión de Bloques: Oracle gestiona los bloques utilizando un mecanismo llamado tablespace, que es un contenedor de bloques. Cada tabla y su índice residen en un tablespace, y los bloques de datos se distribuyen entre los tablespaces.
  3. Espacio y Rendimiento: El tamaño del bloque afecta cómo se gestionan los datos. Un bloque más grande puede ser más eficiente para almacenar grandes filas, pero también puede desperdiciar espacio si los registros son pequeños. Por otro lado, bloques más pequeños pueden llevar a una mayor fragmentación y un mayor número de bloques para la misma cantidad de datos.

Ejemplo de Uso

Supongamos que tienes una tabla llamada CLIENTES que almacena información sobre clientes. Cuando se inserta una nueva fila en esta tabla, Oracle busca un bloque adecuado en el tablespace de CLIENTES, y si encuentra uno con espacio libre suficiente, almacena los datos ahí. Si no hay espacio, puede tener que crear un nuevo bloque.

Deja un comentario

Tendencias