Beruflich Dokumente
Kultur Dokumente
ndice
1. Estructuras de almacenamiento
1.1. Visin general de las estructuras de almacenamiento
2. Tablespaces
2.1. Tablespaces permanentes
2.2. Tablespaces temporales
2.3. Tipos de tablespaces permanentes
2.4. Tablespace UNDO
2.5. Tablespaces por defecto
2.6. Gestin de extensiones
2.7. Disponibilidad de los Tablespaces
2.8. Tablespace de solo lectura
2.9. Obtener informacin de los Tablespaces
2.10. Clculo del tamao de la base de datos en Oracle 10g
3. Bloques, extensiones y segmentos
3.1. Bloques
3.2. Extensiones
3.3. Segmentos
4. Mtodos de acceso a datos
4.1. Indices
4.2. Indices de clave inversa
4.3. Arboles B
4.4. Mapa de bits
4.5. Tablas organizadas como ndices
4.6. Cluster
4.7. Hash cluster
4.8. Particiones
Esquema de contenidos:
Introduccin
Introduccin
Comprender:
ndice
Introduccin
Objetivos
Comprender:
1. TABLESPACES
Oracle dispone de un sistema de almacenamiento propio que, aunque se
coordina con el SO, se mantiene ajeno a l. Este sistema emplea unidades de
almacenamiento propias, cada una diseada para cumplir una misin concreta.
Al mantener un catlogo lgico de todos los objetos que componen la base de
datos, Oracle 10g puede conocer, en todo momento de cunto espacio dispone,
dnde se encuentran los objetos y cuanto espacio necesita para realizar el
almacenamiento de los datos. Las estructuras de almacenamiento en Oracle10g
son los bloques, las extensiones, los segmentos y los tablespaces.
2. ESQUEMA
Un esquema es un conjunto de objetos de la base de datos que
pertenecen al mismo propietario. Los objetos del esquema son las estructuras
lgicas que se corresponden con los datos de la BBDD. Algunos de los objetos
del esquema son tablas, vistas, secuencias, procedimientos almacenados,
ndices, clusters, etc.
5. SEGMENTO
En un nivel superior a las extensiones se encuentran los segmentos. Un
segmento es el conjunto lgico de todas las extensiones asignadas a un nico
objeto, aunque no se encuentren contiguas en disco. Cuando un segmento se
satura (se queda sin espacio libre para nuevos datos), Oracle 10g le asigna una
nueva extensin. Por ello, dado que el sistema asigna nuevas extensiones en
funcin de la demanda, stas pueden no encontrarse contiguas en disco. Estos
segmentos estn asociados a un nico tablespace.
Leccin 2 Tablespaces
ndice
Se podr separar los datos de los usuarios, de los datos del DD.
Como estos dos tablespaces, SYSTEM y SYSAUX, son los nicos que se
encuentran en el SGBD de forma certera, son los tablespaces por defecto. Sin
embargo Oracle recomienda encarecidamente que no sean usados como
tablespaces por defecto de los usuarios o aplicaciones.
Para conseguirlo durante la creacin de una nueva BBDD, se crean ciertos
tablespaces para almacenar datos de las diferentes aplicaciones y usuarios que
van a interactuar con el SGBD.
Por tanto y como resumen, Oracle 10g utiliza varios espacios de tablas para
separar lgica y fsicamente el almacenamiento de distintos conjuntos de
informacin de la BBDD.
Apartado 2.6: Gestin de extensiones
Como se ha comentado anteriormente los tablespaces se componen de
segmentos que a su vez se desglosan en extensiones. La asignacin de estas
extensiones a un segmento perteneciente a un tablespace puede realizarse
siguiendo dos polticas distintas.
Por otro lado las extensiones asignadas a un segmento tambin pueden ser
liberadas para ser utilizadas por otro tablespace.
La otra opcin permite que todas las extensiones tengan las mismas
dimensiones. Se trata por tanto, de una asignacin uniforme de
extensiones. En este caso se utiliza la clusula UNIFORM, con la
posibilidad de definir el tamao que se quiere utilizar en las extensiones
(parmetro SIZE). Si no se define por defecto el valor es de 1MB.
Sin embargo para poder realizar este cambio es necesario que se cumplan
una serie de condiciones para el tablespace en cuestin:
Para poder acceder a esta herramienta se tienen que seguir los siguientes
pasos:
Por tanto el tamao final de una BBDD se calcula como la suma de las
dimensiones de los ficheros de datos asociados a los tablespaces que conforman
cada BBDD.
Este tamao se fija al crear los tablespaces y definir los datafiles con su
dimensin inicial. Si con el paso del tiempo es necesario aumentar la capacidad
de la BBDD, existen tres alternativas:
Aadir un fichero de datos a un tablespace.
ndice
3.1. Bloques
3.2. Extensiones
3.3. Segmentos
Introduccin
Objetivos
1 FORMATO DE UN BLOQUE
La estructura de un bloque de datos est dividida en diferentes zonas como
se puede observar en la Figura 10.
En esta segunda opcin, caso el espacio libre para los segmentos de datos
e ndices se gestiona a travs de una lista de bloques libres (denominada como
free lists en la terminologa de ORACLE). Estos bloques son aquellos poseen
espacio mayor o igual al que determina el parmetro PCTFREE.
Facilidad de uso.
3 PCTUSED / PCTFREE
En los tablespaces gestionados de forma manual, al crear o modificar un
objeto de tipo tabla o cluster, existen dos parmetros que permiten controlar el
comportamiento del espacio libre. Estos parmetros son PCTUSED y PCTFREE y
controlan el uso del espacio libre para inserciones y actualizaciones, para todos
los bloques de un determinado segmento asociado al tablespace. Tambin se
puede especificar el parmetro de almacenamiento PCTFREE cuando se crea o
modifica un ndice (que tiene su propio segmento de indices).
El parmetro PCTFREE establece el porcentaje mnimo del bloque que
debe reservarse para permitir la expansin de los datos que ya se encuentran
almacenados en dicho bloque. Esta expansin se produce cuando se modifican
filas o registros almacenados en la tabla, asignado valores a columnas que
previamente contenan nulos, o valores mayores a columnas con tipos de datos
variables.
Por cada segmento de datos o de ndice, Oracle 10g mantiene una o varias
listas libres (free lists). Se trata de listas que bloques de datos, asociados a las
extensiones del segmento, que disponen de ms espacio libre que el
PCTFREE. Estos bloques estn disponibles para nuevas inserciones. Cuando
se intenta insertar nuevos registros en una tabla, Oracle recorre las free lists en
busca de bloques disponibles para nuevas inserciones. Por este motivo se
recomienda crear varias free lists por segmento para reducir la contencin cuando
se produzcan al mismo tiempo varias inserciones.
4 ENCADENAMIENTO Y MIGRACIN
En Oracle 10g existen dos circunstancias en las cuales los datos de una fila
de una tabla pueden ser demasiado grandes para almacenarlos en un nico
bloque.
Las posibilidades que existen en este tipo de gestin para el tamao de las
extensiones son: que todas tengan un tamao fijo (UNIFORM) o variable
calculado por el SGBD (AUTOALLOCATE).
Con la gestin local, Oracle busca espacio libre para asignar una nueva
extensin. Para ello en primer lugar determina el fichero de datos candidato en el
tablespace, y posteriormente busca el mapa de bits (bitmap) del fichero para
reservar los bloques libres adyacentes necesarios. Si en este fichero no existiera
espacio libre, Oracle buscara en otro de los asignados al tablespace.
Para cada objeto, por ejemplo una tabla o ndice, Oracle asigna una o ms
extensiones para formar su correspondiente segmento de datos o segmento de
ndice.
Segmento de Datos.
Segmentos de ndices.
Segmentos Temporales.
1 SEGMENTOS DE DATOS
Conjunto de extensiones asignadas a una tabla, cluster o particin. Al crear
el objeto correspondiente Oracle 10g crea un segmento de este tipo para
almacenar todos los datos asociados a el. Por tanto en un segmento de este tipo
no pueden aparecer extensiones asignadas a varios objetos.
2 SEGMENTOS DE NDICES
Cada ndice tiene asignado un conjunto de extensiones que almacena
todos sus datos. La creacin de este tipo de segmento es inherente a la sentencia
CREATE INDEX, en la cual tambin se pueden especificar los parmetros de
gestin de extensiones.
Al igual que en lo segmentos de datos, la liberacin de las extensiones se produce al borrar el segmento al
que estn asignadas. En este caso adems si se borra la tabla o cluster que est indexando, tambin se borrara
el segmento.
Adems de esto, en los casos que una transaccin aborte por cualquier
motivo, el proceso PMON restaura el valor de los bloques sucios con la
informacin original.
TRANSACTIONS_PER_ROLLBACK_SEGMENT.
4 SEGMENTOS TEMPORALES
Este tipo de segmentos son creados por el SGBD cuando el anlisis sobre
una sentencia SQL necesita un espacio de trabajo suplementario al disponible en
la zona SGA. Al terminar ejecucin de la sentencia, sea con xito o error, se
liberan y pueden volver a ser utilizadas.
En una BBDD que utiliza AUM, todas las transacciones comparten un nico
tablespace undo. Cualquier transaccin en ejecucin puede consumir espacio
libre en ese tablespace. El espacio de undo es dinmicamente transferido, desde
las transacciones confirmadas a las transacciones en ejecucin en caso de
escasez de espacio dentro del tablespace undo
En la nueva poltica diseada, el SGBD cambia automticamente el periodo
para el cual la informacin de undo es retenida, para satisfacer as las
operaciones que requieran informacin de este tipo. Este periodo es conocido en
Oracle 10g como undo retention, e indica la cantidad de tiempo que deber pasar
antes de que la informacin antigua, es decir informacin de undo para
transacciones confirmadas, pueda ser sobrescrita. Este tiempo puede ser
especificado a travs del parmetro UNDO_RETENTION, el cual es dinmico y
puede por tanto ser cambiado en cualquier momento a travs de la sentencia
ALTER SYSTEM.
Leccin
Leccin 4 Mtodos de acceso a datos
ndice
4.1. Indices
4.2. Indices de clave inversa
4.3. Arboles B
4.4. Mapa de bits
4.5. Tablas organizadas como ndices
4.6. Cluster
4.7. Hash cluster
4.8. Particiones
Introduccin
Objetivos
Intervalo
Prefijo
Integridad referencial
Unicidad
Se pueden crear varios tipos de ndices para una tabla, siempre y cuando la
combinacin de columnas de cada uno difiera. En el caso de crear ndices sobre
las mismas columnas deberan cambiarse las combinaciones de las columnas
alternando el orden. Por ejemplo:
Los ndices en Oracle 10g pueden ser nicos (opcin unique) o no nicos
(opcin nonunique), segn exijan o no que las columnas del ndice admitan o no
valores duplicados en distintas filas:
Es recomendable que los ndices sean nicos y que, al menos, exista uno
por cada clave primaria o ajena de cada tabla, as como por cada columna que
contenga valores de bsqueda usuales.
Para solventar esto, Oracle 10g permite generar ndices inversos, donde
las claves (valores de las columnas) se insertan invirtiendo el orden de sus bytes.
Por ejemplo, si se insertan filas con la clave 101, 102 y 103 en una tabla
con un ndice regular, las filas se almacenarn probablemente en el mismo nodo
hoja.
Los nodos superiores de un rbol B apuntan a los nodos del nivel inferior
dentro del rbol. En el nivel ms bajo se encuentran los nodos hojas, estos
contienen cada uno de los valores de la columna indexada y el rowid de la fila
donde se encuentra el resto de datos asociados a ese valor del ndice.
[ATRIBUTOS];
donde:
[ATRIBUTOS];
donde:
Cada fila del ndice contiene los valores de la clave y del resto de los
atributos no claves:
<valor_clave_primaria, valores_clave_no_primarias>
En este tipo de tablas la clave slo se almacena una vez, por lo que se
produce un ahorro de espacio dentro de la BBDD.
Todas las particiones de una tabla o ndice deberan contener las mismas
columnas y definiciones de restricciones, pero cada particin puede tener sus
propios parmetros de almacenamiento y cada particin puede residir en
tablespaces separados.
DD Diccionario de Datos.
EM Enterprise Manager.
EX ExaBytes.
PB PetaBytes.
TB TeraBytes.
[Arun Kumar R., 2005]. Oracle Database 10g Insider Solutions. Sams
Publishing. Captulo 1.
[Dawes,C. & Bryla, B., 2004] OCA: Oracle 10g Administration I Study
Guide. Sybex. Captulo 1.