97
Gestión de Segmentos Temporales Gestión de Segmentos Temporales 11

Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

Embed Size (px)

Citation preview

Page 1: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

Gestión de Segmentos TemporalesGestión de Segmentos Temporales

11

Page 2: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-2

ObjetivosObjetivos

• Entender los distintos tipos desegmentos temporales

• Dar espacio a segmentos temporales enla base de datos

• Obtener información de segmentostemporales desde una base de datos odesde una instancia

• Entender los distintos tipos desegmentos temporales

• Dar espacio a segmentos temporales enla base de datos

• Obtener información de segmentostemporales desde una base de datos odesde una instancia

Page 3: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-3

Segmentos TemporalesSegmentos Temporales

Data file

Memoria

SORT_AREA_SIZE

Page 4: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-4

Tipos de Segmentos TemporalesTipos de Segmentos Temporales

Temporaltablespace

Permanentetablespace

Memoria

Page 5: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-5

Segmentos Temporalesen un Tablespace Permanente

Segmentos Temporalesen un Tablespace Permanente

• Creado cuando se necesitantransacciones con necesidades deordenación

• Reclamada por SMON cuando lasentencia SQL completa la ejecución

• Creado cuando se necesitantransacciones con necesidades deordenación

• Reclamada por SMON cuando lasentencia SQL completa la ejecución

Page 6: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-6

Segmentos Temporales enun Tablespace Temporal

Segmentos Temporales enun Tablespace Temporal

• Conocidos como segmentos sort• Sólo un segmento por tablespace de

cada instancia• Creado cuando sucede la primera

llamada a sort en la instancia despuésdel startup (arranque)

• Reusado por distintas transaccionesbasadas en la información del SortExtent Pool

• Se libera la instancia al shutdown

• Conocidos como segmentos sort• Sólo un segmento por tablespace de

cada instancia• Creado cuando sucede la primera

llamada a sort en la instancia despuésdel startup (arranque)

• Reusado por distintas transaccionesbasadas en la información del SortExtent Pool

• Se libera la instancia al shutdown

Page 7: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-7

Guías de uso para SegmentosTemporales

Guías de uso para SegmentosTemporales

• Activar distintos tablespaces TEMPORARYsegún las necesidades de sort

• Especificar DEFAULT STORAGE para lostablespaces según se muestra:– INITIAL= NEXT = (múltiplo de

SORT_AREA_SIZE) + DB_BLOCK_SIZE– PCTINCREASE = 0

• Activar distintos tablespaces TEMPORARYsegún las necesidades de sort

• Especificar DEFAULT STORAGE para lostablespaces según se muestra:– INITIAL= NEXT = (múltiplo de

SORT_AREA_SIZE) + DB_BLOCK_SIZE– PCTINCREASE = 0

Page 8: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-8

Obtener Información de unaInstancia

Obtener Información de unaInstancia

DBA_SEGMENTS

V$SORT_SEGMENT

V$SORT_USAGE

Page 9: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-9

Estadísticas del Segmento SortEstadísticas del Segmento Sort

V$SORT_SEGMENT• TABLESPACE_NAME• EXTENT_SIZE• TOTAL_EXTENTS• TOTAL_BLOCKS• USED_EXTENTS• USED_BLOCKS• FREE_EXTENTS• FREE_BLOCKS• MAX_SORT_SIZE

• MAX_SORT_BLOCKS

V$SORT_SEGMENT• TABLESPACE_NAME• EXTENT_SIZE• TOTAL_EXTENTS• TOTAL_BLOCKS• USED_EXTENTS• USED_BLOCKS• FREE_EXTENTS• FREE_BLOCKS• MAX_SORT_SIZE

• MAX_SORT_BLOCKS

Page 10: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-10

Actividad de los SegmentosTemporales

Actividad de los SegmentosTemporales

V$SESSIONSADDRUSERNAMESID

V$SORT_USAGESESSION_ADDRTABLESPACECONTENTSEXTENTSBLOCKS

Page 11: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-11

ResumenResumen

• Segmentos de clasificación temporalesen tablespaces permanentes

• Parámetros de almacenamiento parasegmentos temporales

• Segmentos de clasificación temporalesen tablespaces permanentes

• Parámetros de almacenamiento parasegmentos temporales

Page 12: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

Gestión de TablasGestión de Tablas

12

Page 13: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-13

ObjetivosObjetivos• Diferencias entre los tipos de tablas

Oracle• Crear tablas usando valores apropiados

de almacenamiento• Control del espacio utilizado por las

tablas• Análisis de tablas para comprobar la

integridad y migración• Recuperar información de las tablas

desde el diccionario de datos• Conversión de distintos formatos de

ROWID

• Diferencias entre los tipos de tablasOracle

• Crear tablas usando valores apropiadosde almacenamiento

• Control del espacio utilizado por lastablas

• Análisis de tablas para comprobar laintegridad y migración

• Recuperar información de las tablasdesde el diccionario de datos

• Conversión de distintos formatos deROWID

Page 14: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-14

Almacenamiento de Datos de UsuarioAlmacenamiento de Datos de Usuario

Regulartable

Cluster

Partitionedtable

Index-organizedtable

Page 15: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-15

Estructura de una filaEstructura de una fila

Databaseblock

Row headerColumn lengthColumn value

Page 16: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-16

Tipos de datos OracleTipos de datos Oracle

CHAR(N), NCHAR(N)VARCHAR2(N),NVARCHAR2(N)NUMBER(P,S)DATERAW(N)BLOB, CLOB,NCLOB, BFILELONG, LONG RAWROWID

VARRAY

TABLE

REF

Data typeData type

Built-inBuilt-inUser-definedUser-defined

ScalarScalar RelationshipRelationshipCollectionCollection

Page 17: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-17

Tipos de Datos para almacenarobjetos grandes

Tipos de Datos para almacenarobjetos grandes

LONG, LONG RAW

Una columna por tabla

Hasta 2 gigabytes

SELECT devuelve datos

Datos almacenados en línea

No soporta tipo de objeto

Acceso secuencial a partes

LOB

Múltiples columnas por tabla

Hasta 4 gigabytes

SELECT devuelve puntero

Datos almacenados il o ol

Soporta tipo de objeto

Acceso aleatorio a partes

Page 18: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-18

Tipo de datos ROWIDTipo de datos ROWID

OOOOOO BBBBBBFFF RRR

Data objectnumber

Relative filenumber

Row numberBlock number

Formato ROWID

• identificador único para una fila• Usado para encontrar una fila• identificador único para una fila• Usado para encontrar una fila

Page 19: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-19

ROWID RestringidoROWID Restringido

• Puede identificar filas dentro de unsegmento

• Necesita menos espacio

• Puede identificar filas dentro de unsegmento

• Necesita menos espacio

BBBBBBBB FFFFRRRR

Block number Row number File number

. .

Page 20: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-20

Recolecciones y otrosRecolecciones y otros

• ‘Collections’ son objetos que contienen objetos.• VARRAYs son conjuntos ordenados de

elementos que contienen un contador y unlimite.

• Las tablas anidadas son tablas con unacolumna o variable de tipos de datos TABLE.

• ‘Collections’ son objetos que contienen objetos.• VARRAYs son conjuntos ordenados de

elementos que contienen un contador y unlimite.

• Las tablas anidadas son tablas con unacolumna o variable de tipos de datos TABLE.

VARRAY Nestedtable

Page 21: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-21

Crear una tablaCrear una tabla

CREATE TABLE empleados(

empno NUMBER(4),

apellido VARCHAR2(30)

deptno NUMBER(2))

PCTFREE 20 PCTUSED 50

STORAGE(INITIAL 200K NEXT 200K

PCTINCREASE 0 MAXEXTENTS 50)

TABLESPACE data01;

CREATE TABLE empleados(

empno NUMBER(4),

apellido VARCHAR2(30)

deptno NUMBER(2))

PCTFREE 20 PCTUSED 50

STORAGE(INITIAL 200K NEXT 200K

PCTINCREASE 0 MAXEXTENTS 50)

TABLESPACE data01;

• Ojo: el comando OPTIMAL sólo se puede usar al crear segmentos rollback• Ojo: el comando OPTIMAL sólo se puede usar al crear segmentos rollback

Page 22: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-22

Crear Tablas: GuíaCrear Tablas: Guía

• Use una cantidad apropiada deextensiones para para reducir lafragmentación del tablespace.• Use la cláusula CACHE para tablasusadas de forma muy frecuente y quesean pequeñas.

• Use una cantidad apropiada deextensiones para para reducir lafragmentación del tablespace.• Use la cláusula CACHE para tablasusadas de forma muy frecuente y quesean pequeñas.

Page 23: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-23

Valores PCTFREE y PCTUSEDValores PCTFREE y PCTUSED• Cálculo de PCTFREE• Cálculo de PCTFREE

Depende de lo que pensemos que puedecambiar un dato. Es lo que dejamos en elcontenedor para posibles actualizaciones

de datos

• Cálculo de PCTUSED• Cálculo de PCTUSEDAverage Row Size * 100

100-PCTFREE-Available Data Space

Page 24: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-24

Migración de filas y encadenamientoMigración de filas y encadenamiento

Antes deactualizar

Después deactualizar

Page 25: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-25

Copiar una tabla existenteCopiar una tabla existente

CREATE TABLE nuevos_empleados

STORAGE(INITIAL 200K NEXT 200K

PCTINCREASE 0 MAXEXTENTS 50)

NOLOGGING

TABLESPACE data01

AS

SELECT * FROM scott.employees;

CREATE TABLE nuevos_empleados

STORAGE(INITIAL 200K NEXT 200K

PCTINCREASE 0 MAXEXTENTS 50)

NOLOGGING

TABLESPACE data01

AS

SELECT * FROM scott.employees;

Page 26: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-26

Cambiar parámetros dealmacenamiento y de bloques

Cambiar parámetros dealmacenamiento y de bloques

ALTER TABLE scott.employees

PCTFREE 30

PCTUSED 50

STORAGE(NEXT 500K

MINEXTENTS 2

MAXEXTENTS 100);

ALTER TABLE scott.employees

PCTFREE 30

PCTUSED 50

STORAGE(NEXT 500K

MINEXTENTS 2

MAXEXTENTS 100);

Page 27: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-27

Alojamiento manual de extensionesAlojamiento manual de extensiones

ALTER TABLE scott.employees

ALLOCATE EXTENT(SIZE 500K

DATAFILE ‘/DISK3/DATA01.DBF’);

ALTER TABLE scott.employees

ALLOCATE EXTENT(SIZE 500K

DATAFILE ‘/DISK3/DATA01.DBF’);

Page 28: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-28

Free space after deleteUnused block

High water mark

Extent ID 0 1 2 3 4

Extent ID 0 1 2 3 4

Used block

High Water MarkHigh Water MarkDespués de insertar

Después de borrar

Page 29: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-29

Búsqueda del High Water Mark:DBMS_SPACE.UNUSED_SPACEBúsqueda del High Water Mark:DBMS_SPACE.UNUSED_SPACE

Extent ID 0 1 2 3 4

High water markLAST_USED_EXTENT_FILE_ID,LAST_USED_EXTENT_BLOCK_ID

TOTAL_BLOCKS

UNUSED_BLOCKS

Page 30: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-30

Free space after deleteUnused block

High water mark

Antes deldesalojamiento

Used block

Desalojar el espacio no utilizadoDesalojar el espacio no utilizado

ALTER TABLE scott.employees

DEALLOCATE UNUSED;

ALTER TABLE scott.employees

DEALLOCATE UNUSED;

Después deldesalojamiento

Page 31: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-31

Truncar una TablaTruncar una Tabla

TRUNCATE TABLE scott.employees;TRUNCATE TABLE scott.employees;

Extent ID 0 1

High water mark

Free space

Page 32: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-32

Borrar TablasBorrar Tablas

DROP TABLE scott.departments

CASCADE CONSTRAINTS;

DROP TABLE scott.departments

CASCADE CONSTRAINTS;

Page 33: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-33

Validar estructuras de la tablaValidar estructuras de la tabla

• El servidor Oracle verifica la integridadde cada bloque de datos.

• Use la opción CASCADE para validar laestructura de todos los índices de lastablas y ejecutar las referenciascruzadas entre las tablas y sus índices.

• El servidor Oracle verifica la integridadde cada bloque de datos.

• Use la opción CASCADE para validar laestructura de todos los índices de lastablas y ejecutar las referenciascruzadas entre las tablas y sus índices.

ANALYZE TABLE scott.employees

VALIDATE STRUCTURE;

ANALYZE TABLE scott.employees

VALIDATE STRUCTURE;

Page 34: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-34

Detectar cambios de filasDetectar cambios de filas• El servidor Oracle mantiene estadísticas

basadas en datos simples y actualiza-ciones del diccionario de datos.

• Comprobar CHAIN_CNT

• El servidor Oracle mantiene estadísticasbasadas en datos simples y actualiza-ciones del diccionario de datos.

• Comprobar CHAIN_CNT

ANALYZE TABLE scott.employees

ESTIMATE STATISTICS;

ANALYZE TABLE scott.employees

ESTIMATE STATISTICS;

SELECT chain_cnt

FROM DBA_TABLES

WHERE table_name=‘EMPLOYEES’AND owner=‘SCOTT’;

SELECT chain_cnt

FROM DBA_TABLES

WHERE table_name=‘EMPLOYEES’AND owner=‘SCOTT’;

Page 35: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-35

Recuperación de la Información de TablasRecuperación de la Información de Tablas

DBA_OBJECTS

OWNEROBJECT_NAMEOBJECT_IDDATA_OBJECT_IDCREATED

DBA_SEGMENTS

OWNERSEGMENT_NAMETABLESPACE_NAMEHEADER_FILEHEADER_BLOCK

DBA_TABLES

OWNERTABLE_NAMEPCT_FREEPCT_USEDINITIAL_EXTENTNEXT_EXTENTMIN_EXTENTSMAX_EXTENTSPCT_INCREASECACHEBLOCKSEMPTY_BLOCKSCHAIN_CNT

Page 36: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-36

DBA_EXTENTS• OWNER• SEGMENT_NAME• EXTENT_ID• FILE_ID• BLOCK_ID• BLOCKS

DBA_EXTENTS• OWNER• SEGMENT_NAME• EXTENT_ID• FILE_ID• BLOCK_ID• BLOCKS

Recuperar Información deextensiones

Recuperar Información deextensiones

Page 37: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-37

Paquete DBMS_ROWIDPaquete DBMS_ROWID

Function Name

ROWID_CREATE

ROWID_OBJECT

ROWID_RELATIVE_FNO

ROWID_BLOCK_NUMBER

ROWID_ROW_NUMBER

ROWID_TO_ABSOLUTE_FNO

ROWID_TO_EXTENDED

ROWID_TO_RESTRICTED

Descripción

Crea un ROWID desde componentes individuales

Devuelve el identificador de objeto desde un ROWID

Devuelve el número relativo de fila desde un ROWID

Devuelve el número de bloque desde un ROWID

Devuelve el número de columna desde un ROWID

Devuelve el número de fila absoluto desde un ROWID

Convierte un ROWID a extendido desde restringido

Convierte un ROWID a restringido desde extendido

Funciones usadas comúnmente:Funciones usadas comúnmente:

Page 38: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-38

ResumenResumen

• Crear tablas con parámetrosapropiados de almacenamiento ybloques

• Controlar almacenamiento de tablas• Uso del paquete DBMS_ROWID

• Crear tablas con parámetrosapropiados de almacenamiento ybloques

• Controlar almacenamiento de tablas• Uso del paquete DBMS_ROWID

Page 39: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

Manejo de ÍndicesManejo de Índices

13

Page 40: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-40

ObjetivosObjetivos

• Mostrar los distintos tipos de índices ysus usos

• Crear índices B-tree y de Bitmap• Reorganizar índices• Borrar indexes• Obtener información de los índices

desde el diccionario de datos

• Mostrar los distintos tipos de índices ysus usos

• Crear índices B-tree y de Bitmap• Reorganizar índices• Borrar indexes• Obtener información de los índices

desde el diccionario de datos

Page 41: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-41

Clasificación de ÍndicesClasificación de Índices

Lógica• De columna simple o concatenados• Únicos o no únicosFísica• Particionados o no particionados• B-tree o bitmap

– Normales o de clave inversa (sólo enB-tree)

Lógica• De columna simple o concatenados• Únicos o no únicosFísica• Particionados o no particionados• B-tree o bitmap

– Normales o de clave inversa (sólo enB-tree)

Page 42: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-42

Índices B-TreeÍndices B-Tree

Index entry headerKey column lengthKey column valueROWID

Root

Branch

Leaf

Index entry

Page 43: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-43

KEY ROWID

EMPNO (BLOCK# ROW# FILE#)----- -------------------1257 0000000F.0002.00012877 0000000F.0006.00014567 0000000F.0004.00016657 0000000F.0003.00018967 0000000F.0005.00019637 0000000F.0001.00019947 0000000F.0000.0001... ...... ...

Índices invertidosÍndices invertidosIndex on EMP (EMPNO) EMP table

EMPNO ENAME JOB ...----- ----- --------7499 ALLEN SALESMAN7369 SMITH CLERK7521 WARD SALESMAN ...7566 JONES MANAGER7654 MARTIN SALESMAN7698 BLAKE MANAGER7782 CLARK MANAGER... ... ... ...... ... ... ...

Page 44: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-44

Índices BitmapÍndices Bitmap

<Blue, 10.0.3, 12.8.3, 1000100100010010100>

<Green, 10.0.3, 12.8.3, 0001010000100100000>

<Red, 10.0.3, 12.8.3, 0100000011000001001>

<Yellow, 10.0.3, 12.8.3, 0010001000001000010>

keystartROWID

endROWID bitmap

Table

Index

Block 10

Block 11

Block 12

File 3

Page 45: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-45

Comparación entre índicesB-Tree y Bitmap

Comparación entre índicesB-Tree y Bitmap

B-tree

Aconsejable para altacardinalidad de columnas

Actualizaciones en clavesrelativamente económicas

Ineficiente para consultasutilizando el predicado OR

Recomendado para OLTP

Bitmap

Aconsejable para baja cardinalidadde columnas

Actualizaciones en clavescostosas

Eficientes para consultasutilizando el predicado OR

Recomendado para DSS

Page 46: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-46

Crear índices normales B-TreeCrear índices normales B-Tree

CREATE INDEX scott.emp_lname_idx

ON scott.employees(last_name)

PCTFREE 30

STORAGE(INITIAL 200K NEXT 200K

PCTINCREASE 0 MAXEXTENTS 50)

TABLESPACE indx01;

CREATE INDEX scott.emp_lname_idx

ON scott.employees(last_name)

PCTFREE 30

STORAGE(INITIAL 200K NEXT 200K

PCTINCREASE 0 MAXEXTENTS 50)

TABLESPACE indx01;

Page 47: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-47

Crear Índices: GuíasCrear Índices: Guías• Balancear las necesidades de consultas y de

manejo de datos ( DML)• Ponerlos en distintos tablespaces• Usar extensiones uniformes de tamaño:

múltiplos de cinco bloques o de tamañoMINIMUM EXTENT para el tablespace

• Considerara NOLOGGING para índices muygrandes

• Poner un PCTFREE alto si los valores de lanueva clave son parecidos a los que estándentro del rango actual

• Balancear las necesidades de consultas y demanejo de datos ( DML)

• Ponerlos en distintos tablespaces• Usar extensiones uniformes de tamaño:

múltiplos de cinco bloques o de tamañoMINIMUM EXTENT para el tablespace

• Considerara NOLOGGING para índices muygrandes

• Poner un PCTFREE alto si los valores de lanueva clave son parecidos a los que estándentro del rango actual

Page 48: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-48

Crear Reverse Key IndexesCrear Reverse Key Indexes

CREATE UNIQUE INDEX scott.ord_ord_no_idx

ON scott.ord(ord_no) REVERSE

PCTFREE 30

STORAGE(INITIAL 200K NEXT 200K

PCTINCREASE 0 MAXEXTENTS 50)

TABLESPACE indx01;

CREATE UNIQUE INDEX scott.ord_ord_no_idx

ON scott.ord(ord_no) REVERSE

PCTFREE 30

STORAGE(INITIAL 200K NEXT 200K

PCTINCREASE 0 MAXEXTENTS 50)

TABLESPACE indx01;

Page 49: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-49

Crear Índices BitmapCrear Índices Bitmap

CREATE BITMAP INDEX scott.ord_region_id_idx

ON scott.ord(region_id)

PCTFREE 30

STORAGE(INITIAL 200K NEXT 200K

PCTINCREASE 0 MAXEXTENTS 50)

TABLESPACE indx01;

CREATE BITMAP INDEX scott.ord_region_id_idx

ON scott.ord(region_id)

PCTFREE 30

STORAGE(INITIAL 200K NEXT 200K

PCTINCREASE 0 MAXEXTENTS 50)

TABLESPACE indx01;

Page 50: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-50

Cambiar parámetros dealmacenamiento para Índices

Cambiar parámetros dealmacenamiento para Índices

ALTER INDEX scott.emp_lname_idx

STORAGE(NEXT 400K

MAXEXTENTS 100);

ALTER INDEX scott.emp_lname_idx

STORAGE(NEXT 400K

MAXEXTENTS 100);

Page 51: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-51

Alojar y desalojar los espaciosocupados por los Índices

Alojar y desalojar los espaciosocupados por los Índices

ALTER INDEX scott.ord_region_id_idx

ALLOCATE EXTENT (SIZE 200K

DATAFILE ‘/DISK6/indx01.dbf’);

ALTER INDEX scott.ord_region_id_idx

ALLOCATE EXTENT (SIZE 200K

DATAFILE ‘/DISK6/indx01.dbf’);

ALTER INDEX scott.ord_ord_no_idx

DEALLOCATE UNUSED;

ALTER INDEX scott.ord_ord_no_idx

DEALLOCATE UNUSED;

Page 52: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-52

Regeneración de ÍndicesRegeneración de Índices

ALTER INDEX scott.ord_region_id_idx

REBUILD

TABLESPACE indx02;

ALTER INDEX scott.ord_region_id_idx

REBUILD

TABLESPACE indx02;

Use este comando para:• Mover un índice a un tablespace distinto• Recuperar espacio de datos borrados• Cambiar una clave “reverse” a una clave

normal B-tree y viceversa

Use este comando para:• Mover un índice a un tablespace distinto• Recuperar espacio de datos borrados• Cambiar una clave “reverse” a una clave

normal B-tree y viceversa

Page 53: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-53

Comprobación de ÍndicesComprobación de Índices

ANALYZE INDEX scott.ord_region_id_idx

VALIDATE STRUCTURE;

ANALYZE INDEX scott.ord_region_id_idx

VALIDATE STRUCTURE;

INDEX_STATS

Page 54: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-54

Borrado de ÍndicesBorrado de Índices

• Borrar y recrear índices antes de unacarga masiva de datos.

• Borre índices que no sean utilizados deforma frecuente y constrúyalos cuandosea necesario.

• Borre y recree índices individuales.

• Borrar y recrear índices antes de unacarga masiva de datos.

• Borre índices que no sean utilizados deforma frecuente y constrúyalos cuandosea necesario.

• Borre y recree índices individuales.

DROP INDEX scott.dept_dname_idx;DROP INDEX scott.dept_dname_idx;

Page 55: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-55

Obtener Información de los ÍndicesObtener Información de los Índices

DBA_INDEXESOWNERINDEX_NAMEINDEX_TYPETABLE_OWNERTABLE_NAMEUNIQUENESSTABLESPACE_NAMELOGGINGSTATUS

DBA_INDEXESOWNERINDEX_NAMEINDEX_TYPETABLE_OWNERTABLE_NAMEUNIQUENESSTABLESPACE_NAMELOGGINGSTATUS

DBA_IND_COLUMNSINDEX_OWNERINDEX_NAMETABLE_OWNERTABLE_NAMECOLUMN_NAMECOLUMN_POSITIONCOLUMN_LENGTH

DBA_IND_COLUMNSINDEX_OWNERINDEX_NAMETABLE_OWNERTABLE_NAMECOLUMN_NAMECOLUMN_POSITIONCOLUMN_LENGTH

Page 56: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-56

ResumenResumen

• Crear diferentes tipos de índices• Reorganizar índices• Crear diferentes tipos de índices• Reorganizar índices

Page 57: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

Mantener la integridad de los datosMantener la integridad de los datos

14

Page 58: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-58

ObjetivosObjetivos

• Implementar la integridad de datos ydisparadores.

• Mantener la integridad de constraints yde triggers

• Obtener información de constraint y detrigger a partir del diccionario de datos

• Implementar la integridad de datos ydisparadores.

• Mantener la integridad de constraints yde triggers

• Obtener información de constraint y detrigger a partir del diccionario de datos

Page 59: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-59

Integridad de datosIntegridad de datos

Applicationcode

Integrityconstraint

Databasetrigger

Table

Data

Page 60: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-60

Tipos de restriccionesTipos de restriccionesConstraintNOT NULL

UNIQUE

PRIMARYKEY

FOREIGNKEY

CHECK

DescripciónEspecifica que una columna no puedecontener valores nulosDesigna una columna o combinación decolumnas como únicasDesigna una columna o combinación decolumnas como clave primariaDesigna una columna o combinación decolumnas como clave ajena en unarestricción de integridad referencial

Especifica una condición que debecumplir cada fila de la tabla

Page 61: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-61

Estados de las restricciones(Constraints)

Estados de las restricciones(Constraints)

DisabledDisabled EnablednovalidateEnablednovalidate

EnabledvalidateEnabledvalidate

Existing dataNew data

Page 62: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-62

Constraints DiferidasConstraints Diferidas

DML statementDML statement

Check nondeferredconstraintsCheck nondeferredconstraints

COMMITCOMMIT

Check deferredconstraintsCheck deferredconstraints

Page 63: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-63

Forzado de claves primaria oúnica

Forzado de claves primaria oúnica

No use índices Crear claveúnica

Use el índiceexistente

¿Hay algúníndiceactivado?

Si

No No

Si

Constraintdiferible?

Crear claveno única

Si

No

¿Claves activadas?

Page 64: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-64

Consideraciones de las Foreign KeyConsideraciones de las Foreign Key

ParaDrop parent tableTruncate parent tableDrop tablespacecontaining parenttableAvoid locks on childtable while performingDML on parent tablePerform DML on childtable

EjecutarCascade constraintsDisable/drop foreign keyUse CASCADE CONSTRAINTSclause

Create index on foreign key

Ensure tablespace containingparent key index online

Page 65: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-65

Disparadores de la Base de DatosDisparadores de la Base de Datos

Table

Trigger

DML action

Tipos de Triggers• INSERT o UPDATE o DELETE• BEFORE o AFTER• ROW o STATEMENT

Tipos de Triggers• INSERT o UPDATE o DELETE• BEFORE o AFTER• ROW o STATEMENT

Page 66: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-66

Definir Constraints cuando secrea una tabla

Definir Constraints cuando secrea una tabla

CREATE TABLE nominas.empleados(

empno NUMBER(4)

CONSTRAINT emp_pk PRIMARY KEY

DEFERRABLE

USING INDEX

STORAGE(INITIAL 100K NEXT 100K)

TABLESPACE indx01,

apellido VARCHAR2(30)

CONSTRAINT emp_ln_nn NOT NULL,

departamento NUMBER(2))

TABLESPACE data01;

CREATE TABLE nominas.empleados(

empno NUMBER(4)

CONSTRAINT emp_pk PRIMARY KEY

DEFERRABLE

USING INDEX

STORAGE(INITIAL 100K NEXT 100K)

TABLESPACE indx01,

apellido VARCHAR2(30)

CONSTRAINT emp_ln_nn NOT NULL,

departamento NUMBER(2))

TABLESPACE data01;

Page 67: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-67

Guías para definir ConstraintsGuías para definir Constraints

• Restricciones únicas y primarias:– Poner los índices en distintos

tablespaces (sugerencia)– Usar índices nonunique si las cargas

de datos son frecuentes• Claves ajenas autoreferenciadas:

– Definir o activar las claves ajenasdespués de la carga inicial

– Diferir la comprobación del constraint

• Restricciones únicas y primarias:– Poner los índices en distintos

tablespaces (sugerencia)– Usar índices nonunique si las cargas

de datos son frecuentes• Claves ajenas autoreferenciadas:

– Definir o activar las claves ajenasdespués de la carga inicial

– Diferir la comprobación del constraint

Page 68: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-68

Desactivar ConstraintsDesactivar Constraints• Desactivar antes de la carga masiva,

especialmente las FKautoreferenciadas.

• Desactivar las FK antes de desactivarlas claves ajenas referenciadas.

• Los índices únicos se borrar pero losno únicos se mantienen.

• Desactivar antes de la carga masiva,especialmente las FKautoreferenciadas.

• Desactivar las FK antes de desactivarlas claves ajenas referenciadas.

• Los índices únicos se borrar pero losno únicos se mantienen.

ALTER TABLE nomina.departamentos

DISABLE CONSTRAINT dept_pk CASCADE;

ALTER TABLE nomina.departamentos

DISABLE CONSTRAINT dept_pk CASCADE;

Page 69: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-69

Activación de ConstraintsActivación de Constraints

EnableNOVALIDATE

• No puede haberbloqueos en la tabla• Las clavesprimary/unique puedenusar índices no únicos

• No puede haberbloqueos en la tabla• Las clavesprimary/unique puedenusar índices no únicos

ALTER TABLE scott.departments

ENABLE NOVALIDATE CONSTRAINT dept_pk;

ALTER TABLE scott.departments

ENABLE NOVALIDATE CONSTRAINT dept_pk;

Page 70: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-70

Activación de ConstraintsActivación de Constraints

EnableVALIDATE

• Bloquear la tabla• Se pueden usar

índices únicos o noúnicos

• Necesita validar losdatos de la tabla

• Bloquear la tabla• Se pueden usar

índices únicos o noúnicos

• Necesita validar losdatos de la tabla

ALTER TABLE nomina.empleados

ENABLE VALIDATE CONSTRAINT emp_dept_fk;

ALTER TABLE nomina.empleados

ENABLE VALIDATE CONSTRAINT emp_dept_fk;

Page 71: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-71

Usar la tabla EXCEPTIONSUsar la tabla EXCEPTIONS

1. Crear la tabla EXCEPTIONS(utlexcpt.sql).

2. Executar ALTER TABLE con laclaúsula EXCEPTIONS.

3. Usar subconsultas ON EXCEPTIONSpara localizar filas con datos inválidos.

4. Rectificar los errores.5. Reejecutar ALTER TABLE para activar

las constraints.

1. Crear la tabla EXCEPTIONS(utlexcpt.sql).

2. Executar ALTER TABLE con laclaúsula EXCEPTIONS.

3. Usar subconsultas ON EXCEPTIONSpara localizar filas con datos inválidos.

4. Rectificar los errores.5. Reejecutar ALTER TABLE para activar

las constraints.

Page 72: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-72

Desactivación y activación deTriggers

Desactivación y activación deTriggers

• Use ALTER TRIGGER para desactivar oactivar un trigger.

• Use ALTER TABLE para desactivar oactivar todos los triggers.

• Use ALTER TRIGGER para desactivar oactivar un trigger.

• Use ALTER TABLE para desactivar oactivar todos los triggers.

ALTER TRIGGER nomina.emp_conv_ln

DISABLE;

ALTER TRIGGER nomina.emp_conv_ln

DISABLE;

ALTER TABLE nomina.empleados

ENABLE ALL TRIGGERS;

ALTER TABLE nomina.empleados

ENABLE ALL TRIGGERS;

Page 73: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-73

Borrar ConstraintsBorrar Constraints

• Usando el comando:

• Borra una tabla y su FK referenciada:

• Usando el comando:

• Borra una tabla y su FK referenciada:

ALTER TABLE scott.employees

DROP CONSTRAINT emp_ln_uk;

ALTER TABLE scott.employees

DROP CONSTRAINT emp_ln_uk;

DROP TABLE departments

CASCADE CONSTRAINTS;

DROP TABLE departments

CASCADE CONSTRAINTS;

Page 74: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-74

Borrar TriggersBorrar Triggers

DROP TRIGGER scott.audit_dept;DROP TRIGGER scott.audit_dept;

Page 75: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-75

Obtener Información de ConstraintsObtener Información de ConstraintsDBA_CONSTRAINTSOWNERCONSTRAINT_NAMECONSTRAINT_TYPETABLE_NAMESEARCH_CONDITIONR_OWNERR_CONSTRAINT_NAMEDELETE_RULESTATUSDEFERRABLEDEFERREDVALIDATEDGENERATEDBADLAST_CHANGE

DBA_CONS_COLUMNSOWNERCONSTRAINT_NAMETABLE_NAMECOLUMN_NAMEPOSITION

Page 76: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-76

Obtener Información de TriggersObtener Información de Triggers

DBA_TRIGGERSOWNERTRIGGER_NAMETRIGGER_TYPETRIGGERING_EVENTTABLE_OWNERTABLE_NAMESTATUSDESCRIPTIONTRIGGER_BODY

DBA_TRIGGER_COLSTRIGGER_OWNERTRIGGER_NAMETABLE_OWNERTABLE_NAMECOLUMN_NAME

DBA_OBJECTSOWNEROBJECT_NAMEOBJECT_TYPESTATUS

Page 77: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-77

ResumenResumen

• Implementación de constraints y detriggers

• Uso de estrategias apropiadas paracrear y mantener constraints

• Implementación de constraints y detriggers

• Uso de estrategias apropiadas paracrear y mantener constraints

Page 78: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

Usar Clusters y TablasOrganizadas por ÍndicesUsar Clusters y Tablas

Organizadas por Índices(no entra)(no entra)

15

Page 79: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-79

ObjetivosObjetivos

• Crear y mantener clusters• Usar tablas organizadas por índices• Recuperar información de clusters y

tablas desde el diccionario de datos

• Crear y mantener clusters• Usar tablas organizadas por índices• Recuperar información de clusters y

tablas desde el diccionario de datos

Page 80: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-80

Distribución de Rows dentro delas Tablas

Distribución de Rows dentro delas Tablas

Cluster Index-organizedtable

Table

Random

Ordering of Rows

Grouped Ordered

Page 81: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-81

ClustersClusters

Clustered ORDand ITEM tables

Cluster Key(ORD_NO)101 ORD_DT CUST_CD

05-JAN-97 R01

PROD QTYA4102 20A5675 19

W0824 10102 ORD_DT CUST_CD

07-JAN-97 N45PROD QTYA2091 11G7830 20

N9587 26

Unclustered ORDand ITEM tables

ORD_NO PROD QTY ...----- ------ ------

101 A4102 20102 A2091 11102 G7830 20102 N9587 26101 A5675 19101 W0824 10

ORD_NO ORD_DT CUST_CD------ ------ ------

101 05-JAN-97R01102 07-JAN-97N45

Page 82: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-82

Tipos de ClustersTipos de ClustersIndex cluster Hash cluster

Hash function

Page 83: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-83

1 . Crear un cluster.

2 . Crear un índice de cluster.

1 . Crear un cluster.

2 . Crear un índice de cluster.

Crear Índices de ClustersCrear Índices de Clusters

CREATE CLUSTER scott.ord_clu

(ord_no NUMBER(3))

SIZE 200 TABLESPACE DATA01

STORAGE(INITIAL 5M NEXT 5M PCTINCREASE 0);

CREATE CLUSTER scott.ord_clu

(ord_no NUMBER(3))

SIZE 200 TABLESPACE DATA01

STORAGE(INITIAL 5M NEXT 5M PCTINCREASE 0);

CREATE INDEX scott.ord_clu_idx

ON CLUSTER scott.ord_clu

TABLESPACE INDX01

STORAGE(INITIAL 1M NEXT 1M PCTINCREASE 0);

CREATE INDEX scott.ord_clu_idx

ON CLUSTER scott.ord_clu

TABLESPACE INDX01

STORAGE(INITIAL 1M NEXT 1M PCTINCREASE 0);

Page 84: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-84

Crear Índices de ClustersCrear Índices de Clusters

CREATE TABLE scott.ord

(ord_no NUMBER(3)

CONSTRAINT ord_pk PRIMARY KEY,

ord_dt DATE, cust_cd VARCHAR2(3))

CLUSTER scott.ord_clu(ord_no);

CREATE TABLE scott.ord

(ord_no NUMBER(3)

CONSTRAINT ord_pk PRIMARY KEY,

ord_dt DATE, cust_cd VARCHAR2(3))

CLUSTER scott.ord_clu(ord_no);

3 . Crear tablas en el cluster.3 . Crear tablas en el cluster.

CREATE TABLE scott.item

(ord_no NUMBER(3) CONSTRAINT item_ord_fk

REFERENCES scott.ord,

prod VARCHAR2(5), qty NUMBER(3),

CONSTRAINT item_pk PRIMARY KEY(ord_no,prod))

CLUSTER scott.ord_clu(ord_no);

CREATE TABLE scott.item

(ord_no NUMBER(3) CONSTRAINT item_ord_fk

REFERENCES scott.ord,

prod VARCHAR2(5), qty NUMBER(3),

CONSTRAINT item_pk PRIMARY KEY(ord_no,prod))

CLUSTER scott.ord_clu(ord_no);

Page 85: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-85

1 . Crear a cluster.

2 . Crear tablas en un cluster.

1 . Crear a cluster.

2 . Crear tablas en un cluster.

Crear Clusters HashCrear Clusters Hash

CREATE CLUSTER scott.off_clu

(country VARCHAR2(2),postcode VARCHAR2(8))

SIZE 500 HASHKEYS 1000

TABLESPACE DATA01

STORAGE(INITIAL 5M NEXT 5M PCTINCREASE 0);

CREATE CLUSTER scott.off_clu

(country VARCHAR2(2),postcode VARCHAR2(8))

SIZE 500 HASHKEYS 1000

TABLESPACE DATA01

STORAGE(INITIAL 5M NEXT 5M PCTINCREASE 0);

CREATE TABLE scott.office(

office_cd NUMBER(3), cost_ctr NUMBER(3),

country VARCHAR2(2), postcode VARCHAR2(8))

CLUSTER scott.off_clu(country,postcode);

CREATE TABLE scott.office(

office_cd NUMBER(3), cost_ctr NUMBER(3),

country VARCHAR2(2), postcode VARCHAR2(8))

CLUSTER scott.off_clu(country,postcode);

Page 86: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-86

Definir SIZE para los ClustersDefinir SIZE para los Clusters

• Define el espacio usado por todas lascolumnas para una clave dada.

• Usada en ambos tipos de clusters paraestimar:– El máximo número de valores de

claves por bloque para un índice decluster

– El número exacto de valores de laclave para cada bloque hash

• Define el espacio usado por todas lascolumnas para una clave dada.

• Usada en ambos tipos de clusters paraestimar:– El máximo número de valores de

claves por bloque para un índice decluster

– El número exacto de valores de laclave para cada bloque hash

Page 87: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-87

Parámetros específicos paraClusters Hash

Parámetros específicos paraClusters Hash

• HASHKEYS: Número de valores de clave• HASH IS: Función hash opcional definida

por el usuario

• HASHKEYS: Número de valores de clave• HASH IS: Función hash opcional definida

por el usuario

Preallocated blocks

Key 2Key 1

Key 12Key 11

Key 3

Overflow block

Key 22

Key 21

Page 88: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-88

Cambiar parámetros de almacenamientoCambiar SIZE de los índices de clustersAlojar y desalojar espacio

SIZE, HASH IS o HASHKEYS no puedenser modificadas en cluster hash

Cambiar parámetros de almacenamientoCambiar SIZE de los índices de clustersAlojar y desalojar espacio

SIZE, HASH IS o HASHKEYS no puedenser modificadas en cluster hash

ALTER CLUSTER scott.ord_clu

SIZE 300 STORAGE (NEXT 2M);

ALTER CLUSTER scott.ord_clu

SIZE 300 STORAGE (NEXT 2M);

Modificar ClustersModificar Clusters

Page 89: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-89

Usar INCLUDING TABLES para borrartablas y clusters

o borrar las tablas después de borrar loscluster.

Usar INCLUDING TABLES para borrartablas y clusters

o borrar las tablas después de borrar loscluster.

DROP CLUSTER scott.ord_clu

INCLUDING TABLES;

DROP CLUSTER scott.ord_clu

INCLUDING TABLES;

DROP TABLE scott.ord;

DROP TABLE scott.item;

DROP CLUSTER scott.ord_clu;

DROP TABLE scott.ord;

DROP TABLE scott.item;

DROP CLUSTER scott.ord_clu;

Borrar ClustersBorrar Clusters

Page 90: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-90

Situaciones donde los clustersson convenientes

Situaciones donde los clustersson convenientes

Criterion

Uniform key distribution

Evenly spread key values

Rarely updated key

Often joined master-detail tables

Predictable number of key values

Queries using equality predicate on key

HashIndex

Page 91: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-91

Recuperar Información del ClusterRecuperar Información del Cluster

DBA_CLU_COLUMNSOWNERCLUSTER_NAMECLU_COLUMN_NAMETABLE_NAMETAB_COLUMN_NAME

DBA_CLUSTER_HASH_EXPRESSIONSOWNERCLUSTER_NAMEHASH_EXPRESSION

DBA_CLUSTERSOWNERCLUSTER_NAMETABLESPACE_NAMEKEY_SIZECLUSTER_TYPEFUNCTIONHASHKEYS

DBA_TAB_COLUMNSOWNERTABLE_NAMECOLUMN_NAMEDATA_TYPEDATA_LENGTHDATA_PRECISIONDATA_SCALE

Page 92: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-92

Indexed accesson table

ROWID

Tablas Index-OrganizedTablas Index-OrganizedAccessing index-organized table

Non-key columnsKey column

Row header

Page 93: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-93

Tablas Organizadas por Índice

Identificadas por clave primaria

No ROWIDNo admiten índices secundarios

Busca en todo el índice y devuelvefilas en el orden de la PK

No soporta la restricciónunique

No se soporta distribución,replicación y particionado

Tablas organizadas por índicescomparadas con tablas regularesTablas organizadas por índices

comparadas con tablas regularesTablas Regulares

identificador único—ROWID

ROWID implícitoSoportan distintos índices

FTS devuelve columnas sinorden específico

Permiten la restricción UNIQUE

Se soporta distribución,replicación y particionado

Page 94: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-94

Crear Tablas con ÍndicesCrear Tablas con Índices

CREATE TABLE scott.sales

( office_cd NUMBER(3),

qtr_end DATE,

revenue NUMBER(10,2),

review VARCHAR2(1000),

CONSTRAINT sales_pk

PRIMARY KEY(office_code, qtr_end))

ORGANIZATION INDEX TABLESPACE data01

PCTTHRESHOLD 20

OVERFLOW TABLESPACE data02;

CREATE TABLE scott.sales

( office_cd NUMBER(3),

qtr_end DATE,

revenue NUMBER(10,2),

review VARCHAR2(1000),

CONSTRAINT sales_pk

PRIMARY KEY(office_code, qtr_end))

ORGANIZATION INDEX TABLESPACE data01

PCTTHRESHOLD 20

OVERFLOW TABLESPACE data02;

Page 95: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-95

Row OverflowRow Overflow

Segment = PK NameType = Index

Segment = SYS_IOT_OVER_nType=Table

Row bigger thanPCTTHRESHOLDBlock

Rows within PCTTHRESHOLD

IOT tablespace Overflow tablespace

Page 96: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-96

Recuperar Información IOTdesde el diccionario de datos

Recuperar Información IOTdesde el diccionario de datos

DBA_INDEXESOWNERTABLE_NAMEINDEX_NAMEINDEX_TYPEPCT_THRESHOLDINCLUDE_COLUMN

DBA_TABLESOWNERTABLE_NAMEIOT_TYPEIOT_NAMETABLESPACE_NAME

Page 97: Gestión de Segmentos Temporalesrepositorio.educacionsuperior.gob.ec/bitstream/28000/4902/1/oracla... · BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID VARRAY TABLE REF Data type User-defined

11-97

ResumenResumen

• Identificar situaciones donde losclusters sean necesarios• Usar tablas organizadas con índices

• Identificar situaciones donde losclusters sean necesarios• Usar tablas organizadas con índices