Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 83

Diseo de Bases de Datos

Administracin de BD

Diseo fsico y Optimizacin

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Proceso de Diseo de Bases de Datos


Conceptual Lgico Estndar
Em (id, dep, nombre, fecha)
. CREATE TABLE Empleados ( Id INTEGER PRIMARY KEY, Dept CHAR(2) REFERENCES Dept ( Id ), Nombre VARCHAR(50) NOT NULL, Fecha_naci DATE NOT NULL . ); CREATE TABLE . . .

Lgico Especfico
Esquema SQL

Fsico

Dep ( ide, desc, pres)


. .

o bien
PK

PK FK

. .

Diseo fsico = Estructuras lgicas

Estructuras fsicas
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Diseo Fsico: Motivacin


Buscamos implementacin suficientemente eficiente, en una plataforma concreta
Hard+SO+SGBD+ (aplicacin)

La implementacin implcita (probablemente) es


Suficiente: en BD para pruebas funcionales, formacin, demos Insuficiente: en BD para pruebas de carga, produccin

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Diseo Fsico: Tareas


El objetivo de esta etapa es producir una descripcin de la implementacin de la base de datos en memoria secundaria. Esta descripcin incluye las estructuras de almacenamiento y los mtodos de acceso que se utilizarn para conseguir un acceso eficiente a los datos. Tareas: Traducir el esquema lgico global para el SGBD especfico. Disear la representacin fsica. Disear los mecanismos de seguridad. Pruebas de rendimiento. Monitorizar y afinar el sistema.
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Diseo Fsico: Criterios Mejorar el rendimiento


Espacio en memoria y en disco Tiempo de procesador Tiempo de disco Contencin Coste de los procesos auxiliares

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Diseo Fsico: Criterios Escalabilidad


Volumen de usuarios y datos

Disponibilidad / Integridad Facilidad de administracin Integridad Pero


Medios limitados Criterios contrapuestos Prdida de independencia

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Pero adems del diseo fsicos de la BD, en el rendimiento tambin influyen Diseo de los procesos (en C/S) - Separacin entre BD y lgica Restricciones separadas, Vistas, Proc. Almacenados, Disparadores - Conexiones, interaccin y trfico Programacin - Los optimizadores no son perfectos - Optimizacin esttica - Optimizacin dinmica. Estadsticas Plataformas, la red
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Un buen diseo fsico exige conocer bien:

Posibilidades del SGBD Posibilidades de los equipos de almacenamiento (ej: RAID) Interaccin entre el SO y
SGBD Equipos de almacenamiento

Y como los procesos / usuarios utilizan la BD


Perfil de uso
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Diseo Fsico: Prototipos Diseo preventivo: Evaluacin previa


Volmenes, frecuencias, caminos,

Pruebas y prototipos
Esqueletos de los procesos crticos Simulacin de datos y usuarios
Perfil de carga

Herramientas de anlisis de la ejecucin


Planes, trazados y mediciones
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Tuning; por diseo / pro-activo / reactivo


Es mejor prevenir que curar
Control y tuning permanentes

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Optimizacin y ajuste segn Oracle.


Objetivos
Codigo SQL eficiente Reservar recursos apropiados y suficientes (CPU, Memoria , Disco, E/S) Analizar problemas de espera y contencin

Enfoques
Reactivo: resolver problemas que aparecen en produccin Proactivo: disear el sistema teniendo en cuenta el rendimiento

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Almacenamiento de datos

La gestin eficiente del espacio en la base de datos es importante para su rendimiento.

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Jerarqua de almacenamiento en Oracle: Estructuras virtuales


Tablespace

Datafile1
Datafile2

Segmento1
Ext 2 Ext 3

Segmento2
Datafile3

Bloque 1

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Espacio de tablas (Tablespace I)


Es el espacio lgico de almacenamiento de datos (fsicamente en data files) Tipos de tablespaces:
SYSTEM: encargado de almacenar
el diccionario de datos (tablas con informacin sobre la propia BD) cdigos PL/SQL fuentes y compilados, etc.

TEMP: almacena datos temporales ROLLBACK: almacena informacin transaccional DATA: almacena datos de la aplicacin

Posibles estados de un tablespace:


En lnea (on line): a disposicin de las aplicaciones y BDs Desconectado (offline): datos no estn disponibles, aunque lo est la BD

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Espacio de tablas (Tablespace II)


Sintaxis
CREATE [UNDO] TABLESPACE tablespace [DATAFILE datafile [clusula_autoextend] [, datafile2 [clusula_autoextend]]...] [{MINIMUM EXTENT entero [K|M] | BLOCKSIZE entero [K] | {LOGGING | NOLOGGING} | clusula_gestin_extensiones | DEFAULT clusula_almacenamiento | {ONLINE | OFFLINE} | {PERMANENT | TEMPORARY} | clusula_gestin_segmentos }...]

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Espacio de tablas (Tablespace III)


Clusula_autoextend :=
AUTOEXTEND {OFF | ON [NEXT integer [K|M]] [MAXSIZE {UNLIMITED | integer [K|M]}]}

Clusula_almacenamiento
STORAGE({ INITIAL entero [K|M] | NEXT entero [K|M] | MINEXTENTS entero | MAXEXTENTS {entero | UNLIMITED} | PCTINCREASE entero | FREELISTS integer | FREELIST GROUPS entero | OPTIMAL [entero [K|M] | NULL ] | BUFFER_POOL {KEEP | RECYCLE | DEFAULT} }...)

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Espacio de tablas (Tablespace IV)


Clusula_gestin_extensiones
EXTENT MANAGEMENT {DICTIONATY | LOCAL [AUTOALLOCATE | UNIFORM [SIZE integer [K|M]]]}

Clusula_gestin_segmento
SEGMENT SPACE MANAGEMENT {MANUAL|AUTO}

Creacin de TABLESPACE temporal


CREATE TEMPORARY TABLESPACE ...

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Espacio de tablas (Tablespace V)


Ejemplo
CREATE TABLESPACE mitablespace DATAFILE D:\database\ts_1_a.dbf ' SIZE 20M, E:\database\ts_1_b.dbf SIZE 20M EXTENT MANAGEMENT DICTIONARY DEFAULT STORAGE ( INITIAL 3M NEXT 4M PCTINCREASE 50 MINEXTENTS 2 );

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Parmetros de almacenamiento
DBA_TABLESPACES USER_TABLESPACES: (visualizar con select * from user_tablespaces; )

Mtodos de determinar el espacio libre y utilizado. Gestionando las extensiones mediante:


El diccionario de datos: actualizar (update) la entrada correspondiente en el diccionario de datos cada vez que se asigna o libera una extensin a un TABLESPACE El propio TABLESPACE (localmente) mantiene un mapa de bits en cada archivo de datos de los bloques o cjtos de bloques liberados o usados del archivo de datos Oracle actualiza automticamente (update) el mapa de bits

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Uso de Tablespaces
Es conveniente reservar diferentes tablespaces para objetos que tienen caractersticas de almacenamiento y uso diferentes:
Objetos del diccionario de datos (SYSTEM) Segmentos de rollback Segmentos temporales Tablas ndices Objetos grandes

Si es posible deberan estar en diferentes discos para permitir el uso en paralelo


Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Segmentos I
Conjunto de extensiones (conjunto de bloques de datos) dedicadas a un objeto de la BD, y almacenado en un fichero. La cantidad de espacio que utiliza est determinada por sus parmetros de almacenamiento:
al crear el objeto (tabla, ndice, cluster, rollback segment) utiliza los parmetros de almacenamiento predeterminados del TABLESPACE en el que se almacena (se permite posterior modificacin).

Parmetros de almacenamiento del segmento:


INITIAL: tamao inicial de la extensin NEXT: tamao de la siguiente extensin PCTINCREASE: factor de incremento geomtrico para sucesivas extensiones MAXEXTENTS: nmero mximo de extensiones MINEXTENTS: nmero mnimo de extensiones

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Segmentos II
Cuando las extensiones de un segmento ya no pueden contener ms datos el segmento se amplia con nuevas extensiones. As sucesivamente hasta que: no haya ms espacio disponible en los datafiles de las tablespaces (no ampliables automticamente) hasta MAXEXTENTS por segmento (si definido). No haya ms espacio (cuota) para ese usuario en el TABLESPACE El tamao de la siguiente extensin Oracle lo calcula con la siguiente frmula: NEXT*(1+(PCTINCREASE/100)) Ejemplo (next:4Mb y pctincrease:50%): 1 extensin: = INITIAL 2 extensin: = NEXT= 4Mb 3 extensin: = 4MB*(1+50/100) = 4Mb + 2Mb = 6Mb 4 extensin: = 9Mb
NOTA: Cuidado con el tamao del bloque

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Segmentos III
Tipos de segmentos: TABLE, INDEX, ROLLBACK, TEMPORARY,
PARTITION, CLUSTER

Al crear un segmento TABLE:


Al menos una extensin Su espacio no se libera hasta que se elimina Se puede utilizar alter table para modificar el storage. Y el comando move para cambiarlo de tablespace. Clusula PCTFREE para reservar, en el interior de cada bloque de cada extensin, un porcentaje de espacio para actualizaciones datos
Nulos (con valor NULL) Otros valores que impliquen crecimiento del registro
NOTA: Especfico de cada aplicacin

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Segmentos IV
Ejemplo:
CREATE TABLE ejemplo ( cod NUMBER(2), nombre VARCHAR2(14) ) STORAGE (INITIAL 100K NEXT 50K MINEXTENTS 1 MAXEXTENTS 50 PCTINCREASE 5);

SELECT * FROM USER_SEGMENTS;

COMENTARIOS
A partir de la 3 extensin se incrementa un 5% el espacio de la extensin anterior:
52,5 K 52 si el tamao de bloque fuera 2K

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Extensiones
Conjunto de bloques de datos contiguos de un TABLESPACE Cuando se elimina un segmento, sus extensiones se liberan Agrupacin extensiones libres contiguas cuando pctincrease0 SMON (peridicamente o cuando lo necesita) alter tablespace name coalesce;

Asignacin de extensiones libres:


La ms adecuada (suficiente tamao) cercana a los datos
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Tamao de las extensiones Es necesario determinar el tamao de un objeto


Datos iniciales tengan espacio en el segmento Espacio disponible para el crecimiento de los objetos

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Extensiones grandes: pros y contras Pros


Evitan las extensiones dinmicas Pequeas ventajas de rendimiento: bsqueda de tabla completa Lecturas simples contra el mapa de extensiones

Contras
Encontrar espacio libre contiguo Desperdicio de espacio inicialmente

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Bloques I
Unidad de acceso a disco para una BD Oracle (unidad mnima de transferencia de informacin) Su tamao se define al crear la BD. Debe ser mltiplo del tamao de bloque del S.O. del servidor (entre 2Kb y 32 Kb). Parmetro de configuracin (create table / create index ...)
[{PCTFREE integer | PCTUSED integer | INITRANS integer | MAXTRANS integer | clusula_almacemanamiento }...]

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Bloques II
Bloque
Cabecera Bloque
61+(INITRANS*23) si es un bloque tabla 61+(INITRANS*46) si es un bloque ndice o clster (4 * n tablas en cluster) + 4

Overhead

Directorio Tablas en Cluster Directorio Lneas Espacio Libre para puesta al da

(2 * n de lneas en bloque ) Depende del parmetro PCTFREE

Espacio til

PCTFREE PCTUSED

(zona desbordamiento)

3/8/9 + (1) + (10) + [1 + 1(si long>255) + atributo1] + [...]

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Gestin del espacio en bloques: Espacio libre distribuido


PCTFREE: mnimo porcentaje de un bloque de datos que se reserva para actualizaciones de filas
Por defecto 10

PCTUSED: mnimo porcentaje de un bloque que debiera estar ocupado para no admitir ms inserciones.
Por defecto 40

FRELIST: Lista de bloques disponibles para insertar


Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Tipos de datos bsicos en Oracle


Numricos: SMALLINT(20 bytes), INT(20 bytes), DECIMAL(2/20 bytes), NUMBER(2/21 bytes) Alfanumricos CHAR(<2000 bytes), Fechas y tiempo DATE, TIMESTIME
Grupo de BD Avanzadas. UC3M. 2005-06

VARCHAR2(<4000 bytes)

Diseo de Bases de Datos

Administracin de BD

Almacenamiento de tablas en Oracle


Cada fila se almacena en un bloque si tiene espacio suficiente y menos de 256 columnas De otra forma la informacin de la fila se encadena a travs de varios bloques. Cada fila se compone: Cabecera de fila >= 3 bytes Columna de datos Longitud de los datos Datos Cada fila se identica con ROWID
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Encadenamiento y reorganizacin
Los datos de una fila de una tabla pueden ser demasiado grandes para almacenarlos en un nico bloque de datos vaco. Encadenamiento: Oracle almacena los datos de la fila en una cadena de uno o ms bloques de datos (insercin modificacin).

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Encadenamiento y reorganizacin
Una sentencia UPDATE incrementa la cantidad de datos en una fila, de modo que la fila no se puede dejar en el bloque de datos Reorganizacin: Oracle intenta encontrar otro bloque con espacio libre suficiente para mantener la fila entera.
Si el bloque est disponible, Oracle mueve la fila entera al nuevo bloque. Oracle guarda la parte de la fila original de la fila migrada apuntando al nuevo bloque que contiene la fila actual, el ROWID de la fila migrada no cambia. Los ndices no son modificados, as apuntan a la localizacin original de la fila.
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Almacenamiento bsico Para aumentar el al rendimiento en el acceso a los datos se pueden utilizar los siguientes mtodos:
LOBs (Large Binary Objects) Indices Tablas organizadas por ndices Clusters y Hash Clusters

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

ndices: motivacin
Estructuras auxiliares para, bsicamente, mejorar el tiempo de bsqueda
WHERE condicin
Igualdad (una o varias filas) Intervalo Prefijo

Join Integridad referencial Unicidad Orden


ORDER BY, GROUP BY, DISTINCT, ..

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

ndices: tipos Arbol-B+ Es el ms habitual Mapa de bits Indices de palabras (full-text indexing)
Ficheros invertidos

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

ndices multinivel: rboles B+

Hojas encadenadas por orden de la clave

Clave ndice

......
Punteros a las filas

fila pgina
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Indices en Arbol-B+

Bsqueda de un valor

Bsqueda de un rango
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Indices en Arbol-B+ Son flexibles Degeneracin limitada Tiempo de acceso razonable No tiles para pocos valores

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

ndices multidimensionales: Mapas de Bits AND, OR, contadores Para pocos valores (regin, ao, ..) y pocas actualizaciones DW/OLAP
iar ipe ipr ventas B6 B6 B6 B7 . . 3 3 1 1 . . 43 21 21 21 . . 375 100 20 100 . . 1 2 3 4 . n 1234n ipr 21 0111.. 43 1000.. . . . . iar B6 B7 . . 1110. 0001. . .

ipe 1 1100. 3 0011. Grupo de BD Avanzadas. UC3M. 2005-06 . . . .

Diseo de Bases de Datos

Administracin de BD

ndices en Oracle
CREATE [ ] INDEX ndice UNIQUE BITMAP ON tabla (columnasOexpresin) CLUSTER nomcluster TABLESPACE tbesp detallealmacenamiento COMPRESS NOSORT REVERSED Los NULL solo se indexan si es un ndice mapa de bit
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Utilizacin de ndices UNIQUE y no UNIQUE NULLs Coste en espacio Coste en tiempo de actualizacin No definir ndice si:
El SGBD no lo va a utilizar La clave es muy voltil o muy larga
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Tablas organizadas como ndices Contienen datos que son recuperados ms rapidamente que si hubiesen sido almacenados en tablas normales. Es una tabla normal con un ndice en una o ms de sus columnas. ndice y tabla se almacenan juntos:
Tablas que se consultan por la clave primaria con pocas columnas

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Tablas organizadas como ndices Ventajas


Acceso ms rpido a las filas de las tablas ya que estn en el mismo bloque Acceso secuencial y por rangos por la clave primaria o un sufijo Ahorro en espacio: la clave se guarda una sola vez

Desventajas
No usar con filas grandes

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Clusters: motivacin
Grupos de una o ms tablas Las filas se guardan fsicamente juntas porque se usan generalmente juntas Comparten una o ms columnas (clave del cluster)
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Clusters: ventajas En tablas con joins frecuentes o con relacin maestro-detalle Disminuye la E/S de disco Mejora el tiempo de acceso La clave slo se almacena una vez, ahorro de espacio

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Clusters: problemas No usar cuando


Valor clave se modifica a menudo En tablas que se recorren completas a menudo Si las filas que se agrupan juntas
Varian en nmero Superan el tamao de uno o dos bloques

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Hash Clusters en Oracle Similar a los clusters A la clave de cada cluster se le aplica una funcin de dispersin Bueno para consultas con condiciones de igualdad:
Un solo acceso

Desventaja: Ocupa ms espacio


Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Particiones en Oracle
Particin horizontal fsica
Repartir una tabla en espacios/ficheros/discos, Paralelismo, loks, copias y recuperacin,

Particin por: rango, expresin, circular, al azar Particiones de ndices Collocation / Alineacin Inserciones/supresiones masivas
Rpido Indices particionados

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Carga masiva de datos

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Carga masiva de datos: Aplicaciones


Poblacin de una base de datos desde otra
Sistema de ficheros especializado Base de Datos con
diferente esquema o modelo de datos diferente gestor de bases de datos replicacin, distribucin

Almacenes de datos:Aplicaciones de soporte a la decisin para funciones de direccin y estrategia


Carga peridica de grandes cantidades de datos para el anlisis o la consulta de histricos Carga de datos comprados: datos geogrficos
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Carga masiva de datos: Problemas


Diferente esquema
transformacin y carga carga en un esquema provisional y transformacin

No existen/comprueban las mismas restricciones


deshabilitar restricciones y estructuras auxiliares

Requiere demasiado tiempo


evitar los mecanismos de registro (log) de BBDD realizar la carga por unidades ms grandes: bloques

Problemas con la redundancia


Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Insercin de carga directa en ORACLE (direct path)


INSERT /+ append nologging +/ Es ms rpido: Datos se aaden a la tabla, no se reusa el espacio libre Escribe directamente en los ficheros de datos, sin pasar por la cach de buffer No se comprueba la integridad referencial Se puede deshabilitar la escritura de redo/undo logs Se ejecuta como una transaccin atmica Los ndices se actualizan tras la carga Tiene limitaciones importantes
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Herramientas ETL
ETL: Extraccin, Transformacin y Carga (Loading) ORACLE SQL Loader: herramienta bsica: carga y transformacin Import/Export: Traslado de datos entre diferentes instancias de BBDD Oracle Datawarehouse Builder Embarcadero PowerData

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

SQL Loader
Fichero de texto *.ctl Controla la sesin de carga Fuente de datos a cargar y tipo de datos Tablas y columnas destino Transformaciones de datos Define el resto de ficheros Bad : registros que no se ajustan a la descripcin Discard: registros que no se pueden insertar en la BBDD

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Definicin de registros en SQL*Loader


LOAD DATA INFILE * BADFILE test.bad DISCARDFILE test.dsc INSERT INTO TABLE tablename (column1 position (1:2) char column2 position (3:9) integer external column3 position (10:15) integer external column4 position (16:16) char ) BEGINDATA AY3456789111111Y
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Fichero de control de SQL*Loader


LOAD DATA : carga de datos, principio del fichero INTO tablename: tabla donde se cargan datos
N tablas = N INTO : cada fila se procesa N veces

INSERT/ REPLACE / APPEND


INSERT: la tabla debe estar vaca
REPLACE: se borran los datos existentes APPEND: se aaden los datos a la tabla

INFILE : fichero fuente INFILE = C:/midirectorio/mifichero INFILE = * : carga desde el fichero de control con BEGINDATA

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Tipo y caracter de los registros origen


Tipos de registro origen
Flujo: un carcter indica el fin de registro (CR)
Juan, 23, Informtico Pedro, 25, Industrial

Variable: infile fichvar.dat var 1


4Juan5Pedro

Fijo : infile fichvar.dat fix 23


Juan , 23, Informtico Pedro, 25, Industrial

Caracter de los registros: Fsico/Lgico


Los registros fsicos se pueden combinar en uno o varios registros lgicos: concatenate N: N es nmero de registros fsicos reclen N: longitud del registro continueif last=&: el registro lgico continua mientras el ltimo caracter del registro fsico sea &
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Asignacin de columnas
Columna Posicin TipoDatos Delimitador
Columna: nombre de la columna en la tabla Posicin
relativa: POSITION (*) char 30 absoluta:POSITION (1:30) char

Tipo de datos
Integer (n), Smallint, char, (integer|float|decimal) external...

Delimitadores
TERMINATED BY ENCLOSED BY

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Carga directa con SQL Loader


DIRECT=true en el fichero de control Qu pasa con las restricciones?
Se mantienen: NOT NULL, UNIQUE, PK Se desactivan: FK, CHECK, Disparadores

Los ndices se construyen en reas aparte y se actualizan al final NOT NULL: se comprueba para cada registro UNIQUE: se omprueba cuando se reconstruye el ndice, si existen errores INDEX UNUSABLE CLAVES PRIMARIAS (PK) = NOT NULL + UNIQUE CLAVES AJENAS (FK) Y CHECK: no se activan auto. DISPARADORES: Se activan automticamente pero no se disparan durante la carga directa
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Optimizacin de consultas

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Optimizacin de consultas
Objetivo: disminuir el tiempo de ejecucin de las consultas que se realizan ms frecuentemente sobre una base de datos Cul es el camino de acceso a los datos? Modificar el diseo fsico
Aadir redundancia y modificar la organizacin: aadir o cambiar ndices, dividir relaciones, particionar relaciones Reorganizar las estructuras para mantener las caracterstcas a pesar de borrados o actualizaciones
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Procesamiento de consultas
Anlisis de la consulta
representacin rborea de la estructura de la consulta

Reescritura de la consulta
representacin en lgebra relacional transformacin a un plan lgico ms eficiente:

Generacin de un plan fsico de ejecucin


Seleccin de los algoritmos para la ejecucin de cada operacin lgica

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Anlisis de la consulta
Generacin del rbol de la consulta
Comprueba sintcticas de SQL

Preprocesado: Comprobaciones semnticas


Relaciones: las tablas existen en la BD Atributos: estan definidos para las tablas Tipos: los tipos de los atributos usados en las condiciones son compatibles

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Ejemplo de consulta
ACTOR (nombre,direccion,genero,fecha_nacimiento) ACTUA (pelicula, ao_estreno, actor) Obtener los ttulos de las peliculas en las que participan actores nacidos antes en1960
SELECT pelicula SELECT pelicula FROM ACTUA, ACTOR FROM ACTUA WHERE actor = nombre AND WHERE actor IN ( fecha_nacimiento LIKE '%1960' SELECT nombre FROM actor WHERE fecha_nacimiento LIKE '%1960')
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Ejemplo de anlisis de consulta


<consulta> <SFW> SELECT <sel_list> FROM <from_list> WHERE <condition> pelicula <relacion> , <from_list> ACTUA <condition> ACTOR AND <condition>

<atributo> = <atributo> <atributo> LIKE <patron> actor %1960 nombre fecha_nacimiento Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Plan lgico de la consulta


Transformacin del rbol a lgebra relacional Reglas de optimizacin algebraicas
Algunas reglas generales
Conmutatividad / Asociatividad Bajar las selecciones (reduce el nmero de tuplas) Bajar las proyecciones (reduce el tamao) Eliminar subconsultas de las condiciones

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Plan lgico de la consulta


PIpelicula SIGMAnombre = actor
AND fecha_nacimiento LIKE %1960

PIpelicul
a

bajar seleccion

SIGMAnombre = actor

X ACTOR ACTUA PIpelicula JOINnombre = actor ACTOR

X
SIGMAfecha_nacimiento like %1960 ACTUA

ACTOR

SIGMAfecha_nacimiento like %1960 ACTUA

bajar proyecciones

convertir producto y seleccin a una combinacin

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Plan fsico de la consulta


Transformar cada operacin lgica a un algoritmo de recuperacin concreto Los algoritmos pueden ser de tres tipos:
Memoria (si las tablas pueden almacenarse completamente en memoria) De una pasada (cuando las tablas no se pueden almacenar en memoria pero si el resultado) De dos o ms pasadas (cuando ni las tablas ni los resultados se pueden mantener en memoria)
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Algoritmos fsicos
Segn el tipo de la estructura (auxiliar) utilizada
Recorrido total (scan) Basada en ndices (index): ej. join natural Basada en una tabla de dispersin (hash) Basado en ordenacin (sort): algunas operaciones se simplifican si los resultados estn ordenados: ej. agrupacin Es posible realizar en paralelo?

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Tipos de optimizacin
Optimizacin basada en reglas
Heursticas generales basadas en la experiencia del administrador o de los diseadores

Optimizacin badada en costes


Estimacion de los costes de realizar una operacin fisica. Depende:
Tamao de la estructura: estadsticas Tamao de la memoria: depende de los procesos que se ejecuten simultneamente

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Procesamiento de consultas en ORACLE


Almacenamiento de consultas y su plan de ejecucin en memoria Antes de analizar una consulta comprueba que est en memoria:
Comprueba que una consulta es la misma carcter por carcter Qu ocurre con las variables?
pelculas con actores nacidos en 1960 pelculas con actores nacidos en 1977
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Optimizacin de consultas en ORACLE: Herramientas


Optimizacin basada en reglas:
SQL*Expert: Sistema experto para el diseo fsico y la optimizacin

Optimizacin basada en costes


SQL-Analyze (EXPLAIN PLAN)
Planes de ejecucin lgicos/fsicos y depuracin

Recoleccin de estadsticas:
Paquete SQL_STAT : Es necesario contar con estadsticas actualizadas

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

EXPLAIN PLAN
EXPLAIN PLAN FOR SELECT e.employee_id, j.job_title, e.salary, d.department_name FROM employees e, jobs j, departments d WHERE e.employee_id < 103 AND e.job_id = j.job_id AND e.department_id = d.department_id;
----------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| ----------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 3 | 189 | 10 (10)| | 1 | NESTED LOOPS | | 3 | 189 | 10 (10)| | 2 | NESTED LOOPS | | 3 | 141 | 7 (15)| |* 3 | TABLE ACCESS FULL | EMPLOYEES | 3 | 60 | 4 (25)| | 4 | TABLE ACCESS BY INDEX ROWID| JOBS | 19 | 513 | 2 (50)| |* 5 | INDEX UNIQUE SCAN | JOB_ID_PK | 1 | | | | 6 | TABLE ACCESS BY INDEX ROWID | DEPARTMENTS | 27 | 432 | 2 (50)| |* 7 | INDEX UNIQUE SCAN | DEPT_ID_PK | 1 | | | ----------------------------------------------------------------------------------Predicate Information (identified by operation id): --------------------------------------------------3 - filter("E"."EMPLOYEE_ID"<103) 5 - access("E"."JOB_ID"="J"."JOB_ID") 7 - access("E"."DEPARTMENT_ID"="D"."DEPARTMENT_ID")

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

EXPLAIN PLAN
1) Recorrido serial de toda la tabla employees 2) Recorrido del ndice primario de la tabla jobs 3) Aceeso mediante ROWID a las filas obtenidas en 2) 4) Bucle anidado (por bloques) de los resultados 2) y 3) 5) Recorrido del ndice primario de la tabla departament 6) Aceeso mediante ROWID a las filas obtenidas en 5) 7) Bucle anidado (por bloques) de los resultados 4) y 6) 8) Sentencia SELECT que devuelve los resultados al usuario

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Pistas de ejecucin (Hints) en ORACLE


El administrador puede tener una mejor percepcin del problema: puede dar pistas para mejorar el plan de ejecucin fsica SELECT /*+<lista de hints> */ .....
+INDEX +ALL_ROWS +USE_MERGE(merge_sort) +USE_NL (nested loop) +NO_INDEX +FIRST_ROWS

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Tuning: Ajuste de rendimiento


Ajuste de la Base de Datos para un rendimiento ptimo Requiere una perspectiva global del Sistema de Informacin:
Procesos de la empresa Software: SO y SGBD
Uso de memoria y uso del almacenamiento Transacciones y procedimientos de recuperacin Arquitectura de comunicaciones

Hardware
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Proceso de ajuste de rendimiento


Proceso preventivo: diseo detallado de la BBDD
Planificacin de los volumenes de datos Frecuencias de consulta y actualizacin Objetivos de recuperacin y de seguridad Planificacin de polticas de mantenimiento

Realizacin de prototipos y simulaciones Implementacin definitiva y mantenimiento Proceso correctivo: deteccin de problemas y bsqueda de soluciones
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Mantenimiento: Evolucin de la BBDD


Las condiciones de la Base de Datos varan a lo largo del tiempo
Del perfil de uso: aplicaciones nuevas , nuevos canales (web,mvil), etc. De los volmenes: la informacin almacenada en la BBDD crece. Mantener o gestionar los archivos temporales De la tecnologa Momentos singulares: ej. ao nuevo o final de mes. Pueden requerir cambios puntuales en la base de datos.

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Principios de Shasha (ajuste correctivo)


1. Estudio global, accin local 2. Fragmentar para resolver atascos 3. Lo que cuesta es arrancar 4. Dar al servidor lo que es suyo 5. Llegar a compromisos entre costes

Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Ajuste de rendimiento: Proceso


Se suele analizar: 1. Sentencias SQL: uso de los ndices, lectura avanzada 2. Memoria Cach 3. Entrada/Salida: Discos, colas, paralelismo 4. Contencin: Cerrojos y Registros (logs) Se suele intervenir 1. Aplicacin 2. Diseo fsico 3. Prametros de la BBDD: memoria asignada, procesos de escucha, frecuencia de log, etc... 4. Hardware: solucionar problemas, comprar
Grupo de BD Avanzadas. UC3M. 2005-06

Diseo de Bases de Datos

Administracin de BD

Informacin de monitorizacin
Parmetros de inicializacin de la BD Diccionario de datos: Vistas DBA_* Vistas dinmicas de rendimiento: V$_*
Se actualizan con la informacin que la instancia genera durante su ejecucin. Solo tenemos acceso para lectura.

Monitorizacin del sistema operativo ADDM: Automatic Database Diagnostic Monitor Alertas de funcionamiento
Grupo de BD Avanzadas. UC3M. 2005-06

También podría gustarte