Oracle

Solo disponible en BuenasTareas
  • Páginas : 16 (3803 palabras )
  • Descarga(s) : 0
  • Publicado : 1 de mayo de 2010
Leer documento completo
Vista previa del texto
Tablas en Oracle
Tablas: son la unidad básica de almacenamiento de datos en Oracle. Los datos son almacenados en filas y columnas. La tabla se define a través de:
§

Nombre. Conjunto de columnas (nombre y tipo)

§

Al crear una tabla(no-clusterizada), Oracle asigna un segmento de datos en el tablespace para mantener los datos de la tabla. Se puede controlar la asignación de espacio parael segmento de datos de la tabla y el uso de este espacio reservado de la siguiente manera:
§

Cantidad de espacio asignado al segmento de datos, asignando los parámetros de almacenamiento del segmento. Controlando el uso del espacio vacío en los bloques que constituyen los extents del segmento, asignando el PCUSED y PCFREE.

§

Tipos de Tablas:
§

Regulares: Particionadas: Organizadaspor Índices: Agrupadas (clusterizadas)
1

§

§

§

Tablas Regulares


Forma comunmente usada para almacenar los datos. Tipo por defecto. Se tiene muy poco control sobre la distribución de las filas de la tabla en su almacenamiento físico:






Se realiza de acuerdo a la actividad propia de los bloques de datos.

2

PCTUSED y PCTFREE
PCTFREE: valor entre 0 y 99. Elvalor de 0 permite que el blqoue entero se llene con inserciones de tuplas nuevas.
§ § §


Valor por defecto 10. Si no existen actualizaciones, PCTFREE= 0. En cualquier otro caso: PCTFREE=100*upd/(upd + ins)

PCTUSED: valor entre 1 y 99. No es un parámetro configurable para tablas organizadas por índice.
§ § §

Valor por defecto 40. Se especifica si se eliminan filas. PCTUSED=100-(PCTFREE+100*upd/blocksize) + 100ins/blocksize

Donde: upd: cantidad promedio en bytes, añadido en una actualización. ins: tamaño promedio de una fila al insertarse. El PCTUSED permite inserciones en la tabla cuando hay suficiente espacio en el bloque para actualizaciones de filas y para una fila más. En una tabla con muchas inserciones, cambiar el PCTUSED puede mejorar el desempeño de los bloques dedatos. La suma del PCTFREE y PCTUSED debe ser menor a 100.
3

PCTUSED y PCTFREE
PCTFREE: valor entre 0 y 99. El valor de 0 permite que el bloque entero se llene con inserciones de tuplas nuevas.
§ § §

Valor por defecto 10. Si no existen actualizaciones, asignar 0. En cualquier otro caso: PCTFREE=100*tam_prom_tupla/(tam_prom_tupla + tam_inic_tupla)



PCTUSED: valor entre 1 y 99. No es unparámetro configurable para tablas organizadas por índice.
§ § §

Valor por defecto 40. Se especifica si se eliminan filas. PCTUSED=100-PCTFREE -100*tam_prom_tupla/blocksize

Donde: tam_prom_tupla: tamaño promedio de una fila tam_inic_tupla: tamaño promedio de una fila al insertarse. La suma del PCTFREE y PCTUSED debe ser menor a 100.
4

PCTUSED y PCTFREE
Un PCTFREE alto permite másactualizaciones en un bloque y el bloque puede acomodar menos filas. Coloque un valor alto si la tabla contiene:


Columnas que son inicialmente NULL y luego actualizadas. Columnas que pueden aumentar de tamaño cuando se actualizan.



El PCTUSED se configura para que el bloque retorne a la lista de ‘libres’ cuando hay suficiente espacio para acomodar una tupla promedio.

5 Encadenamiento y Migración
Una fila puede no ser almacenada completamente en un bloque si:


Encadenamiento (chaining): la fila es demasiado larga para ser almacenada en un bloque. Esto puede ocurrir durante una inserción o una modificación.


Oracle almacena la fila en una cadena de uno o más bloques.



Migración: si un UPDATE aumenta la cantidad de espacio ocupado por la fila, de forma quela misma no pueda ser almacenada en un bloque de datos.


Oracle trata de encontrar otro bloque con suficiente espacio para almacenar la fila completa. Si el bloque existe, se mueve la fila completa. Si no, Oracle separa la fila en varios “row pieces”, se mueve el (los) pedazo(s) que pueda(n) ser almacenado(s) y se realiza encadenamiento. Oracle mantiene en el bloque original de una fila...
tracking img