Documente Academic
Documente Profesional
Documente Cultură
4.1- Diseo Fsico 4.1.1- Introduccin 4.1.2- Almacenamiento 4.1.3- Tablespaces 4.1.4- Segmentos 4.1.5- Extensiones 4.1.6- Bloques 4.1.7- Almacenamiento de tablas en Oracle 4.1.8- ndices 4.1.9- Clusters 4.1.10- Particiones 4.1.11- Ajuste de rendimiento
1
4.1.14.1.1- Introduccin
Proceso de Diseo de Bases de Datos
Conceptual Lgico Estndar
Em (id, dep, nombre, fecha)
Lgico Especfico
Fsico
Esquema SQL
. 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 . . .
o bien
PK
PK FK
. .
Estructuras fsicas
2
4.1.14.1.1- Introduccin
Diseo Fsico: Motivacin
Hardware+SO+SGBD+ (aplicacin)
Suficiente: en BD para pruebas funcionales, formacin, demos Insuficiente: en BD para pruebas de carga, produccin
4.1.14.1.1- Introduccin
Diseo Fsico: Tareas w
n
w
n n n n
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.
4.1.14.1.1- Introduccin
Diseo Fsico: Criterios
1. Mejorar el rendimiento
n n n n n
Espacio en memoria y en disco Tiempo de procesador Tiempo de disco Contencin Coste de los procesos auxiliares Volumen de usuarios y datos
5
2. Escalabilidad
n
4.1.14.1.1- Introduccin
Diseo Fsico: Criterios
Pero
Medios limitados Criterios contrapuestos Prdida de independencia
4.1.14.1.1- Introduccin
Pero adems del diseo fsico de la BD, en el rendimiento tambin influyen wDiseo de los procesos (en C/S)
n
Conexiones, interaccin y trfico Los optimizadores no son perfectos Optimizacin esttica Optimizacin dinmica. Estadsticas
7
wProgramacin
n n n
wPlataformas, la red
LABDA Tema IV: Administracin de Bases de Datos
4.1.14.1.1- Introduccin
Un buen diseo fsico exige conocer bien: w Posibilidades del SGBD w Posibilidades de los equipos de almacenamiento (Ej.: RAID) w Interaccin entre el SO y
n n
4.1.14.1.1- Introduccin
Diseo Fsico: Prototipos
Volmenes, frecuencias, caminos, Esqueletos de los procesos crticos Simulacin de datos y usuarios
l
w Pruebas y prototipos
n n
4.1.14.1.1- Introduccin
Optimizacin y ajuste segn Oracle
w Objetivos
n n
Cdigo SQL eficiente Reservar recursos apropiados y suficientes (CPU, Memoria, Disco, E/S) Analizar problemas de espera y contencin Reactivo: resolver problemas que aparecen en produccin Proactivo: disear el sistema teniendo en cuenta el rendimiento.
10
w Enfoques
n n
4.1.14.1.1- Introduccin
Arquitectura Oracle Componentes principales
Proceso de usuario
Conj.Compartido Cach biblioteca
SGA
Cach de buffers de base de datos
Instancia
Large Pool Java Pool
PMON
SMON
DBWR
LGWR
CKPT
Otros
Arch. parmetros Archivos de datos (user01.dbf) Archivos de control (ctrl01.ctl) Archivos de Redo Log (log1a.rdo)
Base de Datos
Arch. contrasea
11
4.1.14.1.1- Introduccin
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. Conexin establecida
Proceso de usuario
Proceso de servidor
PGA
12
4.1.14.1.1- Introduccin
Arquitectura Oracle Componentes principales
w Base de datos:
n
Estructuras lgicas: jerarqua formada por tablespaces, extensiones y bloques Estructuras fsicas: archivos de datos que forman los tablespace.
Archivo de datos3
segmentos,
Tablespaces
Extensin
Bloques
13
4.1.14.1.1- Introduccin
Arquitectura Oracle Componentes principales
w Instancias n Conjunto de procesos y estructuras en memoria (SGA) n Proporciona mecanismos de acceso y control de la BD n Los procesos (y parte del almacenamiento principal) son compartidos por todos los usuarios. n Sus parmetros estn en el fichero init.ora, que se lee al arrancarla. w Bases de datos n Conjunto de datos almacenado y accesible segn una estructura lgica de tablas n Se divide en Tablespaces (uno o ms) n Un tablespace consta de ficheros (uno o ms) n Un fichero slo pertenece a un tablespace, y puede contener varios objetos
14
4.1.24.1.2- Almacenamiento
El espacio: Nivel lgico y nivel fsico
El espacio lgico
l l
El espacio fsico
l l
4.1.24.1.2- Almacenamiento
Un tercer nivel: El espacio virtual de almacenamiento
w Visin desde el SGBD n visin simple del espacio fsico, para facilitar el direccionamiento, la independencia, .. n espacios (tablespaces,..) n campos, registros, pginas n particiones n clusters n ndices
LABDA Tema IV: Administracin de Bases de Datos 16
4.1.24.1.2- Almacenamiento
Correspondencia entre los tres niveles
tablas
particiones Cluster de tablas datoslarg ndice datos datos+ ndice
ficheros
17
4.1.24.1.2- Almacenamiento
Jerarqua de almacenamiento en Oracle: Estructuras virtuales
Tablespace
Datafile1
Datafile2
Segmento1
Ext 2 Ext 3
Segmento2
Datafile3
4.1.34.1.3- Tablespaces
w Es el espacio lgico de almacenamiento de datos (fsicamente en data files) w Tipos de tablespaces:
n
el diccionario de datos (tablas con informacin sobre la propia BD) cdigos PL/SQL fuentes y compilados, etc.
n n n
TEMP: almacena datos temporales ROLLBACK: almacena informacin transaccional DATA: almacena datos de la aplicacin En lnea (on line): a disposicin de las aplicaciones y BDs Desconectado (offline): datos no estn disponibles, aunque lo est la BD
19
4.1.34.1.3- Tablespaces
Sintaxis:
20
4.1.34.1.3- Tablespaces
Sintaxis (permanent tablespace):
21
4.1.34.1.3- Tablespaces
Sintaxis (temporal tablespace):
22
4.1.34.1.3- Tablespaces
Sintaxis (undo tablespace):
23
4.1.34.1.3- Tablespaces
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
24
4.1.34.1.3- Tablespaces
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
LABDA Tema IV: Administracin de Bases de Datos 25
4.1.34.1.3- Tablespaces
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
SQL> DROP TABLESPACE prueba INCLUDING CONTENTS and datafiles CASCADE CONSTRAINTS
26
4.1.34.1.3- Tablespaces
w La forma de gestionar las extensiones de los tablespaces pude ser con la tcnica del diccionario, nica forma conocida antes de Oracle 8i. w Con el manejo del diccionario Oracle modifica una serie de tablas en el diccionario de datos en cuanto una extensin es asignada o liberada. Pero tambin almacena la informacin en los segmentos de rollback, actualmente en el undo. Como las tablas del diccionario y los segmentos de rollback son parte de la instancia de base de datos, el espacio que ellos ocupan est sujeto a las mismas operaciones que otros esquemas de otros tablespaces w El manejo local utiliza bitmaps en el propio tablespace. Es el recomendado por Oracle w Un manejo ineficiente de las extensiones hace que se produzcan demoras en la creacin y asignacin de las extensiones
27
4.1.34.1.3- Tablespaces
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
LABDA Tema IV: Administracin de Bases de Datos 28
4.1.34.1.3- Tablespaces
Ejemplo: Borramos el tablespace SQL> DROP TABLESPACE TEMPPRUEBA INCLUDING CONTENTS and datafiles CASCADE CONSTRAINTS
w Los espacios temporales son usados para segmentos temporales, los cuales son creados, manejados y borrados por la Base de Datos. w Estos segmentos temporales son comnmente generados por instrucciones como order by, group by o create index
LABDA Tema IV: Administracin de Bases de Datos 29
4.1.34.1.3- Tablespaces
w El tablespace undo se usa para los segmentos de undo, son parecidos a los segmentos de rollback, recomendado por Oracle su no utilizacin. w Aunque puede haber mas de un tablespace de undo por instancia, slo uno est activo. Los segmentos de undo crecen o disminuyen de acuerdo a las necesidades de las transacciones. w Se utiliza para:
n n n n
Rollback de las transacciones. Lectura consistente. Operaciones de recuperacin de la base de datos. Funcionalidad de Flashback.
30
4.1.34.1.3- Tablespaces
w Parmetros de almacenamiento
n 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 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 Oracle actualiza automticamente (update) el mapa de bits
31
4.1.44.1.4- Segmentos
w Conjunto de extensiones (conjunto de bloques de datos) dedicadas a un objeto de la BD, y almacenado en un fichero w La cantidad de espacio que utiliza est determinada por sus parmetros de almacenamiento:
n n
al crear el objeto (tabla, ndice, cluster, Undo segment) utiliza los parmetros de almacenamiento predeterminados del TABLESPACE en el que se almacena (se permite posterior modificacin)
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
32
4.1.44.1.4- Segmentos
w Oracle asigna a cada tabla una o ms extensiones para formar el segmento de datos de una tabla w Tipos de segmentos:
n
n n
Segmentos de ndices Segmentos de undo: son uno o varios segmentos con informacin para deshacer transacciones Segmentos temporales
33
4.1.44.1.4- Segmentos
w Cuando las extensiones de un segmento ya no pueden contener ms datos el segmento se ampla con nuevas extensiones. As sucesivamente hasta que:
n
n n
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
1 extensin: = INITIAL 2 extensin: = NEXT= 4Mb 3 extensin: = 4MB*(1+50/100) = 4Mb + 2Mb = 6Mb 4 extensin: = 9Mb
4.1.44.1.4- Segmentos
w Tipos de segmentos: TABLE, INDEX, ROLLBACK, TEMPORARY, PARTITION, CLUSTER w Al crear un segmento TABLE:
n n n
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
l l l
Nulos (con valor NULL) Otros valores que impliquen crecimiento del registro NOTA: Especfico de cada aplicacin
35
4.1.44.1.4- Segmentos
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;
w COMENTARIOS
n
36
4.1.44.1.4- Segmentos
w Al crear un segmento INDEX:
n n
Al menos una extensin Su espacio no se libera hasta que se elimina. Pero estos se pueden eliminar automticamente al eliminar las TABLAS o los CLUSTERS a los que indexan. Se aconseja guardar los ndices en diferente TABLESPACE que las tablas, para eliminar contiendas. Se puede utilizar la opcin REBUILD del comando alter index para modificar la configuracin del storage y tablespace de un ndice.
37
4.1.44.1.4- Segmentos
w Al crear un segmento ROLLBACK:
n
n n n
Sus extensiones mantendrn copias temporales de bloques de datos que cambiaron durante alguna transaccin. Al menos DOS extensiones. Todas las extensiones del mismo tamao. Se podr reducir el tamao del segmento dinmica o manualmente hasta un tamao especfico (clusula optimal)
Ejemplo:
CREATE ROLLBACK segment R1 TABLESPACE user40 STORAGE (INITIAL 2M NEXT 2M MINEXTENTS 2 MAXEXTENTS 249 OPTIMAL 20M)
38
4.1.44.1.4- Segmentos
w Al crear un segmento TEMPORARY:
n
Almacenan datos temporales durante las operaciones (p.e.: consultas de gran tamao, creacin de ndices, operaciones de unin, etc.) Cada usuario tiene su tablespace temporal (create user). Habitualmente se crea un tablespace temporal para cada BD y todos sus usuarios.
Select PROPERTY_VALUE from DATABASE_PROPERTIES where PROPERTY_NAME = DEFAULT_TEMP_TABLESPACE
39
4.1.44.1.4- Segmentos
w Otras operaciones:
n
Reduccin tamao de datafiles Reduccin tamao tablas, clusters, ndices (segmentos, etc.) Reconstruir ndices.
40
4.1.54.1.5- Extensiones
w Conjunto de bloques de datos contiguos de un TABLESPACE w Cuando se elimina un segmento, sus extensiones se liberan w Agrupacin extensiones libres contiguas cuando pctincrease? 0
n n
SMON (peridicamente o cuando lo necesita) alter tablespace name coalesce; La ms adecuada (suficiente tamao) cercana a los datos
41
4.1.64.1.6- Bloques
w Unidad de acceso a disco para una BD Oracle (unidad mnima de transferencia de informacin) w Su tamao se define al crear la BD. w Debe ser mltiplo del tamao de bloque del S.O. del servidor (entre 2Kb y 32 Kb). w DB_BLOCK_SIZE: parmetro determina tamao del bloque w Parmetros de configuracin (create table / create index ...)
n
[{PCTFREE integer
| PCTUSED integer | INITRANS integer | MAXTRANS integer | clusula_almacemanamiento }...]
42
4.1.64.1.6- Bloques
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 (2 * n de lneas en bloque) Depende del parmetro PCTFREE PCTFREE: mnimo porcentaje de un bloque que se reserva para actualizaciones de filas. Por defecto 10% del tamao til PCTUSED: mnimo porcentaje de un bloque que debiera estar ocupado para no admitir ms inserciones. Por defecto 40% FREELIST: Lista de bloques disponibles para insertar
Overhead
Directorio Tablas en Cluster Directorio Lneas Espacio Libre para puesta al da (zona desbordamiento)
PCTFREE
Espacio til
PCTUSED
las lneas
43
4.1.64.1.6- Bloques
Ejemplo: Dimensionamiento de la TABLA MUSEO
CAMPO Codigo Nombre Direccion TIPO NUMBER VARCHAR2 VARCHAR2 LONG. MAX TAMAO EFECTIVO PROB. NO NULO
4 10 60
4 10 30
100 90 10
Tamao Cabecera: 61+23*1 = 84 bytes Tamao til = Tamao bloque Tamao Cabecera = 4096-84 = 4014 EspacioPCTFREE = T.til*PCTFREE = 4014*10%=401 bytes EspacioPCTUSED = T.til*PCTUSED = 4014*85%= 3412 bytes EspacioFilaTabla = 3 (Cabecera) + 1(atributo) + 1(atributo largo) + LogMediaFila = 3+3+0+18 = 24
LongMediaFila = SUMA(longMediaColumn) = 2 * 1(DirectorioLneas para 1 lnea) + probNoNulo(Atrib1)*TamaoEfectivo(Atrib1) + ... = 2 + 100%*4 + 90%*10 + 10%30 = 2 + 4 + 9 + 3 = 18
N Filas por Bloque = TRUNC(ExpacioPCTUSED/EspacioFilaTabla) = TRUNC(3412/24) = 142 N Bloques = [N Estimado Tuplas / N Filas por Bloque] = 3000/142 = 22 bloques TamaoTabla = N Bloques*T.tilBloque = 22*4014 = 88308 bytes = 86,24 Kb LABDA Tema IV: Administracin de Bases de Datos 44
4.1.64.1.6- Bloques
Ejemplo: Dimensionamiento de la TABLA MUSEO
w Determinacin del n de bloques necesarios utilizados para todas las filas de una tabla.
n
45
w Los datos de una fila de una tabla pueden ser demasiado grandes para almacenarlos en un nico bloque de datos vaco. w Encadenamiento:
n
Oracle almacena los datos de la fila en una cadena de uno o ms bloques de datos (insercin modificacin)
47
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 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
48
w Para aumentar el al rendimiento en el acceso a los datos se pueden utilizar los siguientes mtodos:
ndices n Tablas organizadas por ndices n Clusters (Agrupamientos) y Hash Clusters (Agrupamiento mediante dispersin)
n
LABDA Tema IV: Administracin de Bases de Datos 49
4.1.84.1.8- ndices
ndices: Motivacin w Estructuras auxiliares para mejorar el tiempo de bsqueda
n
WHERE condicin
l l l
w Reducir el tiempo de las operaciones de combinacin de tablas w Mejorar las consultas que requieren agrupacin u ordenacin
n
50
4.1.84.1.8- ndices
ndices: Tipos
w rbol-B+
n
Es el ms habitual
Ficheros invertidos
w Etc.
LABDA Tema IV: Administracin de Bases de Datos 51
4.1.84.1.8- ndices
ndices multinivel: rboles B +
Hojas encadenadas por orden de la clave
Clave ......
Punteros a las filas
ndice
fila pgina
LABDA Tema IV: Administracin de Bases de Datos 52
4.1.84.1.8- ndices
ndices en rbol-B +
Bsqueda de un valor
Bsqueda de un rango
53
4.1.84.1.8- ndices
ndices en rbol-B +
w Son flexibles w Degeneracin limitada w Tiempo de acceso razonable w No tiles para pocos valores
54
4.1.84.1.8- ndices
ndices en rbol-B +
w Los SGBD no suelen hacer fusin
n n
pero liberan las pginas vacas Nudos intermedios: prefijo discriminador Diferencial / Jerrquica Coste procesador Contencin
w Compresin de ndices
n n n n
w Filas no ordenadas fsicamente n Puede ser ms rpido un barrido que usar el ndice n No confundir estructura con forma de acceso
LABDA Tema IV: Administracin de Bases de Datos 55
4.1.84.1.8- ndices
ndices multidimensionales: Mapas de Bits
w AND, OR, contadores w Para pocos valores (regin, ao, ..) y pocas actualizaciones 1234n w DW/OLAP
iar ipe ipr ventas B6 3 43 375 1 B6 3 21 100 2 B6 1 21 20 3 B7 1 21 100 4 . . . . . . . . . n ipr 21 0111.. 43 1000.. . .. . iar B6 B7 . . ipe 1 3 . .
LABDA Tema IV: Administracin de Bases de Datos
4.1.84.1.8- ndices
ndices Hashing
w No util para Orden, Comparaciones > < w Pero til para Unicidad. Existencia (IR), Join w Algoritmo: Usuario, Interno n Declaracin espacio asignado (degeneracin) n No posible si el num.filas es imprevisible w Factor de carga pequeo w Uno o dos accesos menos que con rbol B+
LABDA Tema IV: Administracin de Bases de Datos 57
4.1.84.1.8- ndices
ndices en Oracle w CREATE [ w ON w w w w UNIQUE ] INDEX ndice BITMAP
4.1.84.1.8- ndices
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 n
4.1.84.1.8- ndices
Tablas organizadas como ndices
w Contienen datos que son recuperados ms rapidamente que si hubiesen sido almacenados en tablas normales. w Es una tabla normal con un ndice en una o ms de sus columnas. w ndice y tabla se almacenan juntos:
n
4.1.84.1.8- ndices
Tablas organizadas como ndices
w Ventajas J
n
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 No usar con filas grandes
61
w Desventajas L
n
LABDA Tema IV: Administracin de Bases de Datos
4.1.94.1.9- Clusters
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
4.1.94.1.9- Clusters
Clusters: Ventajas J
4.1.94.1.9- Clusters
Clusters: Problemas L
w No usar cuando
n n n
Valor clave se modifica a menudo En tablas que se recorren completas a menudo Si las filas que se agrupan juntas
Varian en nmero l Superan el tamao de uno o dos bloques
l
64
4.1.94.1.9- Clusters
Hash Clusters en Oracle
w Similar a los clusters w A la clave de cada cluster se le aplica una funcin de dispersin w J Bueno para consultas con condiciones de igualdad:
n
Un solo acceso
4.1.104.1.10- Particiones
w El particionamiento permite descomponer tablas e ndices en trozos ms pequeos y manejables llamados particiones que son almacenados en segmentos separados w Particin horizontal fsica
n n
w w w w
Particin por: rango, expresin, circular, al azar Particiones de ndices Collocation / Alineacin Inserciones/supresiones masivas
n n
Uso de memoria y uso del almacenamiento Transacciones y procedimientos de recuperacin Arquitectura de comunicaciones
Hardware
67
Problema: el usuario considera que el tiempo de respuesta del sistema es alto Proceso iterativo
Monitorizacin del sistema Diagnstico Bsqueda de la solucin
l l l l l
(Re)diseo apropiado de la aplicacin Optimizacin del cdigo SQL Ajuste de la memoria Ajuste de la E/S Ajuste de los problemas de contencin u otros problemas
68
Panorama global
b) Intervencin minimalista
Mejora del componente causante w ej.: ndices w Repartir la carga w entre componentes w en el tiempo
LABDA Tema IV: Administracin de Bases de Datos 69
Tiempo de disco: 512b = 64Kb Tiempo de mensaje: 1b ~ 1Kb Conexiones con SGBD: pocas y reaprovecharlas ...
Dnde poner cada tarea? accesos a disco vs. procesador espacio vs. tiempo OLTP vs. OLAP ...
70
w Afinacin de la BD
w Bsico: los ndices w Distribucin entre discos y sistemas
72
Hardware n Memoria Discos: Nmero de ejes, Cach en controlador, Niveles de RAID n SSD n CPU SO, SGBD (parmetros)
n
w Tendencia a la automatizacin
n
Wizards/Advisors que aconsejan: n ndices, particiones, vistas materializadas Investigacin en auto-tuning y auto-administracin BD
73
Informacin sobre las operaciones y trfico entre n SGBD, SO , Red Estadsticas mantenidas por el SGBD, sobre.. n estado de la BD (datos y objetos fsicos) n num.filas, espacio, histogramas de valores de las columnas
n n grado de degeneracin (datos e ndice) uso de la BD y los buffers, bloqueos, ndices, ..
74
Anlisis de:
Contencin (esperas), bloqueos, colas .. Fragmentacin y espacio perdido Alertas (scripts para avisar de anomalas) Planes de ejecucin SQL: n explicadores y trazadores n detalle de los pasos de las operaciones y sus tiempos Comunicacin C/S Consumo de recursos por las transacciones Instantneas y su comparacin Tendencias
75
Encadenamientos y desplazamientos Uso del buffer-pool /cach Uso del LOG Uso de I/O (discos..), RAM, CPU Uso de los ndices
LABDA Tema IV: Administracin de Bases de Datos
1. Diccionario de Datos (DBA_) 2. Vistas dinmicas de Rendimiento (V$_) 3. Herramientas de monitorizacin del sistema:
n n
4. Oracle Enterprise Manager (OEM) 5. StatsPack (AWR/ASH en 10g), Index Tuning Wizard, Quest, Embarcadero...
LABDA Tema IV: Administracin de Bases de Datos 76
Usuarios Objetos: Tablas, ndices, paquetes, etc... Roles y Privilegios Almacenamiento (ficheros y tablespaces) Auditoria e informacin operacional (backup, logs...)
w Informacin esttica sobre la BD w Slo lectura (excepto SYS) w Almacenado en System Tablespace
LABDA Tema IV: Administracin de Bases de Datos 77
USER: objetos que posee el usuario ALL: objetos sobre los que se tiene permisos DBA: todos los objetos de la base de datos
Vistas generales (DBMS y DB) Vistas para monitorizacin de usuarios (DBA_USERS) Vistas de auditora (DBA_AUDIT_OBJECT) Vistas para monitorizar transacciones Vistas para almacenamiento Vistas sobre tipos de objetos: tablas, ndices
78
w DBA_EXTENTS: informacin sobre las extensiones que utilizan los objetos w DBA_FREE_SPACE: espacio libre en la BD w DBA_SEGMENTS: informacin detallada sobre los segmentos: tipo, n bloques... w DBA_DATA_FILES/DBA_TEMP_FILES w DBA_TABLESPACES
LABDA Tema IV: Administracin de Bases de Datos 80
w DBA_CONSTRAINTS: restricciones de integridad y tablas sobre la que se aplican w DBA_CONS_COLUMNS: columnas afectadas por las restricciones w DBA_INDEXES: ndices y sus caractersticas w DBA_IND_COLUMNS: columnas que se han indizado w INDEX_STATS: resultados del comando analyze, analiza el rendimiento y caractersticas de los ndices.
LABDA Tema IV: Administracin de Bases de Datos 81
w Se actualizan con la informacin que la instancia genera durante su ejecucin. w Su informacin no est disponible si la instancia no est levantada. w Slo tenemos acceso para lectura. w Comienzan con el prefijo V$.
82
Informacin actual sobre el estado del sistema Ej: V$SESSION: sesiones abiertas en el sistema Cuenta el nmero de veces que un suceso ha ocurrido desde el inicio de la sesin Se debe hacer la diferencia entre el inicio y el fin Ej: V$FILESTAT: Operaciones de I/O Informacin actual pero no tan dinmica: Estadsticas V$SQL_PLAN: Plan de ejecucin para cursores ejecutados recientemente
83
w Vistas acumuladas
n
n n
w Vistas de informacin
n n
84
85
86
w Acceder a los datos en memoria principal es mucho ms rpido que acceder a los datos en disco w Oracle almacena datos en memoria principal: SGA y PGA
n
Se puede consultar el tamao de la SGA en V$SGA Tipo de aplicacin Nmero de usuarios Tamao de las transacciones
87
Cach de biblioteca: cdigo PL/SQL y sentencias SQL recientes Cach de diccionario: Diccionario de datos
alter system
w Contiene versiones analizadas y ejecutables del cdigo SQL y PL/SQL w Interpretacin de SQL
n n n n
Anlisis (Parsing) Optimizacin Ejecucin Recuperacin Si la sentencia esta en cach solo es necesario un anlisis superficial.
89
w Vista dinmicas
n n
V$LIBRARYCACHE: estadsticas de acierto V$LIBRARY_CACHE_MEMORY: espacio libre y objetos en cach V$SHARED_POOL_ADVICE: informacn para el ajuste Uso de variables Compartir cursores: Cursor_sharing=similar Cdigo compartido
90
91
Tablespace Segmento
Extensin
Bloque
Tablespaces gestionados por el diccionario (DMT) n Para la asignacin de espacio se consulta el diccionario n Los cambios se deben reflejar en los segmentos de rollback, etc Tablespaces gestionados localmente (LMT)
l
l l l
n
La informacin de control se guarda en cabeceras en los ficheros de datos. Mejora la eficiencia sobre todo en tablespaces locales Permiten la gestin automtica Opcin por defecto
93
Objetos del diccionario de datos (SYSTEM) Segmentos de rollback, actualmente undo Segmentos temporales Tablas ndices Objetos grandes
Datos iniciales tengan espacio en el segmento Espacio disponible para el crecimiento de los objetos Tamao inicial de la extensin Tamao de la siguiente extensin
l l l
w Pros J
n n
Evitan las extensiones dinmicas Pequeas ventajas de rendimiento: bsqueda de tabla completa Lecturas simples contra el mapa de extensiones Encontrar espacio libre contiguo Desperdicio de espacio inicialmente
96
w Contras L
n n
Desventajas L
Excesiva sobrecarga de informacin de control l Pocas filas por bloque
l
97
Desventajas L
Incrementan la contencin en los bloques hoja de los ndices l Desaprovecha espacio en buffer cach
l
98
La opcin AUTOALLOCATE especifica que las nuevas extensiones se crean dinmicamente. La BD decide el tamao de la extensin La opcin AUTO gestiona el espacio libre dentro de los bloques
99
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 FREELIST: Lista de bloques disponibles para insertar
100
w Encadenamiento: Filas que no caben en un nico bloque w Migracin: Tras una operacin de actualizacin la fila no tiene espacio en el bloque
n n
La fila se mueve a otro bloque La parte de la fila original se mantiene y apunta a la nueva localizacin para evitar la modificacin de los ndices
101
En las operaciones de lectura se leen todos los bloques hasta una marca mxima Los bloques vacos van a FREELIST Es necesario mantener los bloques aunque slo tengan una entrada
102
w Es posible obtener datos sobre el estado de las tablas e ndices para monitorizar y solucionar los problemas de almacenamiento
n n
103
Bibliografa
w w w Database systems : a practical approach to design, implementation and management. Thomas M. Connolly. Addison -Wesley. 2005. Sistemas de bases de datos : un enfoque prctico para diseo, implementacin y gestin. Thomas M. Connolly. Addison -Wesley. 2005. Desarrollo de Bases de Datos: casos prcticos desde el anlisis a la implementacin. Dolores Cuadra, Elena Castro, Ana M. Iglesias, Paloma Martnez, Fco. Javier Calle, Csar de Pablo, Harith Al-Jumaily y Lourdes Moreno. Editorial Ra-Ma. 2007. Database System Implementation. Hctor Garca-Molina, jeffrey D. Ullman and Jeniffer Widom. Prentice Hall. 2000. Physical database design : the database professional's guide to exploiting indexes, views, storage, and more. Sam Lightstone. Morgan Kaufmann/Elsevier. 2007. Database administration : the complete guide to practices and procedures. Craig Mullins. AddisonWesley. 2002. Oracle 10g : administracin y anlisis de bases de datos. Csar Prez. Editorial Ra-Ma. 2005. Database management systems. Raghu Ramakrishnan. McGraw Hill. 2003. Fundamentos de Diseo de Bases de Datos. Abrahan Silberschatz and Henry Korth and S. Sudarshan. McGraw Hill. 2007. 104
w w w w w w