Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Escuela de Ingeniera
Estructuras de Almacenamiento
Objetivos
Despus de completar esta leccin, usted deber:
Definir el propsito de los Tablespaces y Datafiles
Crear Tablespaces
Administrar Tablespaces
Obtener Informacin de Tablespaces
Segment
Extents
Data
blocks
OS blocks
Introduccin Tablespaces
Los tablespace son utilizados para almacenar lgicamente los datos. Se puede tener un tablespace para
almacenar informacin de contabilidad y otro para almacenar las ventas de una compaia. Al segmentar
grupos de datos relacionados en tablespaces diferentes, se simplifican las tareas de administracin de
dichos grupos.
Los tablespace pueden estar constituidos de varios datafiles. Al utilizar mas de un datafile por
tablespace, pueden distribuirse los datos en ms de un disco fsico y balancear la carga de Input/Output,
mejorando as el rendimiento del sistema general.
Como parte del proceso de crear una base de datos, Oracle crea un tablespace llamado SYSTEM.
Oracle recomienda no almacenar informacin en dicho tablespace y crear las estructuras que sean
necesarias de tablespaces para almacenar los datos de las aplicaciones corporativas que almacenara. El
tablespace SYSTEM, almacena el diccionario de datos de una base de datos Oracle.
Segmentos en Oracle
Un segmento almacena la informacin de una estructura lgica de
Oracle dentro de un Tablespace. Est formado por una o ms
extensiones y, a medida que va creciendo el segmento se van
asignando nuevas extensiones al mismo. Existen diferentes tipos de
segmentos:
Segmentos de datos
Almacena los datos correspondientes a una tabla
Segmentos de ndices
Mantiene los datos para un ndice definido dentro de la base de datos
Segmentos de rollback
Permite almacenar las acciones de una transaccin que debe ser
deshecha bajo ciertas circunstancias
Segmentos temporales
Se crean cuando se requiere de un espacio temporal para procesar
una instruccin de SQL y son destruidos una vez que haya culminado
Segmentos
Un segmento es un conjunto de extents que han sido asignados para un tipo de almacenamiento
especfico y todos ellos se encuentran ubicados en el mismo tablespace. Existen diferentes tipos de
segmentos:
Segmentos de datos
Cada segmento de datos almacena los datos correspondientes a una tabla
Segmentos de ndices
Cada segmento de ndice mantiene los datos para un ndice definido dentro de la base de datos
Segmentos de rollback
Un segmento de rollback permite almacenar las acciones de una transaccin que debe ser deshecha bajo ciertas
circunstancias
Segmentos temporales
Los segmentos temporales se crean cuando se requiere de un espacio temporal para procesar una instruccin de
SQL y son destruidos una vez que haya culminado el procesamiento de la instruccin.
Extents / Extensiones
Extents
Los extents son las piezas utilizadas para construir segmentos. Cada extent se compone de una serie de
bloques de datos. La razn principal de esta estructura es la de minimizar el espacio desperdiciado
(vaco) de un tablespace. A medida que se insertar o eliminan filas de una tabla, los extents del
tablespace asociado a la tabla pueden aumentar o disminuir de tamao. De esta forma el espacio para el
almacenamiento de los datos, puede ser administrado dependiendo de como la tabla va sufriendo
modificaciones en el nmero de filas.
Cuando se crea un tablespace, se puede especificar el nmero minimo de extents a ser asignados, asi
como el nmero de extents a ser agregados cada vez que se agote el espacio disponible para almacenar
datos.
Bloques de Datos
Una base de datos se encuentra almacenada en bloques de datos que es el nivel mas pequeo de
unidades de almacenamiento. El tamao de un bloque de datos, siempre corresponde a un mltiplo del
tamao de bloque manejado por el sistema operativo. El tamao del bloque de datos es un valor
configurable en Oracle.
Tipos de Segmentos
Segmentos de datos y temporales
Introduccin
Un segmento almacena la informacin de una estructura lgica de Oracle dentro de un Tablespace. Est
formado por una o ms extensiones y, a medida que va creciendo el segmento se van asignando nuevas
extensiones al mismo. Hay cuatro tipos de segmentos: de datos, de ndices, temporales y de rollback.
Segmentos de datos e ndices
En un segmento de datos se almacenan todos los datos de una tabla que no est particionada o que no
forme parte de un cluster, de una particin de una tabla particionada o, de un cluster de tablas. Se crea el
segmento de datos a la hora de ejecutar la sentencia create que crea la tabla, cluster o particin. En
dicha sentencia se indican tambin los valores de la clusula storage y que va a determinar la forma en
que dicho segmento va a ir asignando y desasignando las extensiones.
En el caso de los ndices, existe un segmento para cada ndice no particionado o para cada particin de
un ndice particionado. Al igual que con las tablas, los segmentos de ndices se crean al ejecutar la
sentencia de creacin de ndices en la cual, tambin se pueden indicar valores para la clusula storage y
as parametrizar la forma en que se le asignarn las extensiones a medida que vaya creciendo.
Segmentos temporales
Cuando Oracle procesa las consultas se puede ver en la necesidad de utilizar espacio en disco
para poder llevar a cabo algunas partes del parsing (anlisis) y de la ejecucin de la misma.
Solamente utilizar este tipo de segmentos cuando no pueda realizar la consulta ntegramente
en memoria o cuando no pueda buscarse un mtodo alternativo para realizarla utilizando los
ndices.
Hay varios tipos de sentencias en las que Oracle se ve en la obligacin de utilizar los segmentos
temporales:
SELECT ... ORDER BY. CREATE INDEX. SELECT ... GROUP BY. SELECT ... UNION ...
SELECT DISTINCT ... SELECT INSERSEC ... SELECT MINUS ...
Se puede dar el caso en el que algunas consultas en las que intervengan joins en los que no
haya ndices que faciliten la unin y en las que se den a la vez sentencias del tipo "group by" y
"order by" o incluso "distinct", en las que no solo se requiere de un nuevo segmento temporal
sino que pueden adquirirse dos segmentos para poder realizar dichas consultas.
Como es natural, cuantas ms operaciones se hagan en memoria mejor ser el rendimiento del
sistema, por lo que si en nuestra aplicacin existe un nmero considerable de consultas de las
mencionadas anteriormente, resulta muy apropiado hacer un tunning para decidir si ampliar la
zona de memoria reservada para las ordenaciones, aumentando el valor del parmetro
SORT_AREA_SIZE.
En Oracle tambin existen las tablas temporales y los ndices temporales para dichas tablas.
Estos objetos tamben utilizan segmentos temporales, pero se les asigna y desasigna de forma
diferente a como se hace con las consultas, creacin de ndices y ordenaciones.
Asignacin de segmentos temporales en consultas.
En las consultas, los segmentos temporales se van asignando segn se van necesitando y, al
terminar la ejecucin de la sentencia, se desasignan. Para determinar en qu tablespace se van
a crear los segmentos temporales necesarios para estas consultas, a cada usuario de la base de
datos, se le asigna un tablespace para dicha funcin. Esto se realiza con el siguiente comando:
Alter user nombre_de_usuario default tablespace nombre_tablespace_temporal;
Por defecto, en la creacin del usuario tambin se le puede asignar un tablespace temporal y, si
no se le indica, el sistema le asigna por defecto siempre el tablespace SYSTEM. Es muy
importante que ningn esquema o usuario tenga como tablespace temporal el SYSTEM por
varios motivos. En primer lugar, porque SYTEM no es un tablespace temporal y por lo tanto, no
est optimizado para la gestin de los segmentos temporales, en segundo lugar, al utilizar
SYSTEM como tablespace temporal, se aumenta la fragmentacin de dicho tablespace por culpa
de los segmentos temporales que se van creando y borrando en medio de segmentos de datos e
ndices con lo que disminuye drsticamente el rendimiento del tablespace principal de la base de
datos, y por ltimo, se corre el peligro de que se llene este tablespace por culpa de alguna select
mal escrita y que se descontrole aumentando desproporcinadamente el tamao del segmento
temporal creado para ejecutarla.
10
Asignacin de extensiones
Como hemos indicado anteriormente, un segmento de rollback debe tener al menos dos
extensiones y cada una de sus extensiones est formada por un nmero determinado de
bloques. A continuacin vamos a explicar cmo se organizan las transacciones en los
segmentos de rollback.
En un segmento de rollback pueden estar realizndose a la vez varias transacciones. Estas
transacciones pueden estar escribiendo en distintas extensiones o incluso en la misma. Sin
embargo, en un bloque de una extensin solamente puede contener informacin de una
transaccin, es decir, que no pueden escribir dos transacciones en el mismo bloque de la misma
extensin a la vez. Adems, como hemos indicado que la escritura de transacciones es
secuencial, en cada momento una transaccin escribe en una sola extensin. Cuando una
transaccin se queda sin espacio para escribir en la extensin en la que estaba, puede hacer
dos cosas, bien reutilizar una extensin que ya estaba asignada al segmento o bien requerir una
nueva extensin para el segmento de rollback.
La primera transaccin que necesita ms espacio nuevo chequea la siguiente extensin del
segmento de rollback, y si no contiene informacin de transacciones activas, la adquiere. A partir
de ese momento, todas las dems transacciones que necesiten espacio utilizarn esta
extensin. Si, nuevamente se llena esta extensin y alguna transaccin sigue necesitando
espacio libre, Oracle vuelve a comprobar si en la siguiente extensin que le toca ocupar,
siguiendo el orden secuencial y circular de asignacin de extensiones, no se estn realizando
transacciones activas (insistimos en la naturaleza circular de los segmentos de rollback que, una
vez ocupada la ltima extensin, vuelve a intentar ocupar la primera como si formaran todas un
anillo).
Como estamos viendo, Oracle mantiene un anillo formado por las extensiones que ha ido
adquiriendo este segmento de rollback y siempre intenta reusar una de las extensiones que lo
forman antes que adquirir una nueva del sistema. Si en algn momento Oracle necesita utilizar
una extensin y, en todas los que forman parte del anillo se estn escribiendo transacciones
activas, se ve obligado a adquirir una nueva extensin del sistema y a aadirla al anillo del
segmento de rollback para seguir escribiendo. El nmero mximo de extensiones que pueden
formar parte de un segmento de rollback viene determinado por una parmetro definido en el
initSID.ora y que es MAXEXTENTS.
Ya hemos visto cmo se asignan extensiones a un segmento de rollback, pero cmo se van
desasignando?.
Al borrar un segmento de rollback, todas las extensiones que tena asignadas el segmento se
devuelven al tablespace y pueden ser utilizadas por el resto de objetos que pertenecen al
tablespace. Existe otra manera de devolver el espacio utilizado por un segmento sin tener que
eliminarlo. A la hora de crear un segmento de rollback se puede indicar un valor en el parmetro
OPTIMAL de la clusula storage que representa el tamao ptimo de dicho segmento en bytes.
Cada vez que Oracle necesista una nueva extensin para el segmento de rollback, compara el
tamao que tiene dicho segmento con el valor del parmetro optimal y, si lo ha sobrepasado, ir
devolviendo al tablespace las extensiones ms antiguas que se va encontrando en las que ya no
quedan transacciones activas ya que, son las que menor probabilidad tienen de tener datos
necesarios para mantener la consistencia de lectura.
11
Si puede, liberar tantas extensiones como para quedarse con un tamao aproximado al
indicado en optimal pero siempre por encima.
El valor del parmetro ptimal nuca podr ser menor que el espacio necesario para la creacin
del segmento, en el que participan el parmetro initial_extent, next_extent, y min_extents
(recordemos que pct_increase no tiene sentido en los segmentos de rollback, todas las
extensiones deben ser iguales).
12
13
Estructura de un bloque
Los bloques de base de datos, pueden contener informacin de tablas, ndices o segmentos de
rollback, pero no importa qu informacin contengan, siempre tienen la misma estructura, que es
la mostrada en la siguiente figura.
Todo bloque de datos o, data block, est dividido en una cabecera, en un directorio de tablas que
utilizan dicho bloque, en un directorio de las filas que se encuentran almacenadas en ese bloque,
de espacio an libre y de las filas de datos de las tablas, ndices o segmentos de rollback. Al
espacio ocupado por la cabecera ms el directorio de tablas y ms el directorio de filas se le
llama overhead ya que es un espacio del bloque que realmente no se rellena con datos sino que
est ocupado por la informacin que necesita Oracle para saber exactamente qu datos tiene en
dicho bloque.
Cabecera:
Contiene informacin general sobre el bloque como el tipo de segmento al que pertenece (ndice,
tabla, rollback) o la direccin del bloque.
Directorio de Tablas:
Contiene informacin acerca de las tablas que tienen datos en el bloque.
Directorio de Filas:
Contiene informacin sobre las filas que se encuentran en cada momento en el bloque. Esta
informacin incluye la direccin de la fila dentro de la subzona "Datos de Filas" del bloque en la
que debe buscar Oracle los datos.
El espacio ocupado por esta subzona va aumentando a medida que se insertan nuevas filas en
el bloque, sin embargo nunca se libera el espacio. Si se borran filas de datos que estaban en el
bloque, en el directorio de filas desaparecer la entrada que apuntaba a ellas, pero el espacio
permanecer reservado aunque vaco. A medida que se insertan nuevas filas de datos en el
bloque, tambin se insertan registros en el Directorio de Filas, pero antes de aumentar el tamao
de esta subzona para la nueva entrada, se comprueba si alguna de las entradas que hay est
vaca y en ese caso se "ocupa" y no hace falta que crezca ms la subzona.
Espacio Libre:
Esta subzona est reservada para la insercin de nuevas filas en el bloque o, para la
modificacin de campos que requieren ms espacio que el que tenan con anterioridad. Esto
ltimo ocurre, por ejemplo, con los campos que son de tipo varchar2. Si en un campo de una
tabla tenemos un varchar2 de 30 caracteres para almacenar el nombre del empleado, si
insertamos un registro con el nombre de 'Jesus', solo ocupa 5 bytes y si posteriormente lo
modificamos para poner 'Jesus Maria', se necesitarn 6 bytes ms para almacenarlo.
Si en el bloque se estn almacenando datos de segmentos de tipo tabla o ndice, en la subzona
de Espacio Libre tambin se utiliza para llevar un registro de las transacciones que en cada
momento acceden a datos del bloque. Se necesita una entrada de transaccin siempre que se
realice una insert, update, delete o select for update sobre filas del bloque. El tamao necesario
para cada una de las entradas de transacciones depende del sistema operativo.
Datos de Filas:
En esta subzona se almacenan los datos de las tablas o de los ndices del bloque. Se puede dar
el caso de que una fila no entre completa en el bloque y tenga que ocupar ms de un bloque.
14
Cabecera
Directorio de Tablas
Directorio de Filas
Espacio Libre
Datos de Filas
PCTFREE
PCTUSED
Pctfree
Este parmetro se utiliza para modificar el comportamiento de Oracle a la hora de insertar y modificar
filas dentro de un bloque de datos o data block, se asigna a la hora de crear la tabla o ndice. Tambin se
puede modificar posteriormente el valor del pctfree alterando la tabla o el ndice.
Este parmetro indica el porcentaje mnimo que se debe dejar libre para modificaciones de los
datos de las filas que ya existen dentro del bloque. Hay que tener en cuenta que el espacio de un
bloque no est compuesto solamente por los datos, sino que tambin hay un overhead, por lo que si
asignamos a un segmento de tipo tabla un pctfree de 20, no estamos dejando para insercciones el 80%
sino el 80% menos lo que ocupe el overhead del bloque.
El concepto de pctfree se entiende mejor con un ejemplo. Si a una tabla le asignamos un pctfree de 20,
le estamos diciendo que se pueden insertar filas en el hasta que quede libre en dicho bloque solamente
el 20 por ciento. A partir de ese instante, todas las filas nuevas que se creen se crearn en otros bloques
ya que en este ya no queda sitio para ms. Entonces, qu ocurre con este 20%?. Pues muy sencillo, se
utiliza para las modificaciones de las filas que ya estn en el bloque. Cuando se modifica una fila y se
aumenta el contenido de un campo, por ejemplo, el campo "nombre" tena el valor 'Jesus' y ahora pasa a
tener el valor 'Jesus Maria', Oracle echa mano del espacio libre dentro del bloque para poder realizar
esta operacin.
15
Concepto PCTFREE
Si a una tabla le asignamos un PCTFREE de 20, estamos
diciendo que se pueden insertar filas en el hasta que quede libre
en dicho bloque solamente el 20%. A partir de entonces, todas
las filas nuevas que se creen, se crearn en otros bloques pues
en este ya no queda sitio para ms.
Qu ocurre con este 20%?
Se utiliza para las modificaciones de las filas que ya estn en el
bloque. Cuando se modifica una fila y se aumenta el contenido de
un campo, por ejemplo, el campo "nombre" tena el valor 'Jesus' y
ahora pasa a tener el valor 'Jesus Maria', Oracle usa el espacio
libre dentro del bloque para poder realizar esta operacin.
Por lo tanto, este espacio podra incluso llenarse lo cual, en caso de seguir haciendo modificaciones de
este estilo, podra generarnos filas migradas, como se explica ms adelante. Sin embargo, el espacio
libre en un bloque tambin puede aumentar, bien borrando filas o bien haciendo updates que disminuyan
el valor de los campos de las filas que existen en dicho bloque. Cuando se hace espacio libre suficiente
en el bloque se permite otra vez la inserccin de registros en el mismo. El concepto de "espacio libre
suficiente" para volver a permitir inserciones en el bloque es lo que se define con el parmetro pctused.
Pctused
El concepto de pctused est directamente relacionado con pctfree. Supongamos que se crea un
segmento (tabla o ndice) y se le asigna un pcfree de 20, por lo que todos sus bloques tendrn dicho
pctfree. Como ya hemos explicado, esto quiere decir que podremos insertar filas o registros en uno de
sus bloques hasta que se llene al 80 por ciento. A partir de ese momento ya no se pueden insertar
nuevos registros hasta que se libere espacio en el bloque, o sea, hasta que vuelva a aumentar el espacio
libre.
16
Concepto PCTUSED
17
Para consultar el valor tanto del parmetro pctfree como del parmetro pctused de cada segmento de
tipo tabla o de tipo ndice, podemos leer las vistas dba_tables y dba_indexes del usuario SYS.
Select owner, table_name, pct_free, pct_used from dba_tables;
Select owner, index_name, pct_free from dba_indexes;
Para modificar el valor de los parmetros de una tabla o de un ndice se pueden utilizar las siguientes
sentencias:
Alter table nombre_de_tabla pctfree nuevo_pct_free;
Alter table nombre_de_tabla pctused nuevo_pct_used;
Alter index nombre_de_indice pctfree nuevo_pct_free;
Encadenamiento y Migracin de Filas
Existen dos circunstancias diferentes por las cuales puede ocurrir que los datos de una fila recin
insertada no tengan espacio suficiente dentro del bloque. Hay que intentar por todos los medios evitar
que esto se produzca para que no caiga el rendimiento del sistema ya que cuando hay encadenamiento
o migracion de filas, los datos de una fila se dispersan por varios bloques, con lo que para obtener esos
datos o para modificarlos Oracle debe recorrer varios bloques que, posiblemente, no estn contiguos.
18
Encadenamiento de filas:
El encadenamiento o chained rows, se da cuando los datos de una fila ocupan tanto espacio que
no caben fsicamente en un solo bloque y Oracle debe guardarlos en dos o ms bloques de los
reservados para ese segmento. Esto suele ocurrir generalmente cuando se utilizan columnas de
tipo long o long raw que pueden almacenar grandes cantidades de espacio, por lo que no caben
en un solo bloque.
Migracin de filas
Este otro caso se da cuando modificamos los datos de una fila de un bloque, aumentndolos de
tamao, es decir, como en le ejemplo anterior, si tenamos un campo varchar2(30) con el valor
'Jesus' solo ocupaba 5 bytes y si lo modificamos para que contenga 'Jesus Maria' necesita 11
bytes. En este caso, si en la subzona en la que tenemos el espacio libre del bloque no
disponemos de espacio suficiente, Oracle mueve o mejor dicho, migra toda la fila a un nuevo
bloque en el que si que haya espacio para toda la fila. Sin embargo, para no tener que cambiarle
a dicha fila el rowid, es decir, el identificador nico de la fila, lo que se hace es dejar en el bloque
inicial una informacin mnima de la fila, que ser simplemente un puntero hacia la direccin del
nuevo bloque en el que se ha reubicado toda esta fila.
INITRANS
Especifica el mnimo y mximo de slots de transacciones que se crean en un bloque de ndice o
de datos. Los slots de transaccin se utilizan para almacenar la informacin sobre las
transacciones que estn realizando cambios al bloque en un instante del tiempo. Una
transaccin utiliza solamente un slot de transaccion, incluso si est cambiando ms de una
entrada filas o ndices. INITRANS, por defecto es 1 para un segmento de datos y 2 para un
segmento de ndices, eso garantiza un nivel del mnimo concurrencia. Por ejemplo, si el sistema
es seteado a 3, INITRANS se asegura de que por lo menos tres transacciones puedan realizar
concurrentemente cambios al bloque. En caso de necesidad, los slots adicionales de la
transaccin se pueden asignar del espacio libre en el bloque para permitir que transacciones
ms concurrentes modifiquen filas en el bloque.
MAXTRANS
Su valor por defecto es 255, fija el lmite para el nmero de las transacciones concurrentes que
pueden modificar datos en un bloque de datos o ndices. Cuando est seteado, este valor
restringe el uso de slots de transacciones y por lo tanto, da garantiza que hay suficiente espacio
en el bloque para datos o ndices.
19
Tablespaces y Datafiles
Oracle almacena datos lgicamente en tablespaces y
fsicamente en datafiles.
Tablespaces:
Puede pertenecer a una sola base de datos a la vez
Consiste de uno o ms datafiles
Se dividen dentro de unidades lgicas de
almacenamiento
Datafiles:
Pueden pertenecer solo a un tablespace y a una base
de datos
Database
Son un repositorio de datos (objectos)
Tablespace
Data files
20
21
22
23
24
25
Nota: Si usted desea manejar un base de datos que sus tablespaces son manejados por
diccionario y desea convertirlo a una administracin local, utilice los procedimientos
almacenados DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL.
Logging
Cuando ocurren cambios a objetos dentro de un tablespace, el cambio es registradoen el
redo stream. Este redo stream se inicia en memoria, es escrito a los archivo de redolog
online y puede ser escrito a los archivos de archive log. Usted puede dejar esteproceso
desactivo. Si usted desactiva el registro (logging), los objetos en el tablespace seran
irrecuperables en el caso de un evento de falla
Thresholds (Umbrales)
Al usar el tab Tablespace Thresholds, se setea el espacio utilizado para Umbrales en el
tablespace activo. Se puede definir un uso por defecto de Umbrales o especificar un
porcentaje de espacio utilizado para el tablespace activo ingresando valores para el Warning
and Critical fields.
26
SYSTEM
SYSAUX
TEMP
UNDOTBS1
USERS
EXAMPLE
27
28
Alterando un Tablespace
Alterando un tablespace
Despues de crear el tablespace, usted puede alterarlo de diferentes maneras dependiendo de
las necesidades de cambios en su sistema.
Renaming: Simplemente ingresar un nuevo nombre para el tablespace y hacer click en el
botn Apply. Con esta accin se renombra un tablespace.
Changing the Status: Un tablespace puede estar en 1 de 3 estados posibles. Dependiendo
del tipo de tablespace, no todos los estados estan disponibles:
Read Write: El tablespace es online y se puede ser leer o escribir en el.
Read Only: Especifica que el tablespace esta de read-only por tanto, solo acepta
transacciones de lectura-escritura. En este estado, las transacciones existentes pueden
terminar (commit o rollback), pero no se permiten operaciones DML excepto un commit o
rollback de transacciones existentes previamente y que modificaron bloques. El
tablespace esta online mientras este en estado Read-Only. No se puede dejar el
tablespace SYSTEM o SYSAUX en modo read-only.
29
30
31
32
Borrando Tablespaces
Borrando Tablespaces
Se puede borrar un tablespace y su contenido (segmentos contenidos en el tablespace) desde
la base de datos, si el tablespace y su contenido ya no se necesitan. Se debe tener el privilegio
de DROP TABLESPACE para borrar un tablespace.
Cuando se borra un tablespace, los archivos de punteros en el archivo de control asocidado a
la base de datos son actualizados. Opcionalmente se pueden eliminar los archivos del sistema
operativo (datafiles) que constituian el tablespace. Sino se indica a Oracle que borre los
datafiles al mismo tiempo que borra el tablespace, usted debera eliminar dichos archivos
manualmente con comandos del sistema operativo asociado.
No se puede borrar un tablespace que contiene segmentos activos. Por ejemplo, si una tabla
en el tablespace esta siendo usada o el tablespace contiene data de UNDO que necesitan ser
rollbaqueadas sus transacciones, cualquiera sea el caso, no es posible borrar el tablespace.
El tablespace puede estar online o offline, pero la mejor forma es dejar offlie el tablespace
antes que sea borrado.
33
34
Fin de la Leccin