Está en la página 1de 43

Informix

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server a


Informix

Indice
UNIDAD 1 - TERMINOLOGA ........................................................................................................ 1

COMPONENTES DE UNA INSTANCIA DEL INFORMIX DYNAMIC SERVER ........................... 1


Procesos .................................................................................................................................. 1
Shared Memory........................................................................................................................ 1
Discos ...................................................................................................................................... 2
COMPONENTES DE DISCO: ..................................................................................................... 2
Chunks..................................................................................................................................... 2
Dbspaces ................................................................................................................................. 3
Pages....................................................................................................................................... 3
Blobspaces .............................................................................................................................. 4
Blobpages ................................................................................................................................ 4
Extents ..................................................................................................................................... 4
Tblspaces................................................................................................................................. 5
CARACTERSTICAS DE LAS BASES DE DATOS...................................................................... 6
Logical Logs ............................................................................................................................. 6
Modos de Login........................................................................................................................ 6
Physical Logs ........................................................................................................................... 6

UNIDAD 2 - TIPOS DE DATOS...................................................................................................... 7

UNIDAD 3 - CREACIN DE BASES DE DATOS Y TABLAS........................................................ 9

CREACIN DE UNA BASE DE DATOS...................................................................................... 9


EL CATLOGO DEL SISTEMA................................................................................................... 9
CREACIN DE UNA TABLA ..................................................................................................... 10
USOS DE DATOS BLOBS ........................................................................................................ 10
TABLA TEMPORARIA .............................................................................................................. 10
ALTERAR UNA TABLA ............................................................................................................. 11
RENOMBRAR COLUMNAS, TABLAS Y BASES DE DATOS. .................................................. 11
BORRAR TABLAS Y BASES DE DATOS. ................................................................................ 11
DBSCHEMA: ............................................................................................................................. 11

UNIDAD 4 - NDICES ................................................................................................................... 12

ESTRUCTURA DE INDICES..................................................................................................... 12
EL RBOL B+ ........................................................................................................................... 12
CLASIFICACIN DE NDICES.................................................................................................. 13
nico...................................................................................................................................... 13

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server b


Informix

Duplicado ............................................................................................................................... 13
Compuesto............................................................................................................................. 13
Cluster.................................................................................................................................... 13
FILLFACTOR ......................................................................................................................... 13

UNIDAD 5 - CONTROL DE CONCURRENCIA ............................................................................ 14

TIPOS DE CONCURRENCIA.................................................................................................... 14
READ CONCURRENCY: NIVELES DE AISLAMIENTO ............................................................ 14
Dirty Read ............................................................................................................................. 14
Committed Read .................................................................................................................... 14
Cursor Stability....................................................................................................................... 14
Repeteable Read ................................................................................................................... 14
UPDATE CONCURRENCY: NIVELES DE LOCKEOS .............................................................. 15
MODOS DE LOCKEO ............................................................................................................... 15

UNIDAD 6 - INTEGRIDAD ........................................................................................................... 16

REFERENCIAL, DE ENTIDAD Y SEMNTICA ......................................................................... 16


CONSTRAINTS......................................................................................................................... 16
Nombres de los constraints .................................................................................................... 16
Tipos de constraints ............................................................................................................... 16
Delete en cascada ................................................................................................................. 17
Los modos de transaccin de los constraints: ....................................................................... 17

UNIDAD 7 - MODOS Y DETECCIN DE VIOLACIN ................................................................ 18

TIPOS DE OBJETOS DE BD. ................................................................................................... 18


MODOS DE OBJETOS DE BD.................................................................................................. 18
DESHABILITANDO, HABILITANDO Y FILTRANDO OBJETOS ................................................ 18
Capturando las violaciones .................................................................................................... 19
Seteo de tablas de violacin................................................................................................... 20

UNIDAD 8 - OPTIMIZADOR BASADO EN COSTOS................................................................... 21

ESTRATEGIAS DE JOIN .......................................................................................................... 21


Nested loop join ..................................................................................................................... 21
Hash join ................................................................................................................................ 21
Sort Merge Join...................................................................................................................... 21
PROCESO DE OPTIMIZACIN: ............................................................................................... 22
Examinar todas las tablas ...................................................................................................... 22
Estimar Costo Pair Join:......................................................................................................... 22

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server c


Informix

Repetir para cada tabla extra: ................................................................................................ 22


SET EXPLAIN ........................................................................................................................... 22
DIRECTIVAS DE OPTIMIZACIN: ........................................................................................... 24
MTODOS DE ACCESO .......................................................................................................... 24
Index ...................................................................................................................................... 24
Avoid_Index ........................................................................................................................... 24
Full (table name) .................................................................................................................... 25
Avoid Full (table name) .......................................................................................................... 25
Directivas de orden del Join ................................................................................................... 25
Directivas del mtodo del Join................................................................................................ 25
Objetivo de optimizacin: ....................................................................................................... 25
Directiva de Explain................................................................................................................ 25

UNIDAD 9 - UPDATE STATISTICS ............................................................................................. 26

UPDATE STATISTICS .............................................................................................................. 26


Low ........................................................................................................................................ 26
Medium .................................................................................................................................. 27
High ....................................................................................................................................... 27
DISTRIBUCIONES .................................................................................................................... 27

UNIDAD 10 - SEGURIDAD .......................................................................................................... 28

NIVELES DE SEGURIDAD ....................................................................................................... 28


NIVELES DE PRIVILEGIO ........................................................................................................ 28
PRIVILEGIOS A NIVEL DE BD: ................................................................................................ 28
PRIVILEGIOS A NIVEL DE TABLA / COLUMNA ...................................................................... 28
Privilegios a nivel columna ..................................................................................................... 29
Privilegios de Stored Procedures ........................................................................................... 29

UNIDAD 11 - VISTAS................................................................................................................... 30

TABLAS VIRTUALES................................................................................................................ 30
COLUMNAS VIRTUALES ......................................................................................................... 30
CREACIN DE VISTAS ............................................................................................................ 30
BORRADO DE UNA VISTA....................................................................................................... 31
CONSULTA DE UNA VISTA ..................................................................................................... 31
RESTRICCIONES ..................................................................................................................... 31
CLUSULA WITH CHECK OPTION ......................................................................................... 31

UNIDAD 12 - MIGRACIN, UTILITARIOS PARA CARGAR Y DESCARGAR DATOS .............. 32

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server d


Informix

DBEXPORT............................................................................................................................... 32
DBIMPORT ............................................................................................................................... 32
DBLOAD ................................................................................................................................... 32
Archivo de Comandos del dbload:.......................................................................................... 32
LOAD ........................................................................................................................................ 33
UNLOAD ................................................................................................................................... 33

UNIDAD 13 - BACKUPS .............................................................................................................. 34

BACKUPS ................................................................................................................................. 34
ONTAPE ................................................................................................................................... 34
Niveles de backup.................................................................................................................. 35
BACKUP DE LOGICAL LOGS .................................................................................................. 36
Backup Automtico ................................................................................................................ 36
Backup Continuo.................................................................................................................... 36
POLTICA DE BACKUP ............................................................................................................ 36
RESTORE ................................................................................................................................. 36
PARMETROS DE CONFIGURACIN DE ONTAPE ............................................................... 38

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server e


Informix

Administracin y Optimizacin de Bases de Datos


Informix Dynamic Server

Unidad 1 - Terminologa

Informix Servidor de Base de Datos

Programa que administra los contenidos de una base de datos


Conoce como estn organizadas fsicamente las tablas, filas y columnas
Interpreta y ejecuta las sentencias SQL.

Componentes de una instancia del Informix Dynamic Server

Una instancia involucra a los procesos de la base de datos, la memoria compartida (Shared
Memory SHM) y la administracin de los discos.

Procesos
Memoria Compartida (Shared Memory)
Discos

En una misma mquina puede haber varias instancias corriendo de manera independiente
bajo la misma instalacin Informix.

Procesos
En IDS (Informix Dynamic Server), se denominan procesos virtuales (VP). Cada
proceso Virtual pertenece a una clase virtual. (VP Class). A cada VP, la podemos
ver corriendo en el servidor como un proceso oninit.

Shared Memory
La SHM, est compuesta de tres porciones: Residente, Virtual y de Mensajes.
Resident: es la porcin esttica, cuya funcin principal es el cache de datos del
disco a la SHM.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 1


Informix

Virtual: es la porcin dinmica, es decir puede expandirse o contraerse. Su funcin


es manejar y controlar los recursos para los procesos.
Messages: es el mecanismo de comunicacin para coordinar las actividades entre
los procesos del Cliente y es Servidor.

Estructura de la memoria compartida

Discos
El sistema informix necesita unidades de disco asignadas al sistema. Estas
unidades se denominan chunks y es donde se van a almacenar todos los datos de
las Bases de Datos (BD) y toda la informacin del sistema necesaria para el
mantenimiento del servidor.
El espacio de disco total del motor se puede representar como una coleccin de
uno o varios chunks o espacios asignados a la instancia.

Componentes de Disco:

Chunks
Un chunk se compone de una serie de pginas contiguas. Es el espacio contiguo
de disco asignado al sistema.
Un chunk puede ser, un raw device (RAW en UNIX o NTFS en NT) o un archivo de
file system.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 2


Informix

Dbspaces
Un dbspace es una coleccin de chunks que forman el espacio lgico de disco. En
ellos se almacenarn los datos de la BD y toda la informacin del sistema. El
dbspace tiene como mnimo un chunk asignado.
La ventaja de la agrupacin de espacios en un dbspace es que se puede mantener
homogeneidad en la informacin ya que podemos direccionar una tabla completa a
un dbspace, optimizando de esta manera los tiempos de I/O. Otra gran ventaja es
que podemos realizar la recuperacin desde un backup de todo un dbspace sin
tener que bajar la instancia, esto se lo llama restore en caliente.
Root dbspace: En este dbspace se guarda toda la informacin del sistema.

Pages
Una pgina es la unidad bsica de almacenamiento y E/S en un sistema on line.
Los datos son almacenados en pginas al igual que los ndices. Por ejemplo, si
deseamos guardar una fila en la base de datos, la misma ser depositada en una
pgina. El tamao prefijado de pginas depende de la arquitectura del S.O. Para la
mayora de los Unix (la excepcin es AIX) el tamao de pgina es de 2KB mientras
que para NT es de 4KB. Este tamao de pgina no puede cambiarse, excepto para
los blobpages.
Cuando se precisa cachear esa informacin, el online lo har por medio de pginas
que sern almacenadas dentro de buffers de la SHM.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 3


Informix

Blobspaces
Tipo especial de dbspace que se usa para almacenar datos de tipo blobs.

Blobpages
Los campos que se definen tipo blob tienen la finalidad de guardar datos especiales
y con mucho volumen de informacin, entonces para agilizar las lecturas/escrituras
de estos datos, se crearon los blobpages, que en este caso reemplazaran a las
lecturas/escrituras por pginas. Al crear blobspaces se puede definir el tamao de
los bobpages. Este tamao indica cuantas pginas componen un blobpage. Las
lecturas/escrituras de estos datos se harn en unidades de blobpages y no de
pginas.

Extents
Un extent es un conjunto contiguo de pginas en disco, es el espacio fsico
asignado a una tabla. Para almacenar datos en una tabla, sta le pide al sistema
espacio; y ste le asigna un espacio del tamao del extents que tenga definido esa
tabla. La mnima unidad de pginas contiguas es de 4 pg o sea 8 Kb. en UNIX. El
tamao mximo es el del chunk por lo tanto sera de 1024000 pginas. Si se dejan
los tamaos de extents por default, stos son de 4 pginas para el extent inicial y
los siguientes.
A una tabla, inicialmente se le puede asignar un extent de cierto tamao y definir de
que tamao sern los prximos extents. Una vez asignado el espacio a usar por la
tabla, no se puede modificar a menos que se reorganize la tabla. Si se llena el
primer extent, se le asignara otro dinmicamente segn la medida que le hayamos
asignado a los prximos extents en el momento de la creacin de la tabla.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 4


Informix

Tblspaces
Es el conjunto de pginas que contienen datos de una misma tabla de la BD.
Podramos referirnos a un tblspace como un conjunto logico de extents.
Las pginas del tblspaces no necesariamente deben estar contiguas. Pueden
pertenecer a distintos chunks pero no a distintos dbspaces.
El mximo de extents que se pueden alojar en un tblspace es aproximadamente de
200. Un tblspace se aloja en un dbspace especfico por lo que podemos darle
exclusividad de ciertos dbspaces a tablas especficas.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 5


Informix

Caractersticas de las Bases de Datos

Logical Logs
Los logical logs son una coleccin de pginas contiguas en disco. Su finalidad es
guardar los registros de las transacciones del sistema. El sistema on line debe tener
como mnimo 3 archivos de logical logs.

Modos de Login
No logging: No se graban las transacciones de la BD
Unbuffered logging: Se guardan las transacciones en buffers de logs y son bajados
a los archivos de logs al encontrar la sentencia COMMIT.
Buffered logging: Se guardan las transacciones en buffers de logs y son bajados a
los archivos de logs cuando el buffer est lleno.
Mode Ansi: por defecto son Unbuffered Logging.

Physical Logs
Los phisical logs, almacenan la imagen de la pgina de datos o ndices antes que
sea modificada. Se utilizan en el proceso de fast recovery que acompaa al startup
de la base. Tambin coordina con el proceso de backup.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 6


Informix

Unidad 2 - Tipos de Datos

Tipo Bytes en Rango Descripcin


disco
CHAR(N) 2 Hasta 32767 Almacena letras, nmeros y smbolos. Son de
bytes Long. fija
VARCHAR(M[,N]) (m/2)+1 Hasta 255 Almacena letras, nmeros y smbolos. Son de
bytes Long. Variable. Se usan cuando la mayora de las
filas necesitan una pequea cantidad de espacio y
otras necesitan ms espacio. Puede almacenar
mas cantidad de filas por pgina de datos. Si la
fila crece y no hay espacio reservado, puede
necesitar guardarse en otro lugar fsico del disco.
Cuando se escriben datos en este campo, ste
reserva el espacio mnimo o el que necesita si
ste lo excede.
BOOLEAN 1 0/1 Almacenan un estado verdadero o falso.
SMALLINT 2 +-32767 Almacena nmeros enteros.
INTEGER 4 +- Almacena nmeros enteros.
2147483647
INT8 8 / 10 Dep. A partir de IDS 2000
Plataforma +-9223372036854775807
FLOAT 8 Hasta 16 dgit. Se utiliza para nmeros con punto flotante.
Signific.
SMALLFLOAT 4 Hasta 8 dgit. Se utiliza para nmeros con punto flotante.
Signific.
DECIMAL(P,E) (m/2)+1 Hasta 32 dgit. El nmero de dgitos est especificado por el
MONEY(P, E) Signific. usuario. Los valores se redondean en el caso de
ser necesario.
SERIAL Idem Idem Se usa en claves no crticas. Contiene nmeros
INTEGER INTEGER que se le asigna a cada fila de la tabla en orden
secuencial. No asegura la unicidad.
SERIAL8 Idem Idem INT8 Idem SERIAL
INT8
DATE 4 Fechas El formato por default es mm/dd/yyyy. Se usa la
Vlidas variable DBDATE para cambiar el formato
DATETIME (m/2)+1 Ver ejemplo Representa un punto en el tiempo desde aos a
fraccin de segundos.
INTERVAL (m/2)+1 Ver ejemplo Representa un perodo de tiempo.
TEXT 56+ Hasta 2GB Almacenan datos ASCII y caracteres de control
Simple Large tamao del tales como archivos de procesadores de texto,
Object archivo programas, etc. Se almacenan en Dbspaces o en
Blobspaces
BYTE 56+ Hasta 2GB Almacena datos de tipo binarios tales como hojas
Simple Large tamao del de clculo, imgenes digitalizadas, sonidos, etc.
Object archivo Se almacenan en Dbspaces o en Blobspaces
BLOB Hasta 4 TB Almacena datos de tipo binarios. Se almacenan
Smart Large en Sbspaces
Object
CLOB Hasta 4 TB Almacenan textos, HTML, Postscript, formatos no
Smart Large imprimibles. Se almacenan en Sbspaces
Object

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 7


Informix

DATETIME
Datetime year to second (2001 05 21 08:32:05)
Datetime date to minute (21 08:32)

INTERVAL
Interval year to month
Interval hour to minute

DBCENTURY
Variable de entorno que se usa para setear la centuria cuando un dato fecha est
representado por 2 dgitos.
El seteo puede ser:
P: Se interpreta la centuria pasada.
F: Se interpreta la centuria futura.
C: Se interpreta con los aos ms prximos.
R: Se interpreta con la centuria actual.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 8


Informix

Unidad 3 - Creacin de Bases de Datos y Tablas

Base de Datos: Conjunto de tablas y funciones relacionadas.


En cada Instancia del IDS, existen adems de las bases
creadas por los usuarios, dos bases administradas por el
motor, la SYSMASTER y la SYSUTILS.

Creacin de una base de datos


Al crear un BD, el administrador debe especificar:
Nombre de la Base de Datos
Modo de Transacciones
En cual dbspace se alojar

Nombre de la Base de Datos: nico en la instancia. Hasta 128 caracteres. Letras, dgitos y
underscore.
Modo de Transacciones: No Logging, Buffered Logging, Unbuffered Logging, ANSI.
Dbspace donde se alojar: si no se indica uno, lo har en el rootdbspace. Esto no es
aconsejable.
Ej:
create database alumnos in dbs_guarani with log
with buffered log
with log mode ansi

El Catlogo del sistema


El catlogo del sistema se compone de un conjunto de tablas que describen la estructura de
la base de datos. Estas son automticamente generadas en el momento de creacin de la base
de datos. Las ms consultadas son SYSTABLES, SYSCOLUMNS y SYSINDEX.
SYSTABLES: tienen un registro por c/tabla de la BD, incluyendo las tablas de
catlogo. Adems tiene informacin de cuntas filas tiene cada tabla, cuando se
modific, nombre de las tablas, tamao, dueo, etc.
SYSCOLUMN: nombre de las columnas de cada tabla, tipo de dato, 2do valor
mximo, 2do valor mnimo, etc.
SYSINDEX: Nombre de los ndices, campos que lo componen, etc.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 9


Informix

Creacin de una tabla

Las tablas de datos se crean por default en el dbspace en que se encuentra la BD a menos
que se le indique un dbspace distinto.
Los espacios para las tablas se asignan en unidades de extents. Un extent es una coleccin
de pginas fsicamente contiguas de disco. El tamao de los extents tambin pueden definirse en
el momento de la creacin o ser alterados posteriormente.
Los datos de las tablas permiten dos modos de lockeos: por filas o por pginas. Los lockeos
previenen que un usuario acceda a un dato que esta siendo utilizado por otro. El modo de lockeo
por default de las tablas es por pgina (PAGE).

Ej:
create table sga_alumnos (unidad_academica varchar(5) not null, carrera varchar(5) not null,
nro_inscripcion varchar(20) not null) in dbs_guarani extent size 64 next size 32 lock mode
row/page

Usos de Datos Blobs


Al crear campos de tipo BLOBS en una tabla, los valores de los mismos se almacenan por
default en el dbspace de la tabla, pero en una pgina distinta a la de los datos. Lo aconsejable al
crear datos BLOBS es indicar que stos se almacenen en un dbspace especial, el blobspace.

create table sga_personas (nro_inscripcion varchar(10) not null, apellido varchar


(20) not null, nombres varchar (20) not null, fec_nacimiento date not null, foto byte in
blob_guarani) in dbs_guarani;

Tabla temporaria
Las tablas temporarias se crean en dbspaces especficos para objetos temporarios. Para
ello, debe existir este dbspace tipo temporario en la base de datos y estar seteada la variable
DBSPACETEMP a este dbspace.
Los dbspaces temporarios no trabajan con LOGIN por eso las tablas temporarias deben ser
creadas WITH NO LOG o con Base de datos sin LOG.

create temp table tmp_regulares (anio_academico char(4), periodo_lectivo


varchar(20), legajo varchar(10), materia varchar(5)) with no log ;

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 10


Informix

La tabla temporal slo dura la sesin.


Puede ser borrada con DROP TABLE.
No tiene entrada en la tabla de catlogo.
No se pueden modificar.
Se le pueden crear ndices.
Los dbspaces temporarios se definen en su creacin.

Alterar una tabla


La sentencia alter permite agregar, modificar o borrar los campos de una tabla y con esta
sentencia se puede modificar el tamao de los extents y los modos de lock..

Alter table sga_personas drop cod_postal;


Alter table sga_personas Modify dni integer not null;
Alter table sga_personas Add fecha_nac date;
Alter table sga_personas Add fecha_relev date before calle_nac;

Alter table sga_personas modify next size 300;


Alter table sga_personas lock mode row;

Renombrar columnas, tablas y bases de datos.

Rename Column sga_personas.fecha_nac to fecha_nacimiento;


Table aux_aspirantes to sga_alumnos;
Database alumnos to alumnos_quimicas;

Borrar tablas y bases de datos.


Drop table aux_aspirantes
Database pruebas_alumnos;

DBSCHEMA:
Se usa para obtener la estructura de una BD, una tabla o un Stored Procedure.
Genera un archivo de comandos SQL.
Ej.: dbschema d alumnos t sga_personas

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 11


Informix

Unidad 4 - NDICES

Estructura de Indices
Los ndices estn organizados en una estructura de rbol B+.
Un rbol B+ es un conjunto de nodos que contienen la clave y un puntero a los datos o a
otro nodo.
El rbol B+ se maneja con niveles, donde el nivel 0 apunta a los datos y los niveles
superiores apuntan al nodo inferior. El nodo de nivel ms alto es el nodo root.
El rbol B+
401
> 394
387 393
NODO ROOT 292
387 D
> 294
89 293 A

292
T
89 97 O
95
S
89
59
57
56

Nivel 2 Nivel 1 Nivel 0

Si la clave es pequea, pueden entrar ms claves por nodo lo que significa que voy a tener
menos niveles. El tamao de un nodo es el de una pgina. Cuando un nodo se llena, se produce
un split o divisin en 2 nodos y el valor medio de ambos pasa al nodo de nivel superior. Si el nodo
de nivel superior tambin se llena, se produce un split con ste y as sucesivamente. Cuando se
produce un split con el nodo root, el rbol crece un nivel y se crea un nuevo nodo root.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 12


Informix

Clasificacin de ndices
Los ndices se clasifican en: nico, duplicado, compuesto, cluster. Un ndice es nico o
duplicado, adems puede o no ser compuesto o cluster. El tamao mximo de los ndices es de
255 bytes.

nico
Se usan en primary key, unique index.
Duplicado
Cuando en la tabla hay ms de una ocurrencia.
Compuesto
El ndice est compuesto por ms de un campo. Los ndices compuestos no pueden tener
ms de 16 campos y stos a la vez no pueden superar los 255 bytes.
Cluster
Este tipo de ndice, ordena la tabla fsicamente. Slo sirve en el momento de la creacin.
Sirven para tablas de poco movimiento y mucha consulta.

Ej.: create index ix_personas_dni on sga_personas(dni) ;


create index ix_personas on sga_personas(apellido, nombres) ;
create unique index [nombre ndice] on [tabla donde estn los datos]([atributos]) ;
create unique cluster index [nombre de ndice] on [tabla de datos]([atributos]) ;

Si ya existe un ndice cluster y queremos utilizar otro, se debe borrar el primero y volver a
construir el cluster.
Alter index ix_dni to cluster;
Alter index ix_apellido to not cluster;

Drop index ix_dni;

FILLFACTOR
Es el porcentaje de llenado de los nodos en el momento de creacin del ndice.
Create index ix_cod_postal on sga_datos_censales(cod_postal) fillfactor 80;

Significa que los nodos se llenaran hasta el 80% de su capacidad en el momento de


creacin dejando un 20% para usar cuando el ndice crezca. Por default el FILLFACTOR es de
90%.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 13


Informix

Unidad 5 - Control de Concurrencia

La concurrencia a los datos se produce cuando mas de un usuario quieren acceder al


mismo dato.

Tipos de Concurrencia
Read Concurrency SELECT
Update Concurrency INSERT, DELETE, UPDATE.

Read Concurrency: Niveles de Aislamiento


Dirty Read
Committed read
Cursor Stability
Repeteable Read

Dirty Read
Lee los datos de la tabla sin importar si los mismos se estn modificando. (lock).
Sirve cuando la tabla es esttica, no se necesita 100% de precisin y/o no se puede
esperar hasta la liberacin del lock.

Committed Read
Lee datos confiables, comitidos que existen al momento de la lectura pero como
tampoco lockea, alguien puede modificar la tabla posteriormente.

Cursor Stability
Lockea la fila leda con SHARED LOCK. Asegura que la fila existe mientras se est
leyendo.

Repeteable Read
Lockea todas las filas involucradas en el QUERY. Si el motor entra en forma
secuencial, lockea toda la tabla. Coloca SHARED LOCK.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 14


Informix

Los comandos se setean antes de la sentencia select:


SET ISOLATION TO DIRTY READ;
SET ISOLATION TO COMMITTED READ;
SET ISOLATION TO CURSOR STABILITY;
SET ISOLATION TO REPETEABLE READ;

Update Concurrency: Niveles de lockeos

A nivel de base de datos: database alumnos exclusive;


A nivel de tablas: lock table sga_planes in share mode;
lock table sga_versiones in exclusive mode;
A nivel de pgina y filas: Se determinan en la creacin o alteracin de la tabla.
Lock por pgina pone un lock a toda la pgina.
Lock por fila coloca un lock por cada fila.
A nivel de clave: El mtodo de lockeo de rbol B+ es el lock por clave donde la clave que
est siendo actualizada, insertada o borrada es lockeada..

Si se trabaja con bases de datos con logging de transacciones, las tablas se deslockean al
hacer COMMIT o ROLLBACK de la transaccin.
En bases de datos sin logging se coloca: unlock table ordenes;

Modos de Lockeo
Set lock mode to wait;
Set lock mode to not wait;
Set lock mode to wait 20;

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 15


Informix

Unidad 6 - Integridad

Referencial, de Entidad y Semntica

Integridad Referencial: fuerza la relacin entre tablas..


Integridad de Entidad: cada fila tiene un identificador nico clave primaria.
Integridad Semntica: dada por el tipo de dato de la columna.
Tipo de dato: segn la declaracin del tipo de la columna va a permitir o no el
ingreso de un dato.
Valor por defecto: valor que se coloca en el campo si no se define uno en el
momento del insert de la fila.
Chequeo de constraints: chequea condiciones de los datos insertados o
actualizados.

Constraints
Si al definir el constraint ya existen filas en la tabla, dichas filas deben satisfacer el constraint
para que el mismo pueda quedar declarado

Nombres de los constraints


Los constraints se identifican con un nombre asignado por el usuario en su creacin o por el
sistema si el usuario no define uno.

Tipos de constraints
Constraint Check: devuelve un valor true o false. Se aplica a cada fila insertada o
actualizada.
Constraint Referencial: Fuerza la relacin padre-hijo, exige que exista una clave nica
Primary Key en la tabla padre a la cual va a referenciar la tabla hijo.
Constraint Unique: Asegura que los datos de la columna son nicos en toda la columna de
la tabla.
Not Null: garantiza que la columna contendr datos en ese campo al hacer un insert o
update.

Ejemplos:
Create table sga_aspirantes (dni integer not null, leg_int smallint unique not null,
apellido char(15) not null, provincia varchar(4) check(provincia in (5000)), pas
char(2) default ar, primary key (dni));

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 16


Informix

Create table sga_finales (dni integer not null, fecha_emision date default TODAY
not null, foreign key (dni) references test1);

Delete en cascada
El borrado en cascada permite el borrado automtico de las filas de la tabla hija cuando la
fila del padre es borrada. Esto simplifica el cdigo en la programacin, adems de procesarse slo
una sentencia SQL, mejorando la performance .
Si la sentencia falla en algn punto, toda la transaccin hace rollback.
Para invocar el delete en cascada, agregar la clusula ON DELETE CASCADE despus de
la clusula REFERENCES en la sentencia CREATE TABLE para la tabla hija.

Ej.: CREATE TABLE sga_alumnos (unidad_academica VARCHAR(5) NOT NULL,


nro_inscripcion VARCHAR(10) NOT NULL, legajo VARCHAR(10) NOT NULL,
PRIMARY KEY (unidad_academica, legajo), FOREIGN KEY (unidad_academica,
nro_inscripcion) REFERENCES sga_personas ON DELETE CASCADE
CONSTRAINT fk_alumnos_personas);

Si la tabla ya existe, habr que hacer un ALTER TABLE:


ALTER TABLE sga_alumnos DROP CONSTRAINT fk_alumnos_personas,
ADD CONSTRAINT (FOREIGN KEY (unidad_academica , nro_inscripcion)
REFERENCES sga_personas ON DELETE CASCADE CONSTRAINT
fk_alumnos_personas);

Los modos de transaccin de los constraints:


El modo de transaccin de los constraint determina cuando ocurrir el chequeo del
constraint.
Inmediato - Set constraints nombre const. Immediate;
Diferido - Set constraints nombre const. deferred;
Desconectado - Set constraints nombre const. detached;

Inmediato: el chequeo del constraint ocurre al final de cada sentencia.


Diferido: el chequeo del constraint se hace antes del commit.
Desconectado: es el modo de constraint que se usa en las BD sin logging y para tablas
temporarias creadas con With not log.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 17


Informix

Unidad 7 - Modos y Deteccin de Violacin

Tipos de Objetos de BD.


Los objetos de las BD son:
Constraints
o Unique
o Referential
o Check
o Not null
ndices
Triggers

Unique: cada fila insertada o modificada debe tener un valor nico para la clave.
Referential: fuerza la relacin padre/hijo entre la clave primaria y la fornea.
Check: cada fila debe cumplir cierta condicin especificada en la columna.
Not null: la columna no puede tener valor nulo.

Modos de Objetos de BD
Un objeto de BD puede tener uno de los siguientes modos:
Enabled: en este modo los constraints son chequeados, los ndices estn activos y
los triggers son disparados.
Disabled: en este modo los constraints no se chequean, los ndices no se controlan
ni se actualizan y los triggers no son disparados.
Filtering (excepto triggers): en este modo los constraints son chequeados y las filas
que no pasan las validaciones son almacenadas en tablas de log y el proceso
contina con el chequeo de las filas siguientes. Slo los ndices nicos pueden ser
filtrados. Los triggers no admiten este modo. No se hace rollback automtico.

Deshabilitando, habilitando y filtrando objetos

Los datos en las BD se cargan ms rpido si sta no tiene que chequear constraints,
consultar y actualizar ndices o disparar triggers. Por esta razn en algunos casos es conveniente
deshabilitar los objetos y habilitarlos una vez que los datos hayan ingresado a la BD. Es ms
preciso re-habilitar un objeto que borrarlo y crearlo nuevamente.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 18


Informix

El modo filtro permite capturar las filas que no cumplen con las condiciones definidas para la
tabla. Cuando se trabaja en modo filtro, al terminan la sentencia el sistema no informa si ha habido
datos que no cumplieron las validaciones, para que lo informe se debe agregar a la sentencia de
del filtro el parmetro WITH ERROR.

Objetos Individuales:
Set constraints ck_estado, ck_secundario disabled enabled filtering [with error];
Set indexes idx_dni disabled enabled filtering [with error];
Set triggers tu _carrera_aspira disabled enabled;
Por tabla:
Set constraints, indexes, triggers for cliente disabled enabled
Set constraints, indexes for cliente filtering [with error] ;

Creando Objetos deshabilitados:


Create unique index id_apellido disabled
Create Table sga_datos_censales check (obra_social in (S, N)) disabled;
Create Trigger ti_planes disabled;

Capturando las violaciones


Para que al usar el modo filtro quede asentado cual fila no cumple con las restricciones de
los campos de la tabla, se deben habilitar unas tablas destinadas a tal efecto: Tabla de violacin y
tabla de diagnstico.

Set constraints enabled


Fila que contiene una Constraint que fueron violados
violacin

Una fila puede tener mltiples violaciones

Tabla de Tabla de
violaciones diagnstico

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 19


Informix

Por cada tabla slo puede existir una tabla de violacin y una de diagnstico. En la tabla de
violaciones se guarda la fila de datos que no cumple con alguna condicin y en la tabla de
diagnstico existe una fila por cada violacin que ocurri en esa fila.

Seteo de tablas de violacin


Para habilitar las tablas de violacin y diagnstico, adems de indicar el modo filtering, se
debe colocar:
Start violations table for sga_detalle_acta [using t_vio, t_dia] [max rows 10] ;

Por default, las tablas de violacin y diagnstico tienen el nombre de la tabla seguido por un
undescore y vio o dia segn corresponda: ej: sga_detalle_acta_vio, sga_detalle_acta _dia.
Este nombre puede ser reemplazado si se indica en la sentencia de creacin de las tablas
[using t_vio, t_dia] .
El parmetro [max rows n] indica el nmero mximo de filas en la tabla de diagnstico por
cada fila en la tabla de violacin.

Para que no se contine guardando las filas filtradas en las tablas de violacin y diagnstico,
se debe ejecutar:

Stop violations table for sga_detalle_acta;

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 20


Informix

Unidad 8 - Optimizador basado en costos

Al ejecutar un select con ms de una tabla involucrada, obtenemos:


Join = relacin entre una o ms columnas en c/tabla.
Tuple = resultado entre 2 tablas.

Estrategias de join
Nested Loop Join
Hash Join
Sort Merge Join

Nested loop join


Lee la primer tabla y con los campos del join arma una clave y ordena por esta
clave a la segunda tabla, luego barre la primer tabla en algn orden y une la
correspondiente columna con la segunda tabla por el ndice.
Hash join
Barre la tabla ms pequea secuencialmente y construye una tabla Hash, a las filas
de la segunda tabla le aplica esta funcin hash y compara el resultado con la tabla
hash.
Sort Merge Join
Ordena ambas tablas por los campos del join, luego hace un merge entre las tablas
por los campos del join.

OPTCOMPIND: forma de influenciar al optimizador a elegir un query path.


Variable de entorno o parmetro de configuracin.-

OPTCOMPIND = 0 slo considera index path.


OPTCOMPIND = 1 En el nivel de aislamiento Repeteable Read slo considera el
index path, de lo contrario considera el de menor costo.
OPTCOMPIND = 2 siempre considera el de menor costo.

El optimizador examina todos los caminos posibles de unin de las tablas del query:
Path 1: Tabla1 Tabla2 Tabla3
Path 2: Tabla1 Tabla3 Tabla2
Path 3: Tabla2 Tabla3 Tabla1

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 21


Informix

Proceso de optimizacin:
Examinar todas las tablas, filtros e ndices.
Estimar costos para cada par join.
Repetir estimacin por cada tabla en el join.

Examinar todas las tablas


Determinar si se pueden utilizar ndices para filters, order by, group by.
Encontrar la mejor manera de barrer las tablas: secuencial o index.0

Estimar Costo Pair Join:


El optimizador selecciona el join entre dos tablas.
Decide qu ndices usar.
Calcula el costo para cada join.
Elimina join redundantes.

Repetir para cada tabla extra:


Si existe un order by o group by, el costo del sort es agregado al final del costo del path.
Despus que todas las tablas estn unidas, el path con menor costo es elegido por el
optimizador.

La optimizacin high o low permite elegir que el optimizador examine todos los path
posibles o solo los que de manera parcial van dando el menor costo.
Set Optimization [high|low[fist_rows]

Set Optimization low: elige el path a seguir por el de menor costo de la primer
comparacin y descarta el resto de las path.
Set Optimization [first_rows]: Recupera rpidamente las n filas y luego contina el query.
Es distinto a la sentencia: select first 6 from clientes... dnde SOLO recupera las primeras 6 filas.

Set Explain
La sentencia SET EXPLAIN permite ver cual camino el optimizador eligi para resolver el
query.
Set explain on;
select.;
select.;
set explain off;

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 22


Informix

La salida del set explain, es un archivo llamado sqexplain.out que contiene la siguiente
informacin:
Costo Estimado:
Tablas usadas y en qu orden
Si fueran necesarias tablas temp.

Los tipos de acceso a las tablas sern uno de los siguientes:


Sequential scan
Index Path
Autoindex Path : ndice temporario que se cre
Remote Path: servidor remoto decide el acceso

El tipo de Join entre dos tablas:


Nested loop join
Sort merge join
Hash Join

La informacin que nos da set explain es:


Costo estimado: n, slo sirve para comparar con otro
Nmero de filas retornadas: tambin es estimada. Es ms preciso cuando los filtros
y condiciones de join estn asociadas con ndices y cuando las estadsticas estn
actualizadas.
Archivos temporarios: la razn por la que fue necesario crear un archivo temporario.
Cuando un query incluye una clusula where, puede significar una condicin de join
o un filtro.
Cuando el optimizador elige acceder elige acceder a la tabla a la tabla en forma
secuencial, y existe una condicin de filtro, es informado en filters: condicin.
Cuando el optimizador decide crear un ndice para acceder a la tabla, muestra qu
clave se us en index.key cuando dice (key only) significa que no necesit leer toda
la fila.
Cuando se realiza una bsqueda por un ndice, generalmente existe una de las dos
condiciones: el punto de partida y de fin.
Lower index filter: posicin inicial de bsqueda cuando hay ndices.
La condicin que indica el punto de stop es el Upper index filter: condicin de punto
de parada o de fin.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 23


Informix

Dynamic Hash Join: Indica que se construy una tabla hash. Incluye el filtro usado
en el join. Por defecto la tabla hash se construye sobre la segunda tabla listada en
el set explain. Si tiene (Build Outer) es porque lo hace con la primera.
Remote Path: Se indica cuando el query accede a una tabla de una BD remota. El
optimizador puede decidir si el sitema remoto manejar algo o todo el query.

Directivas de Optimizacin:
Las directivas de optimizacin sealan al optimizador el path especfico que debe seguir.
Tienen efecto sobre:
Mtodos de acceso: index vs. Scan
Join methods: Hash o nested loop join.
Join order: orden de unin de tablas.
Optimizacin goal: tiempo de respuesta vs. Rendimiento procesamiento.
Explain: genera salida SQExplain.out
Pueden usarse en:
Select, update, delete.
Store procedures y triggers.
In views.

Ej.: select - - +comentario directiva ordered avoid full(ndice) from

Se escriben como comentarios y su primer carcter es el signo + (ms).


--+ directiva
{ + directiva}
/ * + directiva * /

Mtodos de acceso
Index
Soporta ninguno (0) ms ndices especificados
Nunca realiza un full scan
Si no se especifica nombre de ndice se considera el de menor costo.
Ej.: select - - + index ( ) from sga_insc_cursadas;

Avoid_Index
Acepta 0 ms ndices que no sern considerados.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 24


Informix

Evita que el optimizador considere ndices.

Full (table name)


Fuerza un full scan.
Ej.: select - - + full (tabla) .. , from.

Avoid Full (table name)


Evita un full scan si existe ndice. Se debera usar con nivel de aislamiento Repeteable
Read, ya que no est haciendo full scan, por lo tanto slo lockea el ndice.
Ej.: select - - + avoid_full (tabla) , index (tabla ndice) , from..

Directivas de orden del Join


Fuerza al optimizador a unir las tablas en el orden en que se encuentran en la clusula from.
Ej.: select {+ ordered} c.legajo, c.comision, p.nombre, m.nombre
from sga_comisiones c, personas p, materias m
where c.nro_inscripcion=p.nro_inscripcion
and c.materia=m.materia

Directivas del mtodo del Join


Use_nl (table) = fuerza un nested loop join. La tabla pasada como parmetro es la
tabla accedida como inner (por el ndice)
Avoid_nl (table) = evita un nested loop join sobre la tabla especificada.
Use_hash (tabla) = fuerza hash join. La tabla pasada como parmetro es la que se
usa para armar la tabla hash.
Avoid_hash (tabla) = evita hash join sobre tablas listadas.
Ej.: select - - + use_hash (sga_detalle_acta/build) ,
from .

Objetivo de optimizacin:
Permite especificar el nmero de filas que considera importante para la primera pantalla de
datos.
Ej.: select - - + first-row (100) .., . from.

Directiva de Explain
Genera una salida del plan explain.
Ej.: select - - + explain avoid_full (sga_insc_examen) from

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 25


Informix

Unidad 9 - Update Statistics

UPDATE STATISTICS

La nica manera de actualizar las estadsticas de las tablas del catalogo es corriendo la
sentencia UPDATE STATISTICS. El optimizador es influenciado por la informacin que contienen
las tablas del catalogo del sistema, por lo tanto correr el UPDATE STATISTICS es importante.
Una vez corrido, el motor guardara las estadsticas de cada una de las tablas e ndices.
Actualiza las tablas del catlogo y genera tablas de distribucin que sern usadas por el
optimizador para la resolucin de los querys. Cuando las estadsticas estn actualizadas las
consultas son ms eficientes. Adems optimiza los stored procedures.
Al UPDATE STATISTICS se lo puede correr de distintas maneras:

UPDATE STATISTICS (LOW-MEDIUM-HIGH)

Low
Usando este modo, no se crearn distribuciones. Si no se especifica el modo de UPDATE
STATISTICS, correr un LOW por defecto

UPDATE STATISTICS FOR TABLE


Esta sentencia realizara el update statistics para todas las tablas.

UPDATE STATISTICS FOR TABLE tabla


Actualizara las estadsticas para una tabla especifica.

UPDATE STATISTICS FOR TABLE tabla (columna)


Actualizar las estadsticas para una columna especfica.

El modo Low, no genera tablas de distribucin, slo actualiza las tablas:


Systables: Nmero de filas y nmero de pginas usadas
Syscolumns: Valores mnimo y mximo
Sysindexes: Nmero de nivel o del b+tree, nmero de niveles b+, nmero de
claves nica y grado del cluster.

El modo HIGH y MEDIUM adems de contemplar lo del modo LOW, crea distribuciones
para las columnas

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 26


Informix

Estas distribuciones son entradas adicionales en las tablas del catalogo del sistema con
informacin adicional sobre como estn distribuidos los valores para cada tabla por columna.
Existen varios entradas por cada tabla ya que por cada columna, estos valores son determinados
por rangos y clasificados en valores nicos o repetitivos.

Medium
Selecciona filas aleatoriamente para construir la distribucin
High
Ordena todas las filas y construye la distribucin.

Se debe tener permiso de DBA para correr en modo Medium y High.


Los Stored procedures son optimizados en cualquier modo siempre y cuando no se
especifique FOR TABLE en la sentencia.

Distribuciones
Los modos medium y high del Update Statistics, crean o actualizan las distribuciones.
En el momento de la creacin de las distribuciones, el motor distribuir los valores nicos
por rangos en pequeos baldes como repositorio y los valores duplicados en una tina llamada
overflow bin. Primeramente leer las filas de la tabla y segn la sentencia de UPDATE
STATISTICS, respetando el orden de las columnas.
A continuacin ordenar las filas dependiendo del modo de ejecucin (MEDIUM-HIGH). Si
es MEDIUM solo una parte aleatoria ser ordenada y si es HIGH, involucrar a todas las filas.
Una vez ordenadas sern divididas en estos baldes. Estas distribuciones le sern tiles al
optimizador para elegir el camino ms conveniente.

Se pueden generar las distribuciones sin actualizar las tablas systables, syscolumn y
sysindexes.
Update Statistics Medium distribution only;
Update Statistics High distribution only;

Informix recomienda que se generen las distribuciones ya que el optimizador toma datos
desde all para armar su plan.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 27


Informix

Unidad 10 - Seguridad

Niveles de seguridad
Base de Datos
Tablas
Columnas

Niveles de Privilegio
Connect Resource DBA
Acceso a las tablas de la BD
Crear vistas y tablas temp. X X X
Crear y borrar tablas e
ndices, alter tabla X X
Otorgar y revocar privilegios X
Borrar la Base de Datos X

Para acceder a una Base de Datos se debe tener como mnimo privilegios de connect.
El DBA es quien puede otorgar o revocar estos privilegios:

Privilegios a nivel de BD:


grant connect to public;
grant resource to jorge;
grant DBA to maria;

Revoke connect from public;


Revoke resource from jorge;
Revoke dba from maria;

Privilegios a nivel de tabla / columna


Pueden ser de tipo: Alter, delete, index, select, update, insert, reference, all.

Grant all on tabla to public


Grant update on tabla to usuario1 with grant option.
Grant insert, delete on tabla to usuario1 as usuario2.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 28


Informix

With grant option: el usuario puede otorgar ese permiso a otro usuario.
AS: Hace otorgador del permiso a otro usuario.

Revoke all on tabla from public


Revoke update on tabla from public

Privilegios a nivel columna


Para otorgar privilegios sobre columnas, se usan las sentencias select, update y references.

Grant select (apellido, nombres) on sga_personas to public.


Grant insert, update (fecha_registro), select on sga_reiscripcion to public.

Privilegios de Stored Procedures


Revoke delete on sga_insc_cursadas from public
Grant execute on sp_borrar_insc_cursadas to public

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 29


Informix

Unidad 11 - Vistas

Tablas Virtuales

Las vistas son tambin llamadas tablas virtuales.


Pueden estar compuestas por algunos o todos los campos de una o varias tablas y a la vez
pueden estar filtrando filas que no cumplan ciertas condiciones. Para el usuario estos filtros son
totalmente transparentes, l la ve como una tabla corriente, por los que pueden ser utilizadas
como un mecanismo de seguridad evitando que algunos usuarios tengan acceso a cierta
informacin.

Los motivos ms caractersticos del uso de vistas son:


Los datos de algunas columnas deben resguardarse de algunos usuarios.
Las filas de una consulta pueden no tener relevancia para algunos usuarios.
Se necesitan datos que son el resultado de un computo, de expresiones , etc.

Columnas Virtuales
Las columnas de las vistas adquieren por default el nombre de las columnas de la tabla que
la forman pero pueden definirse nombres a las columnas de las vistas en el momento de la
creacin.
Cuando la vista contiene campos calculados o expresiones, deben definirse nombres para
las columnas. Estos nombres se definan entre parntesis luego del nombre de la vista. A las
columnas con campos calculados se les denominan columnas virtuales.

Creacin de vistas
CREATE VIEW vw_historia_academica
AS SELECT nota, estado. FROM sga_detalle_acta,
sga_equiv_otorgada, sga_examenes_equiv WHERE .;
CREATE VIEW vw_cursadas (legajo, Apellido, cant_mat_inscriptas)
AS SELECT legajo, apellido, count(*) FROM sga_insc_cursadas
WHERE periodo_lectivo=PRIMER CUATRIMESTRE AND
anio_lectivo=2005 GROUP BY 1,2 ORDER BY 2 ;

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 30


Informix

Borrado de una vista


Las vistas no admiten modificaciones, para ello deben borrarse y volver a crearse.

Drop view vw_cursadas;

Consulta de una vista


El tratamiento de las vistas para las consultas es igual al de una tabla.
Select * from vw_historia_academica

Restricciones
Las vistas tienen sus desventajas respecto de las tablas dadas por sus restricciones:
No se pueden crear ndices
Depende de la tabla subyacente
Se deben tener privilegios de select sobre las columnas de la tabla para utilizarlas
en las vistas.
No se puede usar insert, update o delete cuando la vista tiene :
o join
o una funcin agregada
o una columna virtual

Clusula With check option


La clusula with check option, se utiliza para evitar que a travs de una vista se ingresen
valores a los campos de datos que no pertenecen al conjunto de datos de la vista

Create view vw_codigos_postales as select * from mug_codigos where


Codigo in (5000, 5100, 5200) with check option.

Slo dejar insertar o actualizar filas para los cdigos postales 5000, 5001, 5002.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 31


Informix

Unidad 12 - Migracin, Utilitarios para cargar y descargar datos

Dbexport
Dbexport= baja una Bd entera dentro de archivos ASCII. Puede generar un nico archivo
que contiene toda la base de Datos o generar un archivo de esquema y uno por cada tabla
perteneciente a la Base de Datos. Estos archivos pueden direccionarse a disco o a cinta.
Sintaxis:
Dbexport t \dispositivo de cinta b bloque en KB s Tamao_cinta en KB nombre_BD
Dbexport - o\ (path ) nombre_BD

Dbimport
Dbimport = levanta archivos ASCII desde disco o cinta y crea la BD con sus tablas y datos.
Utiliza el archivo de esquema y de datos generados por el DBEXPORT.
Sintaxis:
Dbimport t \dispositivo b bloque s Tamao_cinta nombre_BD d dbspace - l.
Dbimport i \(path) nombre_BD d dbspace -l unbuffered.

Dbload
Dbload = carga datos desde archivos ASCII a tablas existentes. El archivo de carga es un
archivo ASCII en donde las columnas estn separadas por un delimitador definido. Por default el
delimitador es el | (pipe).
Sintaxis:
Dbload c \ (path y archivo de comandos) d (nombre BD) l (archivo de errores) e
(nmero de errores)

Archivo de Comandos del dbload:


Ejemplo1:
File sga_insc_cursadas.unl
legajo 1-10,
materia 11-20;
Insert into sga_ins_cursadas values (legajo,materia);

Ejemplo2:
File sga_examenes.unl delimiter "|" 20;
Insert into sga_detalle_acta;

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 32


Informix

Load
LOAD es un comando SQL y se usa para cargar datos desde archivos ASCII a una tabla.
Dicha tabla puede tener datos cargados previamente. Los datos a ingresar deben cumplir con
todas las restricciones de la tabla.
Sintaxis:
LOAD FROM "Path/archivo.unl" insert into sga_insc_cursadas;

Unload
UNLOAD es un comando SQL y se usa para descargar datos desde un query en archivos
ASCII. Los datos a descargar son el resultado de una consulta entre una o varias tablas.
Sintaxis:
UNLOAD TO "Path/archivo.unl" select * from sga_insc_cursadas where
anio_academico=2005;

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 33


Informix

Unidad 13 - Backups

BACKUPS
Un backup del Online es el proceso de copia ya sea de un subset de dbspaces o de toda la
instancia y logical logs a un dispositivo secundario, disco local o dispositivo ptico. El proceso de
backup nos garantiza una imagen consistente de los datos en el momento que es creado mientras
el sistema esta en lnea, en modo multiusuario o en ejecucin transaccional.

ONTAPE
El motor ofrece dos utilitarios para realizar backups el OnBar y el Ontape. Estos permiten el
backup del logical logs y el de toda la instancia. Pero se deber tener en cuenta que no puede
utilizar cintas de una utilidad con la otra.
El ontape ofrece un archive de toda la instancia, backup del logical logs y modo de
restaurar. El mismo posee una interfaz de lnea de comando y debe ser ejecutado por el usuario
informix o pertenecer al grupo informix-admin.
El comando ontape permite:
Archive completo de la instancia para que en caso de un fracaso, se pueda recrear
el sistema completo.
Archive Incremental para proporcionar un ambiente de backup flexible y planear un
horario del archive que satisfaga las necesidades de su sistema.
Definicin de N dispositivos de cinta separados para que puedan ser realizados los
backups de logical logs.
Backup de logical logs continuo que se puedan realizar backups automticos de
logical logs cuando estos se llenen.
Restore de la instancia completa y a nivel dbspace .

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 34


Informix

Niveles de backup
El motor proporciona tres niveles diferentes de backup. Estos son:
Nivel-0, Nivel-1 y Nivel-2.

Nivel-0: Un archive de nivel-0 contiene una copia de todos los datos de la instancia
en el momento que se realizo el backup.
Nivel-1: Un nivel-1 contiene una copia de todas las pginas que fueron modificadas
desde el ltimo nivel-0.
Nivel-2: Un archive de Nivel-2 contiene todos los datos que han cambiado desde
el ltimo nivel-1.

El comando para realizar este tipo de backup es:


Ontape s

Se le pueden agregar distintos parmetros para los propsitos deseados como:


-L n dnde n indica el nivel de backup (0, 1 o 2)
-U <Base> Cambia el modo de la base de datos a Unbuffered Logging
-N <Base> Cambia el modo de la base de datos a Not Logging

Ejecucin del backup


Al ejecutar el ontape s nos presentar lo siguiente:

Please enter the level of archive to be performed (0, 1, or 2)

En esta instancia deberemos indicarle el nivel del backup


Luego nos solicitara que montemos la cinta en el dispositivo configurado en el $ONCONFIG

Please mount tape 1 on /users/informix/backup and press Return to continue ...

Una vez montado, presionar Enter y comenzar a realizar el backup


Una vez finalizado nos indicar hasta que logical log ha backupeado

Program over es el indicativo que el backup ha finalizado.

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 35


Informix

Backup de logical logs

El backup de logical logs puede ejecutarse de dos maneras: Backup automtico o Contnuo.

Backup Automtico
Es explcitamente inicializado y archivarn los logical logs que se encuentren llenos,
detenindose en el logical log actual. Este mtodo es recomendado para realizar backup de
logical logs en forma frecuente.

Backup Continuo
Es mas conveniente cuando se dispone de un dispositivo dedicado para la realizacin de los
mismos. Este se activara en el momento que se llene un logical log.

Sintaxis:
ontape a Backup automtico de logical logs
ontape c Backup continuous de logical logs

Poltica de backup
Es recomendable aplicar una poltica de backups para resguardar la informacin de las
instancias eficientemente. Dependiendo de los tiempos de escritura del dispositivo, es conveniente
realizar un backup de nivel 0 o sea, completo de toda la instancia adems de uno continuo de
logical logs.

Backups Incrementales (Archives Incrementals)

Nivel 0 Nivel 1 Nivel 2

Dependiendo de los tiempos de las pruebas, puede adoptarse la opcin de realizar un


backup de nivel 0 en la semana e incrementales el resto de los das.

Restore
El restore es un proceso de consta de 2 etapas, el restore fsico y el de logical logs. En el
restore fsico, se restauraran los datos ya previamente comitidos desde el ultimo backup de nivel
0, luego, en el caso que se requiera, solicitara el de nivel 1, 2, etc..

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 36


Informix

Una vez completo este proceso, requerir los logical logs para restaurar las transacciones
que fueron ejecutadas desde el ultimo backup de todo el sistema, por lo que se deber proveer la
cinta de logical logs para que la instancia quede consistente hasta la ltima transaccin que fue
comitida.

Restaurar logical logs es un proceso lento por lo que es conveniente realizar backups de los
dbspaces completos frecuentemente para que en el momento que se deba ejecutar un restore,
haya menos transacciones para aplicar un rollforward.

Restore fsico es cuando se restaura desde archivos de nivel 0, 1 2.


Restore lgico es cuando se restaura desde archivos de logical logs.

Ejecucin del restore


Para restaurar un dbspace:
Ontape r dbspace

Para restaurar toda la instancia deber estar en modo Off-Line.


Una vez ejecutado el ontape r nos presentara esta leyenda.

Please mount tape 1 on /users/informix/backup and press Return to continue ...

Si el dispositivo es el correcto, presionar Enter y el programa ontape continuara


A continuacin se presenta la arquitectura del disco que se tena al momento de realizar el
archive. Se recuerda que los discos deben tener exactamente la misma configuracin, sino ell
archive abortar.

Dbspaces
number flags fchunk nchunks flags owner name
1 1 1 1 N informix rootdbs
2 1 2 1 N informix dbspace1
3 1 3 1 N informix datosdbs

Chunks
chk/dbs offset size free bpages flags pathname
1 1 5 10000 41 PO-/users/informix/chunks/cook1
2 2 0 5000 2516 PO-/users/informix/chunks/cook2
3 3 0 5000 4603 PO-/users/informix/chunks/cook3

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 37


Informix

Consultar si contina el restore.

Continue restore? (y/n) y


En este punto, nos da la opcin de realizar un backup de logical logs si es que no fue
realizado, se recomienda esta opcin.

Do you want to back up the logs? (y/n)n

Una vez finalizado el archive 0, preguntara si existe alguno de nivel 1 o nivel 2 a restaurar.

Restore a level 1 or 2 archive (y/n) n

Si es que se posee de cintas de logical logs a restaurar, la opcin debe ser y.

Do you want to restore log tapes? (y/n)n

Finalizacin del programa ontape. La base quedara en modo Quiescent.

Program over.

Parmetros de configuracin de ontape


Los dispositivos de la cinta o path del archivo para realizar backups se definen en el archivo
de configuracin $ONCONFIG.
El parmetro TAPDEV especfica el dispositivo de la cinta que se usa para realizar un
backup completo al utilizar la herramienta ontape, mientras que el parmetro LTAPEDEV
especfica el dispositivo para realizar backup de logical logs. Para cada tipo de dispositivo de la
cinta, se deber especificar los siguientes campos:
TAPEBLK Tamao de bloque de cinta a ser usado.
TAPESIZE Tamao de la cinta.
Ej:
TapeDev: f:\archive\backup
TapeBLK: 16
Tapesize: 10240
Ltapedev: f:\archive\logs /nul
LtapeBLK: 16
Ltapesize: 10240

Administracin y Optimizacin de Bases de Datos -Informix Dynamic Server 38

También podría gustarte