Sunday, March 8, 2015

Oracle Tablespaces

Las bases de datos Oracle tienen varias diferencias con MySql, una de ellas: Tablespaces. En esta base, a nivel lógico, existen los tablespaces, unidades de almacenamiento de otras estructuras lógicas. Lo usual es mantener todos los objetos de una aplicacion en una tablespace para mayor eficiencia en temas de mantenimiento. A simple vista, cada base de datos tiene uno o más objetos tablespace, y a su vez cada tablespace esta alojado en uno o varios archivos de datos, la combinación de la capacidad de todas los archivos de un tablespace es su tamaño total, y la combinación de todos los tablespaces es el tamaño total de la base de datos.
La creación de un objeto tablespace, aparte de requerir ciertos privilegios incluye el alojar espacio para objetos Schema. Existen tres tipos de tablespaces: permamentes, temporarios y undo.
Usamos un objeto temporal cuando lo que necesitamos es un trabajo puntual que procese X datos, caso de extraer datos, transformarlos y migrarlos a otro tablespace permanente. Existen como se puede apreciar cláusulas que nos permiten definir espacio, tanto en tablespaces como en tablas donde STORAGE nos permite definir el espacio alojado por el extent inicial.
Para crear un Tablespace temporario, en este caso especificamos un grupo que si no existe se crea automaticamente, usamos, al terminar la sesión la misma se elimina:
CREATE TABLESPACE Temporal
TEMPFILE 'temporal.dbf'
SIZE 50M
AUTOEXTEND ON
TABLESPACE GROUP tbl_grp_tem;
CREATE TABLE ns.clientes (
Id number(9) PRIMARY KEY,
Nombre. varchar2(50) NOT NULL,
Pais varchar2(50) NOT NULL
)
TABLESPACE 'Temporal';