Oracle/PLSQL: sentencia CREATE TABLESPACE

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

Oracle/PLSQL: sentencia CREATE TABLESPACE

Este tutorial de Oracle describe cómo usar Oracle CREAR DECLARACIÓN DE TABLESPACE Con sintaxis y ejemplos.

describir

La instrucción CREATE TABLESPACE se utiliza para asignar espacio en la base de datos de Oracle para almacenar objetos de esquema.

La instrucción CREATE TABLESPACE se puede utilizar para crear 3 tipos de espacios de tabla:

  1. espacio de mesa permanente
  2. espacio de tabla temporal
  3. deshacer tablespace

Veremos los 3 tipos de tablespaces.

#1 – Tablespaces permanentes

Los tablespaces permanentes contienen objetos de esquema persistentes almacenados en archivos de datos.

sintaxis

La sintaxis de la sentencia CREATE TABLESPACE al crear un tablespace permanente es:

CREATE
  [ SMALLFILE | BIGFILE ]
  TABLESPACE tablespace_name
  { DATAFILE { [ 'filename' | 'ASM_filename' ]
               [ SIZE integer [ K | M | G | T | P | E ] ]
               [ REUSE ]
               [ AUTOEXTEND
                   { OFF
                   | ON [ NEXT integer [ K | M | G | T | P | E ] ]
                   [ MAXSIZE { UNLIMITED | integer [ K | M | G | T | P | E ] } ]
                   }
               ]
             | [ 'filename | ASM_filename'
             | ('filename | ASM_filename'
                 [, 'filename | ASM_filename' ] )
             ]
             [ SIZE integer [ K | M | G | T | P | E ] ]
             [ REUSE ]
             }
     { MINIMUM EXTENT integer [ K | M | G | T | P | E ]
     | BLOCKSIZE integer [ K ]
     | { LOGGING | NOLOGGING }
     | FORCE LOGGING
     | DEFAULT [ { COMPRESS | NOCOMPRESS } ]
   storage_clause
     | { ONLINE | OFFLINE }
     | EXTENT MANAGEMENT
        { LOCAL
           [ AUTOALLOCATE
           | UNIFORM
              [ SIZE integer [ K | M | G | T | P | E ] ]
           ]
        | DICTIONARY
        }
     | SEGMENT SPACE MANAGEMENT { AUTO | MANUAL }
     | FLASHBACK { ON | OFF }
         [ MINIMUM EXTENT integer [ K | M | G | T | P | E ]
         | BLOCKSIZE integer [ K ]
         | { LOGGING | NOLOGGING }
         | FORCE LOGGING
         | DEFAULT [ { COMPRESS | NOCOMPRESS } ]
         storage_clause
         | { ONLINE | OFFLINE }
         | EXTENT MANAGEMENT
              { LOCAL
                [ AUTOALLOCATE | UNIFORM [ SIZE integer [ K | M | G | T | P | E ] ] ]
                | DICTIONARY
              }
         | SEGMENT SPACE MANAGEMENT { AUTO | MANUAL }
         | FLASHBACK { ON | OFF }
         ]
     }

SMALLFILE Un tablespace que contiene 1022 datos o archivos temporales (cada archivo puede tener un tamaño de hasta 4 millones de bloques). Este es el tamaño más común para crear tablespaces. BIGFILE Un tablespace que contiene solo un archivo temporal o de datos (este archivo puede tener un tamaño de hasta 4 millones de bloques).

propina: Si se omite la opción SMALLFILE o BIGFILE, la base de datos de Oracle utilizará el tipo de espacio de tabla predeterminado.

tablespace_name El nombre del tablespace a crear. La sintaxis para cláusula_almacenamiento cláusula_almacenamiento es:

STORAGE
   ({ INITIAL integer [ K | M | G | T | P | E ]
    | NEXT integer [ K | M | G | T | P | E ]
    | MINEXTENTS integer
    | MAXEXTENTS { integer | UNLIMITED }
    | PCTINCREASE integer
    | FREELISTS integer
    | FREELIST GROUPS integer
    | OPTIMAL [ integer [ K | M | G | T | P | E ] | NULL ]
    | BUFFER_POOL { KEEP | RECYCLE | DEFAULT }
    }
       [ INITIAL integer [ K | M | G | T | P | E ]
       | NEXT integer [ K | M | G | T | P | E ]
       | MINEXTENTS integer
       | MAXEXTENTS { integer | UNLIMITED }
       | PCTINCREASE integer
       | FREELISTS integer
       | FREELIST GROUPS integer
       | OPTIMAL [ integer [ K | M | G | T | P | E ] | NULL ]
       | BUFFER_POOL { KEEP | RECYCLE | DEFAULT }
       ]
   )

Ejemplo: Tablespace permanente

La siguiente es la declaración CREATE TABLESPACE para crear un tablespace permanente simple:

CREATE TABLESPACE tbs_perm_01
  DATAFILE 'tbs_perm_01.dat' 
    SIZE 20M
  ONLINE;

Esta instrucción CREATE TABLESPACE crea un tablespace permanente denominado tbs_perm_01 con un archivo de datos denominado tbs_perm_01.dat.

La siguiente es una instrucción CREATE TABLESPACE que crea un tablespace permanente que se expandirá cuando se necesite más espacio:

CREATE TABLESPACE tbs_perm_02
  DATAFILE 'tbs_perm_02.dat' 
    SIZE 10M
    REUSE
    AUTOEXTEND ON NEXT 10M MAXSIZE 200M;

Esta sentencia CREATE TABLESPACE crea un tablespace permanente llamado tbs_perm_02 con un archivo de datos llamado tbs_perm_02.dat. Cuando se requiera más espacio, se agregarán automáticamente 10 millones de extensiones hasta alcanzar los 200 MB.

La siguiente es una instrucción CREATE TABLESPACE que crea un tablespace permanente BIGFILE que se expandirá cuando se necesite más espacio:

CREATE BIGFILE TABLESPACE tbs_perm_03
  DATAFILE 'tbs_perm_03.dat'
    SIZE 10M
    AUTOEXTEND ON;

Esta instrucción CREATE TABLESPACE crea un tablespace permanente BIGFILE denominado tbs_perm_03 con un archivo de datos denominado tbs_perm_03.dat.

#2 – Tablespace temporal

Los espacios de tablas temporales contienen objetos de esquema almacenados en archivos temporales que existen durante la sesión.

sintaxis

La sintaxis de la sentencia CREATE TABLESPACE cuando se crea un tablespace temporal es:

CREATE
  [ SMALLFILE | BIGFILE ]
  TEMPORARY TABLESPACE tablespace_name
    [ TEMPFILE { [ 'filename' | 'ASM_filename' ]
                 [ SIZE integer [ K | M | G | T | P | E ] ]
                 [ REUSE ]
                 [ AUTOEXTEND
                     { OFF
                     | ON [ NEXT integer [ K | M | G | T | P | E ] ]
                     [ MAXSIZE { UNLIMITED | integer [ K | M | G | T | P | E ] } ]
                     }
                 ]
               | [ 'filename | ASM_filename'
               | ('filename | ASM_filename'
                   [, 'filename | ASM_filename' ] )
               ]
               [ SIZE integer [ K | M | G | T | P | E ] ]
               [ REUSE ]
               }
    [ TABLESPACE GROUP { tablespace_group_name | '' } ]
    [ EXTENT MANAGEMENT
       { LOCAL
          [ AUTOALLOCATE | UNIFORM [ SIZE integer [ K | M | G | T | P | E ] ] ]
       | DICTIONARY
       } ]

SMALLFILE Un tablespace que contiene 1022 datos o archivos temporales (cada archivo puede tener un tamaño de hasta 4 millones de bloques). Este es el tamaño más común para crear tablespaces. BIGFILE Un tablespace que contiene solo un archivo temporal o de datos (este archivo puede tener un tamaño de hasta 4 millones de bloques).

propina: Si se omite la opción SMALLFILE o BIGFILE, la base de datos de Oracle utilizará el tipo de espacio de tabla predeterminado.

tablespace_name El nombre del tablespace a crear.

Ejemplo: Tablespace temporal

La siguiente es la instrucción CREATE TABLESPACE que crea un tablespace temporal:

CREATE TEMPORARY TABLESPACE tbs_temp_01
  TEMPFILE 'tbs_temp_01.dbf'
    SIZE 5M
    AUTOEXTEND ON;

Esta instrucción CREATE TABLESPACE crea un tablespace temporal llamado tbs_temp_01 con un archivo temporal llamado tbs_temp_01.dbf.

#3 – Deshacer Tablespace

Si la base de datos de Oracle se ejecuta en el modo de gestión de deshacer automático, se crea un tablespace de deshacer para gestionar los datos de deshacer.

sintaxis

La sintaxis de la instrucción CREATE TABLESPACE al crear un tablespace de deshacer es:

CREATE
  [ SMALLFILE | BIGFILE ]
  UNDO TABLESPACE tablespace_name
    [ DATAFILE { [ 'filename' | 'ASM_filename' ]
                 [ SIZE integer [ K | M | G | T | P | E ] ]
                 [ REUSE ]
                 [ AUTOEXTEND
                     { OFF
                     | ON [ NEXT integer [ K | M | G | T | P | E ] ]
                     [ MAXSIZE { UNLIMITED | integer [ K | M | G | T | P | E ] } ]
                     }
                 ]
               | [ 'filename | ASM_filename'
               | ('filename | ASM_filename'
                   [, 'filename | ASM_filename' ] )
               ]
               [ SIZE integer [ K | M | G | T | P | E ] ]
               [ REUSE ]
               }
    [ EXTENT MANAGEMENT
       { LOCAL
          [ AUTOALLOCATE | UNIFORM [ SIZE integer [ K | M | G | T | P | E ] ] ]
       | DICTIONARY
       } ]
    [ RETENTION { GUARANTEE | NOGUARANTEE } ]

SMALLFILE Un tablespace que contiene 1022 datos o archivos temporales (cada archivo puede tener un tamaño de hasta 4 millones de bloques). Este es el tamaño más común para crear tablespaces. BIGFILE Un tablespace que contiene solo un archivo temporal o de datos (este archivo puede tener un tamaño de hasta 4 millones de bloques).

propina: Si se omite la opción SMALLFILE o BIGFILE, la base de datos de Oracle utilizará el tipo de espacio de tabla predeterminado.

tablespace_name El nombre del tablespace a crear.

Ejemplo – UNDO TABLESPACE

La siguiente es la instrucción CREATE TABLESPACE que crea el tablespace de deshacer:

CREATE UNDO TABLESPACE tbs_undo_01
  DATAFILE 'tbs_undo_01.f'
    SIZE 5M 
    AUTOEXTEND ON
  RETENTION GUARANTEE;

Esta instrucción CREATE TABLESPACE crea un tablespace de deshacer denominado tbs_undo_01 que tiene un tamaño de 5 MB y tiene un archivo de datos denominado tbs_undo_01.f.