Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema4 2 (Administracion DisenoFisico) PDF
Tema4 2 (Administracion DisenoFisico) PDF
4.1.1-- Introduccin
4.1.1
Proceso de Diseo de Bases de Datos
.
Dep ( ide, desc, pres)
. CREATE TABLE Empleados (
. Id INTEGER PRIMARY
o bien KEY,
Dept CHAR(2)
+
REFERENCES Dept (
PK Id ),
Nombre VARCHAR(50) NOT
NULL,
Fecha_naci DATE NOT
NULL
.
PK );
FK CREATE TABLE . . .
.
.
1
4.1.1-- Introduccin
4.1.1
Diseo Fsico: Motivacin
4.1.1-- Introduccin
4.1.1
Diseo Fsico: Tareas
2
4.1.1-- Introduccin
4.1.1
Diseo Fsico: Criterios
1. Mejorar el rendimiento
n Espacio en memoria y en disco
n Tiempo de procesador
n Tiempo de disco
n Contencin
n Coste de los procesos auxiliares
2. Escalabilidad
n Volumen de usuarios y datos
4.1.1-- Introduccin
4.1.1
Diseo Fsico: Criterios
3. Disponibilidad / Integridad
4. Facilidad de administracin
5. Integridad
w Pero
n Medios limitados
n Criterios contrapuestos
n Prdida de independencia
3
4.1.1-- Introduccin
4.1.1
4.1.1-- Introduccin
4.1.1
4
4.1.1-- Introduccin
4.1.1
Diseo Fsico: Prototipos
4.1.1-- Introduccin
4.1.1
Optimizacin y ajuste segn Oracle
w Objetivos
n Cdigo SQL eficiente
n Reservar recursos apropiados y suficientes (CPU,
Memoria, Disco, E/S)
n Analizar problemas de espera y contencin
w Enfoques
n Reactivo: resolver problemas que aparecen en produccin
n Proactivo: disear el sistema teniendo en cuenta el
rendimiento.
5
4.1.1-- Introduccin
4.1.1
Arquitectura Oracle Componentes principales
Proceso de
usuario SGA
Conj.Compartido Buffer de Redo
Log
Cach
biblioteca Cach de buffers de
base de datos Instancia
Proceso de Cach
diccionario Large Pool
servidor de datos Java Pool
Arch.
parmetros
Archivos de Archivos de Archivos de Base de
datos control Redo Log Datos
(user01.dbf) (ctrl01.ctl) (log1a.rdo)
Arch.
contrasea
4.1.1-- Introduccin
4.1.1
Arquitectura Oracle Componentes principales
w Instancia:
w SGA (rea Global del Sistema): Memoria compartida para almacenar las
informaciones de control y los datos de la instancia.
Contiene Conjunto compartido, Cach de buffers de Base de Datos, Buffer Redo
Log, Large Pool y Java Pool.
w PGA (rea Global de Programas o Proceso): Memoria reservada para cada
proceso de usuario que se conecte a una base de datos. Se asigna cuando se
crea un proceso y se libera cuando se termina un proceso.
6
4.1.1-- Introduccin
4.1.1
Arquitectura Oracle Componentes principales
w Base de datos:
n Estructuras lgicas: jerarqua formada por tablespaces, segmentos,
extensiones y bloques
n Estructuras fsicas: archivos de datos que forman los tablespace.
Archivo de datos1
Bloques
Segmento2 Segmento1 Cabecera
Directorio tabla
Directorio fila
Espacio Libre
Datos
4.1.1-- Introduccin
4.1.1
Arquitectura Oracle Componentes principales
7
4.1.2-- Almacenamiento
4.1.2
El espacio: Nivel lgico y nivel fsico
n El espacio lgico
l visin desde los programas usuarios
l atributos, filas, tablas,
n El espacio fsico
l visin desde el SO
l ficheros del SO y extensiones
4.1.2-- Almacenamiento
4.1.2
Un tercer nivel: El espacio virtual de almacenamiento
direccionamiento, la independencia, ..
n espacios (tablespaces,..)
n particiones
n clusters
n ndices
8
4.1.2-- Almacenamiento
4.1.2
Correspondencia entre los tres niveles
tablas
particiones
Cluster datoslarg
de tablas datos+
ndice datos ndice
ficheros
4.1.2-- Almacenamiento
4.1.2
Jerarqua de almacenamiento en Oracle: Estructuras
virtuales
Tablespace
Datafile1
Datafile2
Segmento1 Segmento2
Datafile3
Ext 2
Ext 3
Bloque 1
9
4.1.3-- Tablespaces
4.1.3
4.1.3-- Tablespaces
4.1.3
Sintaxis:
10
4.1.3-- Tablespaces
4.1.3
4.1.3-- Tablespaces
4.1.3
11
4.1.3-- Tablespaces
4.1.3
4.1.3-- Tablespaces
4.1.3
Sintaxis:
Bigfile o smallfile para grandes o pequeos tablespaces
del orden de teras, el defecto es smallfile y es el que se
utilizaba hasta ahora (como mximo pude tener 32 Gb)
Datafile para datos de la aplicacin.
Tempfile para datos temporales.
En general se debe de tener al menos un tablespace por
esquema y un temporal general, salvo que la aplicacin haga
una utilizacin masiva del temporal, entonces se crea uno para
el esquema oportuno
12
4.1.3-- Tablespaces
4.1.3
Ejemplo:
Creamos el tablespace llamado prueba en la que todos sus
objetos cuando son creados se guardan en redolog. Se guarda en
donde se indica el datafile, con un tamao de 5 Mb, creciendo
de mega en mega hasta 10 Mb como mximo y lo gestiona
Oracle automticamente
CREATE SMALLFILE
TABLESPACE PRUEBA"
LOGGING
DATAFILE 'C:\Path\PRUEBA.ora' SIZE 5M AUTOEXTEND
ON NEXT 1M MAXSIZE 10M EXTENT MANAGEMENT LOCAL SEGMENT
SPACE MANAGEMENT AUTO
4.1.3-- Tablespaces
4.1.3
Ejemplo:
Borra el tablespace, si no tiene objetos no hace falta
including contents y borra el fichero del sistema operativo
(and datafiles). Adems borra todas las restricciones de
clave ajena
13
4.1.3-- Tablespaces
4.1.3
w La forma de gestionar las extensiones de los tablespaces pude ser con la tcnica
del diccionario, nica forma conocida antes de Oracle 8i.
4.1.3-- Tablespaces
4.1.3
Ejemplo:
Creamos el tablespace temporal llamado TEMPPRUEBA. Se guarda en
donde se indica el tempfile, con un tamao de 2 Mb, creciendo en 640 Kb. el
fichero hasta 32 Mb como mximo. Oracle gestiona automticamente las
extensiones de 1024 en 1024 Kb.
CREATE SMALLFILE
TEMPORARY TABLESPACE "TEMPPRUEBA" TEMPFILE
'C:\path\TEMPPRUEBA1.ora' SIZE 2M REUSE
AUTOEXTEND
ON NEXT 640K MAXSIZE 32767M EXTENT MANAGEMENT
LOCAL UNIFORM
SIZE 1024K
14
4.1.3-- Tablespaces
4.1.3
Ejemplo:
Borramos el tablespace
4.1.3-- Tablespaces
4.1.3
w Se utiliza para:
n Rollback de las transacciones.
n Lectura consistente.
n Operaciones de recuperacin de la base de datos.
n Funcionalidad de Flashback.
15
4.1.3-- Tablespaces
4.1.3
w Parmetros de almacenamiento
n DBA_TABLESPACES
n USER_TABLESPACES: (visualizar con select * from user_tablespaces; )
w Mtodos de determinar el espacio libre y utilizado: Gestionando las
extensiones mediante:
n 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
n El propio TABLESPACE (localmente) mantiene un mapa de bits en cada
archivo de datos de los bloques o conjuntos de bloques liberados o usados del
archivo de datos
n Oracle actualiza automticamente (update) el mapa de bits
4.1.4-- Segmentos
4.1.4
16
4.1.4-- Segmentos
4.1.4
w Tipos de segmentos:
n Segmentos de datos: conjunto de extensiones asignadas a
una tabla.
l No puede haber extensiones de otras tablas en un segmento
dedicado a una tabla.
n Segmentos de ndices
n Segmentos de undo: son uno o varios segmentos con
informacin para deshacer transacciones
n Segmentos temporales
LABDA Tema IV: Administracin de Bases de Datos 33
4.1.4-- Segmentos
4.1.4
17
4.1.4-- Segmentos
4.1.4
4.1.4-- Segmentos
4.1.4
Ejemplo:
CREATE TABLE ejemplo (
cod NUMBER(2),
nombre VARCHAR2(14) )
STORAGE (INITIAL 100K NEXT 50K MINEXTENTS 1 MAXEXTENTS 50
PCTINCREASE 5);
w COMENTARIOS
n A partir de la 3 extensin se incrementa un 5% el espacio de la extensin anterior:
l 52,5 K 52 si el tamao de bloque fuera 2K
18
4.1.4-- Segmentos
4.1.4
4.1.4-- Segmentos
4.1.4
Ejemplo:
CREATE ROLLBACK segment R1
TABLESPACE user40
STORAGE (INITIAL 2M NEXT 2M MINEXTENTS 2 MAXEXTENTS 249
OPTIMAL 20M)
19
4.1.4-- Segmentos
4.1.4
4.1.4-- Segmentos
4.1.4
w Otras operaciones:
n Desasignar espacio de los segmentos
l Reduccin tamao de datafiles
l Reduccin tamao tablas, clusters, ndices (segmentos, etc.)
l Reconstruir ndices.
20
4.1.5-- Extensiones
4.1.5
4.1.6-- Bloques
4.1.6
21
4.1.6-- Bloques
4.1.6
Bloque
Cabecera Bloque 61+(INITRANS*23) si es un bloque tabla
61+(INITRANS*46) si es un bloque ndice o clster
Overhead Directorio Tablas (4 * n tablas en cluster) + 4
en Cluster
PCTFREE: mnimo porcentaje de un
Directorio Lneas (2 * n de lneas en bloque) bloque que se reserva para
actualizaciones de filas. Por defecto
Espacio Libre para
puesta al da Depende del parmetro 10% del tamao til
PCTFREE PCTUSED: mnimo porcentaje de un
(zona bloque que debiera estar ocupado para
desbordamiento)
PCTFREE no admitir ms inserciones. Por
Espacio defecto 40%
til FREELIST: Lista de bloques
PCTUSED
disponibles para insertar
4.1.6-- Bloques
4.1.6
Ejemplo: Dimensionamiento de la TABLA MUSEO
CAMPO TIPO LONG. TAMAO PROB. NO N estimado TUPLAS: 3000
MAX EFECTIVO NULO
INITRANS = 1
Codigo NUMBER 4 4 100 MAXTRANS = 20
Nombre VARCHAR2 10 10 90 Tamao Bloque = 4 Kb
PCTFREE=10
Direccion VARCHAR2 60 30 10 PCTUSED=85
22
4.1.6-- Bloques
4.1.6
Ejemplo: Dimensionamiento de la TABLA MUSEO
23
4.1.7-- Almacenamiento de tablas en
4.1.7
Oracle
Encadenamiento y reorganizacin
w Encadenamiento:
n Oracle almacena los datos de la fila en una cadena
de uno o ms bloques de datos (insercin
modificacin)
w Reorganizacin:
n Si 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 entonces debe reorganizar:
l Oracle intenta encontrar otro bloque con espacio libre suficiente
para mantener la fila entera
l Si el bloque est disponible, Oracle mueve la fila entera al nuevo
bloque
l 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
LABDA Tema IV: Administracin de Bases de Datos 48
24
4.1.7-- Almacenamiento de tablas en
4.1.7
Oracle
Almacenamiento bsico
4.1.8-- ndices
4.1.8
ndices: Motivacin
25
4.1.8-- ndices
4.1.8
ndices: Tipos
w rbol-B+
n Es el ms habitual
w Mapa de bits
w Hashing
w ndices de palabras (full-text indexing)
n Ficheros invertidos
w Etc.
4.1.8-- ndices
4.1.8
ndices multinivel: rboles B +
Hojas Clave
encadenadas por
orden de la clave
...... ndice
fila
pgina
LABDA Tema IV: Administracin de Bases de Datos 52
26
4.1.8-- ndices
4.1.8
ndices en rbol-B +
Bsqueda de un valor
Bsqueda de un rango
4.1.8-- ndices
4.1.8
ndices en rbol-B +
w Son flexibles
w Degeneracin limitada
w Tiempo de acceso razonable
w No tiles para pocos valores
27
4.1.8-- ndices
4.1.8
ndices en rbol-B +
4.1.8-- ndices
4.1.8
ndices multidimensionales: Mapas de Bits
28
4.1.8-- ndices
4.1.8
ndices Hashing
4.1.8-- ndices
4.1.8
ndices en Oracle
29
4.1.8-- ndices
4.1.8
Utilizacin de ndices
w UNIQUE y no UNIQUE
w NULLs
w Coste en espacio
w Coste en tiempo de actualizacin
w No definir ndice si:
n El SGBD no lo va a utilizar
n La clave es muy voltil o muy larga
4.1.8-- ndices
4.1.8
Tablas organizadas como ndices
30
4.1.8-- ndices
4.1.8
Tablas organizadas como ndices
w Ventajas J
n Acceso ms rpido a las filas de las tablas ya que
estn en el mismo bloque
n Acceso secuencial y por rangos por la clave
primaria o un sufijo
n Ahorro en espacio: la clave se guarda una sola vez
w Desventajas L
n No usar con filas grandes
LABDA Tema IV: Administracin de Bases de Datos 61
4.1.9-- Clusters
4.1.9
Clusters: Motivacin
w Grupos de una o
ms tablas
w Las filas se guardan
fsicamente juntas
porque se usan
generalmente juntas
w Comparten una o
ms columnas
(clave del cluster)
LABDA Tema IV: Administracin de Bases de Datos 62
31
4.1.9-- Clusters
4.1.9
Clusters: Ventajas J
4.1.9-- Clusters
4.1.9
Clusters: Problemas L
w No usar cuando
n Valor clave se modifica a menudo
n En tablas que se recorren completas a menudo
n Si las filas que se agrupan juntas
l Varian en nmero
l Superan el tamao de uno o dos bloques
32
4.1.9-- Clusters
4.1.9
Hash Clusters en Oracle
4.1.10-- Particiones
4.1.10
33
4.1.11-- Ajuste de rendimiento
4.1.11
Tuning: Motivacin
34
4.1.11-- Ajuste de rendimiento
4.1.11
Principios de Shasha
35
4.1.11-- Ajuste de rendimiento
4.1.11
Objetivo
w Regeneracin
w Espacio
w Contigidad
w Estadsticas ANALYZE, RUN STATISTICS,...
n Contencin (esperas) / Bloqueos
w Afinacin de la BD
w Bsico: los ndices
w Distribucin entre discos y sistemas
36
4.1.11-- Ajuste de rendimiento
4.1.11
Objetivo
w Afinacin de la plataforma
n Hardware
n Memoria
37
4.1.11-- Ajuste de rendimiento
4.1.11
Herramientas
n Anlisis de:
Contencin (esperas), bloqueos, colas Alertas (scripts para avisar de
.. anomalas)
Fragmentacin y espacio perdido Planes de ejecucin SQL:
n explicadores y trazadores
38
4.1.11-- Ajuste de rendimiento
4.1.11
Diccionario de datos
39
4.1.11-- Ajuste de rendimiento
4.1.11
Vistas generales
w Dict (dictionary): vista con los nombres de todas las tablas del diccionario
de datos y sus descripciones.
w GLOBAL_NAME : nombre global de la BD
w PRODUCT_COMPONENT_VERSION: versin de los componentes
principales
w DBA_CATALOG: tablas, vistas, sinnimos y secuencias en la BD
w DBA_REGISTRY: componentes instalados de Oracle
w NLS_DATABASE_PARAMETERS,
NLS_INSTANCE_PARAMETERS, NLS_SESSION_PARAMETERS:
parmetros de localizacin.
w DBA_SOURCE: cdigo fuente de los objetos
w DBA_JOBS: monitoriza la definicin de procesos en background (jobs)
w DBA_OBJECT: objetos de la BD como tablas, ndices, paquetes,
procedimientos, funciones, dimensiones, vistas materializadas, planes de
recursos, tipos, secuencias, sinnimos, disparadores, vistas y particiones
40
4.1.11-- Ajuste de rendimiento
4.1.11
Vistas relacionadas con los ndices y restricciones
41
4.1.11-- Ajuste de rendimiento
4.1.11
Vistas dinmicas
w Vistas actuales
n Informacin actual sobre el estado del sistema
n Ej: V$SESSION: sesiones abiertas en el sistema
w Vistas acumuladas
n Cuenta el nmero de veces que un suceso ha ocurrido desde el inicio
de la sesin
n Se debe hacer la diferencia entre el inicio y el fin
n Ej: V$FILESTAT: Operaciones de I/O
w Vistas de informacin
n Informacin actual pero no tan dinmica: Estadsticas
n V$SQL_PLAN: Plan de ejecucin para cursores ejecutados
recientemente
w Estadsticas de
Rendimiento
42
4.1.11-- Ajuste de rendimiento
4.1.11
Oracle Enterprise Manager
w Opciones de
Administracin
w Opciones de Mantenimiento
43
4.1.11-- Ajuste de rendimiento
4.1.11
Ajuste de la memoria de la instancia
44
4.1.11-- Ajuste de rendimiento
4.1.11
SGA: Cach de Biblioteca
w Vista dinmicas
n V$LIBRARYCACHE: estadsticas de acierto
n V$LIBRARY_CACHE_MEMORY: espacio libre y
objetos en cach
n V$SHARED_POOL_ADVICE: informacn para el ajuste
w Algunos consejos para mejorar la eficiencia
n Uso de variables
n Compartir cursores: Cursor_sharing=similar
n Cdigo compartido
45
4.1.11-- Ajuste de rendimiento
4.1.11
Diseo fsico y Gestin del espacio
w Los objetos de la BD
Tablespace pueden crecer y
Segmento necesitar ms espacio
fsico
w Cada estructura se
Extensin
guarda en un
Tablespace, en su
propio segmento
Bloque w Cuando crece se asignan
nuevas extensiones (cto.
de bloques)
46
4.1.11-- Ajuste de rendimiento
4.1.11
Gestin del espacio
47
4.1.11-- Ajuste de rendimiento
4.1.11
Tamao de las extensiones
w Pros J
n Evitan las extensiones dinmicas
n Pequeas ventajas de rendimiento: bsqueda de
tabla completa
n Lecturas simples contra el mapa de extensiones
w Contras L
n Encontrar espacio libre contiguo
n Desperdicio de espacio inicialmente
LABDA Tema IV: Administracin de Bases de Datos 96
48
4.1.11-- Ajuste de rendimiento
4.1.11
Tamao del bloque: pequeo
n Desventajas L
l Excesiva sobrecarga de informacin de control
l Pocas filas por bloque
l Menor sobrecarga
l Acceso secuencial
l Filas grandes
l Lectura secuencial de ndices
n Desventajas L
l Incrementan la contencin en los bloques hoja de los
ndices
l Desaprovecha espacio en buffer cach
49
4.1.11-- Ajuste de rendimiento
4.1.11
Gestin automtica del espacio
50
4.1.11-- Ajuste de rendimiento
4.1.11
Problemas en bloques
51
4.1.11-- Ajuste de rendimiento
4.1.11
Estadsticas de almacenamiento
Bibliografa
52