jueves, 10 de septiembre de 2009

¿Q ues un extends de oracle?

Una extensión es un número específico de bloques de datos contiguos, que se emplea para almacenar un tipo de información específico.

En la sentencia de definición de las tablas se han de incluir los siguientes parámetros de almacenamiento:
INITIAL: denota el tamaño de la extensión inicial.
NEXT: indica el tamaño de las extensiones siguientes.
MINEXTENTS: indica el numero mínimo de extensiones.
MAXEXTENTS: indica el numero máximo de extensiones.
PCTINCREASE: es un factor de crecimiento de una extensión a la siguiente.

fuentes:

http://www.rhernando.net/modules/tutorials/doc/bd/oracle.html

http://dis.um.es/~jfernand/0405/dbd/DBD04T06-oracle.pdf

¿Que es un segmento de oracle?

Introducción a los Segmentos
Todos los datos de la BD están almacenados en Segmentos y existen 5 tipos de segmentos:

1. segmento de datos:El espacio del diccionario de datos se suele mantener más o menos constante, aunque es crítico que tenga suficiente espacio para crecer en el espacio de tablas SYSTEM. Así, hay que tener cuidado de colocar las tablas de usuario, los índices, segmentos temporales y los segmentos de rollback en otros espacios de tablas. Además, es recomendable que el espacio de tablas SYSTEM esté al 50% o 75% de su espacio disponible. Finalmente, asegurarse que los usuarios no tienen privilegios de escritura en el espacio de tablas SYSTEM.

Las tablas crecen proporcionalmente con el número de filas, ya que se puede suponer que la longitud de las filas es constante.

2. segmento de índices: Los índices crecen en tamaño en mayor proporción que las tablas asociadas si los datos en la tabla son modificados frecuentemente. La gestión del espacio es mejor si se mantienen los índices de tablas grandes en espacios de tablas separados.

3.segmento de rollback:

Los segmentos de rollback almacenan la imagen anterior a una modificación de un bloque. La información en el segmento de rollback se utiliza para asegurar la consistencia en lectura, el rollback (el valor en el segmento de rollback se copia en el bloque de datos) y la recuperación.

Es importante comprender cual es el contenido de un segmento de rollback. No almacenan el bloque de datos modificado entero, sólo la imagen previa de la fila o filas modificadas. La información del segmento de roolback consiste en varias entradas llamadas undo. Por ejemplo, si se inserta una fila en una tabla, el undo necesitará sólo el rowid de la fila insertada, ya que para volver atrás la insercion sólo hay que realizar un delete. En las operación de actualización, se almacenará el valor antiguo de las columnas modificadas. El segmento de rollback asegura que la información undo se guardan durante la vida de la transacción.

Un segmento de rollback como cualquier otro segmento consiste en una serie de extensiones. Sin embargo, la mayor diferencia entre un segmento de datos y otro rollback es que en este último las extensiones se utilizan de manera circular. Así, habrá que tener cuidado a la hora de fijar el tamaño del segmento de rollback para que la cabeza no pille a la cola.

4. segmento temporales:

Los segmentos temporales se crean cuando se efectuan las siguientes operaciones:

  • Create Index
  • Select con distinct, order by, union, intersect y minus.
  • uniones no indexadas.
  • Ciertas subconsultas correlacionadas.

Si las tablas a ordenar son pequeñas la ordenación se realiza en memoria principal, pero si la tabla es grande se realiza en disco. El parámetro SORT_AREA_SIZE determina el lugar donde se hace la ordenación. Incrementándole se reduce la creación de segmentos temporales.

5.segmento de bootstrap: Se crea en SYSTEM.
Contiene definiciones del Diccionario para sus tablas, que se cargan al abrir la BD.
No requiere ninguna acción por parte del DBA.
No cambia de tamaño.


Se pueden almacenar más de un segmento por tablespace y un segmento está contenido en su totalidad en un tablespace. Un segmento es un conjunto de extensiones de bloques Oracle que pueden estar en varios ficheros de un tablespace. Cuando se borra un segmento, el espacio es devuelto al tablespace. Oracle guarda una lista de bloques libres por segmento.
El primer bloque asignado a un segmento contiene la cabecera del segmento donde se almacena información de control para el kernel Oracle.
Cada segmento tiene un conjunto de parámetros de almacenamiento que controla su crecimiento:
initial: tamaño de la extensión inicial (10k).
next: tamaño de la siguiente extensión a asignar (10k).
minextents: número de extensinones asignadas en el momento de la creación del segmento (1).
maxextents: número máximo de extensiones (99).
pctincrease: Porcentaje en el que crecerá la siguiente extensión antes de que se asigne, en relación con la última extensión utilizada (50).
pctfree: porcentaje de espacio libre para actualizaciones de filas que se reserva dentro de cada bloque asignado al segmento (10).
pctused: porcentaje de utilización del bloque por debajo del cual Oracle considera que un bloque puede ser utilizado para insertar filas nuevas en él.
tablespace: nombre del tablespace donde se creará el segmento.

Fuentes:
http://www.infor.uva.es/~jvegas/cursos/bd/oracledba/capitulo4.html
http://www.infor.uva.es/~jvegas/cursos/bd/orarq/orarq.html#3.3.2