Está en la página 1de 52

Tema IV:

IV: Administracin de Bases


de Datos
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

4.1.1-- Introduccin
4.1.1
Proceso de Diseo de Bases de Datos

Lgico Lgico Fsico


Conceptual
Estndar Especfico

Em (id, dep, nombre, Esquema


SQL
fecha)

.
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 . . .
.
.

Diseo fsico = Estructuras lgicas Estructuras fsicas


LABDA Tema IV: Administracin de Bases de Datos 2

1
4.1.1-- Introduccin
4.1.1
Diseo Fsico: Motivacin

w Buscamos implementacin suficientemente


eficiente, en una plataforma concreta
n Hardware+SO+SGBD+ (aplicacin)

w La implementacin implcita (probablemente) es


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

LABDA Tema IV: Administracin de Bases de Datos 3

4.1.1-- Introduccin
4.1.1
Diseo Fsico: Tareas

w Objetivo de esta etapa:


n 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.
w Tareas:
n Traducir el esquema lgico global para el SGBD especfico.
n Disear la representacin fsica.
n Disear los mecanismos de seguridad.
n Pruebas de rendimiento. Monitorizar y afinar el sistema.

LABDA Tema IV: Administracin de Bases de Datos 4

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

LABDA Tema IV: Administracin de Bases de Datos 5

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

LABDA Tema IV: Administracin de Bases de Datos 6

3
4.1.1-- Introduccin
4.1.1

Pero adems del diseo fsico de la BD, en el rendimiento


tambin influyen
wDiseo de los procesos (en C/S)
n Separacin entre BD y lgica
l Restricciones separadas, Vistas, Proc. Almacenados, Disparadores
n Conexiones, interaccin y trfico
wProgramacin
n Los optimizadores no son perfectos
n Optimizacin esttica
n Optimizacin dinmica. Estadsticas
wPlataformas, la red
LABDA Tema IV: Administracin de Bases de Datos 7

4.1.1-- Introduccin
4.1.1

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 SGBD
n Equipos de almacenamiento
w Y cmo los procesos / usuarios utilizan la BD
n Perfil de uso
LABDA Tema IV: Administracin de Bases de Datos 8

4
4.1.1-- Introduccin
4.1.1
Diseo Fsico: Prototipos

w Diseo preventivo: Evaluacin previa


n Volmenes, frecuencias, caminos,
w Pruebas y prototipos
n Esqueletos de los procesos crticos
n Simulacin de datos y usuarios
l Perfil de carga
n Herramientas de anlisis de la ejecucin
l Planes, trazados y mediciones
LABDA Tema IV: Administracin de Bases de Datos 9

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.

LABDA Tema IV: Administracin de Bases de Datos 10

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

PGA PMON SMON DBWR LGWR CKPT Otros

Arch.
parmetros
Archivos de Archivos de Archivos de Base de
datos control Redo Log Datos
(user01.dbf) (ctrl01.ctl) (log1a.rdo)
Arch.
contrasea

LABDA Tema IV: Administracin de Bases de Datos 11

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.

Conexin establecida Sesin creada


Proceso de Oracle Server
Proceso de servidor
usuario
PGA

LABDA Tema IV: Administracin de Bases de Datos 12

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 datos3 Tablespaces Extensin


Archivo de datos2

Archivo de datos1

Bloques
Segmento2 Segmento1 Cabecera
Directorio tabla
Directorio fila
Espacio Libre

Datos

LABDA Tema IV: Administracin de Bases de Datos 13

4.1.1-- Introduccin
4.1.1
Arquitectura Oracle Componentes principales

w Instancias w Bases de datos


n Conjunto de procesos y n Conjunto de datos
estructuras en memoria almacenado y accesible
(SGA) segn una estructura
n Proporciona mecanismos lgica de tablas
de acceso y control de la n Se divide en Tablespaces
BD (uno o ms)
n Los procesos (y parte del n Un tablespace consta de
almacenamiento principal) ficheros (uno o ms)
son compartidos por todos n Un fichero slo pertenece
los usuarios. a un tablespace, y puede
n Sus parmetros estn en el contener varios objetos
fichero init.ora, que se lee
al arrancarla.
LABDA Tema IV: Administracin de Bases de Datos 14

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

LABDA Tema IV: Administracin de Bases de Datos 15

4.1.2-- Almacenamiento
4.1.2
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

8
4.1.2-- Almacenamiento
4.1.2
Correspondencia entre los tres niveles

tablas

particiones
Cluster datoslarg
de tablas datos+
ndice datos ndice

ficheros

LABDA Tema IV: Administracin de Bases de Datos 17

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

LABDA Tema IV: Administracin de Bases de Datos 18

9
4.1.3-- Tablespaces
4.1.3

w Es el espacio lgico de almacenamiento de datos (fsicamente en data files)


w Tipos de tablespaces:
n SYSTEM: encargado de almacenar
l el diccionario de datos (tablas con informacin sobre la propia BD)
l cdigos PL/SQL fuentes y compilados, etc.
n TEMP: almacena datos temporales
n ROLLBACK: almacena informacin transaccional
n DATA: almacena datos de la aplicacin
w Posibles estados de un tablespace:
n En lnea (on line): a disposicin de las aplicaciones y BDs
n Desconectado (offline): datos no estn disponibles, aunque lo est la BD

LABDA Tema IV: Administracin de Bases de Datos 19

4.1.3-- Tablespaces
4.1.3

Sintaxis:

LABDA Tema IV: Administracin de Bases de Datos 20

10
4.1.3-- Tablespaces
4.1.3

Sintaxis (permanent tablespace):

LABDA Tema IV: Administracin de Bases de Datos 21

4.1.3-- Tablespaces
4.1.3

Sintaxis (temporal tablespace):

LABDA Tema IV: Administracin de Bases de Datos 22

11
4.1.3-- Tablespaces
4.1.3

Sintaxis (undo tablespace):

LABDA Tema IV: Administracin de Bases de Datos 23

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

LABDA Tema IV: Administracin de Bases de Datos 24

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

LABDA Tema IV: Administracin de Bases de Datos 25

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

SQL> DROP TABLESPACE prueba


INCLUDING CONTENTS and datafiles
CASCADE CONSTRAINTS

LABDA Tema IV: Administracin de Bases de Datos 26

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.

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

LABDA Tema IV: Administracin de Bases de Datos 27

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

LABDA Tema IV: Administracin de Bases de Datos 28

14
4.1.3-- Tablespaces
4.1.3

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.3-- Tablespaces
4.1.3

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 Rollback de las transacciones.
n Lectura consistente.
n Operaciones de recuperacin de la base de datos.
n Funcionalidad de Flashback.

LABDA Tema IV: Administracin de Bases de Datos 30

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

LABDA Tema IV: Administracin de Bases de Datos 31

4.1.4-- Segmentos
4.1.4

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 al crear el objeto (tabla, ndice, cluster, Undo segment)
n utiliza los parmetros de almacenamiento predeterminados del TABLESPACE
en el que se almacena (se permite posterior modificacin)

w Parmetros de almacenamiento del segmento:


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

LABDA Tema IV: Administracin de Bases de Datos 32

16
4.1.4-- Segmentos
4.1.4

w Oracle asigna a cada tabla una o ms extensiones para


formar el segmento de datos de una tabla

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

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 no haya ms espacio disponible en los datafiles de las tablespaces (no ampliables
automticamente)
n hasta MAXEXTENTS por segmento (si definido).
n no haya ms espacio (cuota) para ese usuario en el TABLESPACE

w El tamao de la siguiente extensin Oracle lo calcula con la siguiente frmula:


n NEXT*(1+(PCTINCREASE/100))
n Ejemplo (next:4Mb y pctincrease:50%):
l 1 extensin: = INITIAL
l 2 extensin: = NEXT= 4Mb
l 3 extensin: = 4MB*(1+50/100) = 4Mb + 2Mb = 6Mb
l 4 extensin: = 9Mb
n NOTA: Cuidado con el tamao del bloque
LABDA Tema IV: Administracin de Bases de Datos 34

17
4.1.4-- Segmentos
4.1.4

w Tipos de segmentos: TABLE, INDEX, ROLLBACK,


TEMPORARY, PARTITION, CLUSTER

w Al crear un segmento TABLE:


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

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);

SELECT * FROM USER_SEGMENTS;

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

LABDA Tema IV: Administracin de Bases de Datos 36

18
4.1.4-- Segmentos
4.1.4

w Al crear un segmento INDEX:


n Al menos una extensin
n 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.
n Se aconseja guardar los ndices en diferente TABLESPACE que las
tablas, para eliminar contiendas.
n Se puede utilizar la opcin REBUILD del comando alter index
para modificar la configuracin del storage y tablespace de un ndice.

LABDA Tema IV: Administracin de Bases de Datos 37

4.1.4-- Segmentos
4.1.4

w Al crear un segmento ROLLBACK:


n Sus extensiones mantendrn copias temporales de bloques de datos que
cambiaron durante alguna transaccin.
n Al menos DOS extensiones.
n Todas las extensiones del mismo tamao.
n 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)

LABDA Tema IV: Administracin de Bases de Datos 38

19
4.1.4-- Segmentos
4.1.4

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.)
n 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
n Se pueden crear nuevos tablespaces temporales:
Create temporary tablespace
Alter tablespace AAAA temporary; alter tablespace AAAA
permanent;
n Ver el estado del tablespace
Select CONTENT from DBA_TABLESPACES where
TABLESPACE_NAME=AAAA

LABDA Tema IV: Administracin de Bases de Datos 39

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.

LABDA Tema IV: Administracin de Bases de Datos 40

20
4.1.5-- Extensiones
4.1.5

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 SMON (peridicamente o cuando lo necesita)
n alter tablespace name coalesce;
w Asignacin de extensiones libres:
n La ms adecuada (suficiente tamao) cercana a los datos

LABDA Tema IV: Administracin de Bases de Datos 41

4.1.6-- Bloques
4.1.6

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
}...]

LABDA Tema IV: Administracin de Bases de Datos 42

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

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

LABDA Tema IV: Administracin de Bases de Datos 43

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

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

22
4.1.6-- Bloques
4.1.6
Ejemplo: Dimensionamiento de la TABLA MUSEO

w Determinacin del n de bloques necesarios


utilizados para todas las filas de una tabla.
n Consultado la columna ROWID
l Selecciona el nmero de fila y nmero de bloque
utilizado para esa fila
l Los ltimos tres caracteres de la cabecera del bloque
indica el nmero de fila dentro del bloque (16-18)
SELECT COUNT(DISTINCT SUBSTR(ROWID,1,16))
FROM museo;

LABDA Tema IV: Administracin de Bases de Datos 45

4.1.7-- Almacenamiento de tablas en


4.1.7
Oracle

w Cada fila se almacena en un


bloque si tiene espacio suficiente
y menos de 256 columnas
w De otra forma la informacin de
la fila se encadena a travs de
varios bloques.
w Cada fila se compone:
n Cabecera de fila >= 3 bytes
n Columna de datos
l Longitud de los datos
l Datos
w Cada fila se identifica con
ROWID
LABDA Tema IV: Administracin de Bases de Datos 46

23
4.1.7-- Almacenamiento de tablas en
4.1.7
Oracle
Encadenamiento y reorganizacin

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)

LABDA Tema IV: Administracin de Bases de Datos 47

4.1.7-- Almacenamiento de tablas en


4.1.7
Oracle
Encadenamiento y reorganizacin

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

w Para aumentar el al rendimiento en el


acceso a los datos se pueden utilizar los
siguientes mtodos:
n ndices
n Tablas organizadas por ndices

n Clusters (Agrupamientos) y Hash Clusters

(Agrupamiento mediante dispersin)


LABDA Tema IV: Administracin de Bases de Datos 49

4.1.8-- ndices
4.1.8
ndices: Motivacin

w Estructuras auxiliares para mejorar el tiempo de bsqueda


n WHERE condicin
l Igualdad (una o varias filas)
l Intervalo
l Prefijo
w Reducir el tiempo de las operaciones de combinacin de tablas
w Mejorar las consultas que requieren agrupacin u ordenacin
n ORDER BY, GROUP BY, DISTINCT, ..
w Facilitar la implementacin de restricciones
n Integridad referencial
n Unicidad

LABDA Tema IV: Administracin de Bases de Datos 50

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.

LABDA Tema IV: Administracin de Bases de Datos 51

4.1.8-- ndices
4.1.8
ndices multinivel: rboles B +

Hojas Clave
encadenadas por
orden de la clave
...... ndice

Punteros a las filas

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

LABDA Tema IV: Administracin de Bases de Datos 53

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

LABDA Tema IV: Administracin de Bases de Datos 54

27
4.1.8-- ndices
4.1.8
ndices en rbol-B +

w Los SGBD no suelen hacer fusin


n para ahorrarse trabajo... posiblemente intil
n pero liberan las pginas vacas
w Compresin de ndices
n Nudos intermedios: prefijo discriminador
n Diferencial / Jerrquica
n Coste procesador
n Contencin
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.8-- ndices
4.1.8
ndices multidimensionales: Mapas de Bits

w AND, OR, contadores


w Para pocos valores (regin, ao, ..) y pocas
actualizaciones
w DW/OLAP 1234n
iar ipe ipr ventas ipr 21 0111..
B6 3 43 375 1 43
.. 1000..
..
B6 3 21 100 2
B6 1 21 20 3 iar B6 1110.
B7 1 21 100 4 B7 0001.
. . . . . .. ..
. . . . n
ipe 1 1100.
3. 0011.
..
.

LABDA Tema IV: Administracin de Bases de Datos 56

28
4.1.8-- ndices
4.1.8
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.8-- ndices
4.1.8
ndices en Oracle

w CREATE [ UNIQUE ] INDEX ndice


BITMAP
tabla (columnasOexpresin)
w ON
CLUSTER nomcluster

w TABLESPACE tablespace detalle almacenamiento


w COMPRESS
w NOSORT
w REVERSED

w Los NULL slo se indexan si es un ndice mapa de bit


LABDA Tema IV: Administracin de Bases de Datos 58

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

LABDA Tema IV: Administracin de Bases de Datos 59

4.1.8-- ndices
4.1.8
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 Tablas que se consultan por la clave primaria con
pocas columnas
LABDA Tema IV: Administracin de Bases de Datos 60

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

w En tablas con joins frecuentes o con relacin


maestro-detalle
n Disminuye la E/S de disco
n Mejora el tiempo de acceso

w La clave slo se almacena una vez, ahorro de


espacio

LABDA Tema IV: Administracin de Bases de Datos 63

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

LABDA Tema IV: Administracin de Bases de Datos 64

32
4.1.9-- Clusters
4.1.9
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
w L Desventaja: Ocupa ms espacio

LABDA Tema IV: Administracin de Bases de Datos 65

4.1.10-- Particiones
4.1.10

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 Repartir una tabla en espacios/ficheros/discos,
n Paralelismo, bloqueos (locks), copias y recuperacin,
w Particin por: rango, expresin, circular, al azar
w Particiones de ndices
w Collocation / Alineacin
w Inserciones/supresiones masivas
n Rpido
n ndices particionados
LABDA Tema IV: Administracin de Bases de Datos 66

33
4.1.11-- Ajuste de rendimiento
4.1.11
Tuning: Motivacin

w Ajuste de la Base de Datos para un rendimiento ptimo


w Requiere una perspectiva global del Sistema de Informacin:
n Procesos de la empresa
n Software: SO y SGBD
l Uso de memoria y uso del almacenamiento
l Transacciones y procedimientos de recuperacin
l Arquitectura de comunicaciones
n Hardware
w Cuando hay problemas o se prevn, o peridicamente ....
w Mediciones/estadsticas
w Elegir puntos a mejorar
w Aplicar mejoras una a una e ir comprobando su efecto

LABDA Tema IV: Administracin de Bases de Datos 67

4.1.11-- Ajuste de rendimiento


4.1.11
Proceso

w Problema: el usuario considera que el tiempo de respuesta


del sistema es alto
w Proceso iterativo
1. Monitorizacin del sistema
2. Diagnstico
3. Bsqueda de la solucin
l (Re)diseo apropiado de la aplicacin
l Optimizacin del cdigo SQL
l Ajuste de la memoria
l Ajuste de la E/S
l Ajuste de los problemas de contencin u otros problemas

LABDA Tema IV: Administracin de Bases de Datos 68

34
4.1.11-- Ajuste de rendimiento
4.1.11
Principios de Shasha

1.- Estudio global, accin local


a) Identificacin del problema
w Panorama global
b) Intervencin minimalista
2.- Fragmentar para resolver atascos
a) Detectar el cuello de botella
b) Romperlo
w 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

4.1.11-- Ajuste de rendimiento


4.1.11
Principios de Shasha

3.- Lo que cuesta es arrancar


n Minimizar los arranques
l Tiempo de disco: 512b = 64Kb
l Tiempo de mensaje: 1b ~ 1Kb
l Conexiones con SGBD: pocas y reaprovecharlas
l ...
4.- Dar al servidor lo que es suyo
n Dnde poner cada tarea?
5.- Llegar a compromisos entre costes
n accesos a disco vs. procesador
n espacio vs. tiempo
n OLTP vs. OLAP
n ...
LABDA Tema IV: Administracin de Bases de Datos 70

35
4.1.11-- Ajuste de rendimiento
4.1.11
Objetivo

w Afinacin de los procesos usuarios: Uso eficiente


de las rdenes SQL
w Optimizador
w Pruebas con explicadores (EXPLAIN) de plan
w Retoques
w etc.

w Slo los relevantes (peridicamente) y los problemticos


w Conexiones y trfico
w Restricciones declaradas
w Disparadores y procedimientos

LABDA Tema IV: Administracin de Bases de Datos 71

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

LABDA Tema IV: Administracin de Bases de Datos 72

36
4.1.11-- Ajuste de rendimiento
4.1.11
Objetivo

w Afinacin de la plataforma
n Hardware
n Memoria

n Discos: Nmero de ejes, Cach en controlador, Niveles de RAID


n SSD
n CPU

n SO, SGBD (parmetros)


w Tendencia a la automatizacin
n Wizards/Advisors que aconsejan:
n ndices, particiones, vistas materializadas

n Investigacin en auto-tuning y auto-administracin BD

LABDA Tema IV: Administracin de Bases de Datos 73

4.1.11-- Ajuste de rendimiento


4.1.11
Herramientas

w Para la prevencin, identificacin y resolucin de problemas


de rendimiento
w Tienden a la automatizacin de la ABD
w Herramientas que explotan...
n Informacin sobre las operaciones y trfico entre
n SGBD, SO , Red

n 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 grado de degeneracin (datos e ndice)


n uso de la BD y los buffers, bloqueos, ndices, ..
LABDA Tema IV: Administracin de Bases de Datos 74

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

n detalle de los pasos de las

operaciones y sus tiempos


Encadenamientos y desplazamientos Comunicacin C/S
Uso del buffer-pool /cach Consumo de recursos por las
transacciones
Uso del LOG Instantneas y su comparacin
Uso de I/O (discos..), RAM, CPU Tendencias
Uso de los ndices
LABDA Tema IV: Administracin de Bases de Datos 75

4.1.11-- Ajuste de rendimiento


4.1.11
Herramientas de monitorizacin

1. Diccionario de Datos (DBA_)


2. Vistas dinmicas de Rendimiento (V$_)
3. Herramientas de monitorizacin del sistema:
n Windows: Task Manager, etc...
n Unix/Linux: top,df...
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

38
4.1.11-- Ajuste de rendimiento
4.1.11
Diccionario de datos

w Almacena metadatos acerca de


n Usuarios
n Objetos: Tablas, ndices, paquetes, etc...
n Roles y Privilegios
n Almacenamiento (ficheros y tablespaces)
n 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

4.1.11-- Ajuste de rendimiento


4.1.11
Vistas del diccionario de datos

w El acceso al diccionario de datos se hace a travs de vistas que


se identifican con los prefijos:
n USER: objetos que posee el usuario
n ALL: objetos sobre los que se tiene permisos
n DBA: todos los objetos de la base de datos

w Diferentes tipos de vistas:


n Vistas generales (DBMS y DB)
n Vistas para monitorizacin de usuarios (DBA_USERS)
n Vistas de auditora (DBA_AUDIT_OBJECT)
n Vistas para monitorizar transacciones
n Vistas para almacenamiento
n Vistas sobre tipos de objetos: tablas, ndices
LABDA Tema IV: Administracin de Bases de Datos 78

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

LABDA Tema IV: Administracin de Bases de Datos 79

4.1.11-- Ajuste de rendimiento


4.1.11
Vistas relacionadas con el almacenamiento

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

40
4.1.11-- Ajuste de rendimiento
4.1.11
Vistas relacionadas con los ndices y restricciones

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

4.1.11-- Ajuste de rendimiento


4.1.11
Vistas dinmicas de rendimiento

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$.

LABDA Tema IV: Administracin de Bases de Datos 82

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

LABDA Tema IV: Administracin de Bases de Datos 83

4.1.11-- Ajuste de rendimiento


4.1.11
Oracle Enterprise Manager

w Estadsticas de
Rendimiento

LABDA Tema IV: Administracin de Bases de Datos 84

42
4.1.11-- Ajuste de rendimiento
4.1.11
Oracle Enterprise Manager

w Opciones de
Administracin

LABDA Tema IV: Administracin de Bases de Datos 85

4.1.11-- Ajuste de rendimiento


4.1.11
Oracle Enterprise Manager

w Opciones de Mantenimiento

LABDA Tema IV: Administracin de Bases de Datos 86

43
4.1.11-- Ajuste de rendimiento
4.1.11
Ajuste de la memoria de la instancia

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
w El tamao correcto de la memoria depende :
n Tipo de aplicacin
n Nmero de usuarios
n Tamao de las transacciones

LABDA Tema IV: Administracin de Bases de Datos 87

4.1.11-- Ajuste de rendimiento


4.1.11
SGA: Ajuste de Conjunto Compartido (Shared Pool)

w Afecta directamente al rendimiento de la BD:


n Cach de biblioteca: cdigo PL/SQL y sentencias SQL
recientes
n Cach de diccionario: Diccionario de datos
w Se modifica conjuntamente el tamao del conjunto:
n alter system
w Los efectos de un mal dimensionamiento son:
n Fragmentacin
n Mayor consumo de CPU
n Mayor intercambio entre memoria y disco

LABDA Tema IV: Administracin de Bases de Datos 88

44
4.1.11-- Ajuste de rendimiento
4.1.11
SGA: Cach de Biblioteca

w Contiene versiones analizadas y ejecutables del


cdigo SQL y PL/SQL
w Interpretacin de SQL
n Anlisis (Parsing)
n Optimizacin
n Ejecucin
n Recuperacin
w Anlisis y optimizacin son operaciones costosas:
n Si la sentencia esta en cach solo es necesario un anlisis
superficial.
LABDA Tema IV: Administracin de Bases de Datos 89

4.1.11-- Ajuste de rendimiento


4.1.11
Eficiencia de la 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

LABDA Tema IV: Administracin de Bases de Datos 90

45
4.1.11-- Ajuste de rendimiento
4.1.11
Diseo fsico y Gestin del espacio

w Gestin eficiente del espacio en disco afecta


al rendimiento de las aplicaciones
n Asignacin dinmica de espacio
n Nmero de accesos a discos
n Fragmentacin
n Encadenamiento de registros

LABDA Tema IV: Administracin de Bases de Datos 91

4.1.11-- Ajuste de rendimiento


4.1.11
Jerarqua de almacenamiento

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)

LABDA Tema IV: Administracin de Bases de Datos 92

46
4.1.11-- Ajuste de rendimiento
4.1.11
Gestin del espacio

w En Oracle10g hay dos alternativas:


n 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

n Tablespaces gestionados localmente (LMT)


l La informacin de control se guarda en cabeceras en los ficheros de
datos.
l Mejora la eficiencia sobre todo en tablespaces locales
l Permiten la gestin automtica
l Opcin por defecto
n Para convertir de DMT a LMT est el paquete
DBMS_SPACE_ADMIN

LABDA Tema IV: Administracin de Bases de Datos 93

4.1.11-- Ajuste de rendimiento


4.1.11
Uso de Tablespaces

w Es conveniente reservar diferentes tablespaces para objetos


que tienen caractersticas de almacenamiento y uso diferentes:
n Objetos del diccionario de datos (SYSTEM)
n Segmentos de rollback, actualmente undo
n Segmentos temporales
n Tablas
n ndices
n Objetos grandes

w Si es posible deberan estar en diferentes discos para permitir


el uso en paralelo
LABDA Tema IV: Administracin de Bases de Datos 94

47
4.1.11-- Ajuste de rendimiento
4.1.11
Tamao de las extensiones

w Es necesario determinar el tamao de un objeto


n Datos iniciales tengan espacio en el segmento
n Espacio disponible para el crecimiento de los objetos
w Para cada objeto podemos determinar:
n Tamao inicial de la extensin
n Tamao de la siguiente extensin
l Uniforme
l Variable
l Automtico
n Determinar la forma de manejo de la extensin
l Manual/Automtico

LABDA Tema IV: Administracin de Bases de Datos 95

4.1.11-- Ajuste de rendimiento


4.1.11
Extensiones grandes: pros y contras

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

w Generalmente para BDs transaccionales


n Ventajas: J

l Acceso aleatorio eficiente


l Bueno para filas pequeas
l Reducen la contencin de bloques

n Desventajas L
l Excesiva sobrecarga de informacin de control
l Pocas filas por bloque

LABDA Tema IV: Administracin de Bases de Datos 97

4.1.11-- Ajuste de rendimiento


4.1.11
Tamao del bloque: grande

w Generalmente para Almacenes de Datos


n Ventajas J

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

LABDA Tema IV: Administracin de Bases de Datos 98

49
4.1.11-- Ajuste de rendimiento
4.1.11
Gestin automtica del espacio

w Al crear objetos de la BD en tablespaces


gestionados localmente con su propio
segmento:
n La opcin AUTOALLOCATE especifica que las
nuevas extensiones se crean dinmicamente. La
BD decide el tamao de la extensin
n La opcin AUTO gestiona el espacio libre dentro
de los bloques

LABDA Tema IV: Administracin de Bases de Datos 99

4.1.11-- Ajuste de rendimiento


4.1.11
Estimacin del espacio en bloques

w Espacio libre distribuido:


n PCTFREE: mnimo porcentaje de un bloque de
datos que se reserva para actualizaciones de filas.
Por defecto 10
n PCTUSED: mnimo porcentaje de un bloque que
debiera estar ocupado para no admitir ms
inserciones. Por defecto 40
n FREELIST: Lista de bloques disponibles para
insertar

LABDA Tema IV: Administracin de Bases de Datos 100

50
4.1.11-- Ajuste de rendimiento
4.1.11
Problemas en bloques

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 La fila se mueve a otro bloque
n La parte de la fila original se mantiene y apunta a la
nueva localizacin para evitar la modificacin de los
ndices

LABDA Tema IV: Administracin de Bases de Datos 101

4.1.11-- Ajuste de rendimiento


4.1.11
Problemas en bloques

w Borrados frecuentes provocan tablas con


huecos
n En las operaciones de lectura se leen todos los
bloques hasta una marca mxima
w ndices sobre tablas voltiles
n Los bloques vacos van a FREELIST
n Es necesario mantener los bloques aunque slo
tengan una entrada

LABDA Tema IV: Administracin de Bases de Datos 102

51
4.1.11-- Ajuste de rendimiento
4.1.11
Estadsticas de almacenamiento

w Es posible obtener datos sobre el estado de


las tablas e ndices para monitorizar y
solucionar los problemas de almacenamiento
n Comando ANALYZE
n Paquete DBMS_SPACE

LABDA Tema IV: Administracin de Bases de Datos 103

Bibliografa

w Database systems : a practical approach to design, implementation and management. Thomas M.


Connolly. Addison -Wesley. 2005.
w Sistemas de bases de datos : un enfoque prctico para diseo, implementacin y gestin. Thomas M.
Connolly. Addison -Wesley. 2005.
w 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.
w Database System Implementation. Hctor Garca-Molina, jeffrey D. Ullman and Jeniffer Widom.
Prentice Hall. 2000.
w Physical database design : the database professional's guide to exploiting indexes, views, storage, and
more. Sam Lightstone. Morgan Kaufmann/Elsevier. 2007.
w Database administration : the complete guide to practices and procedures. Craig Mullins. Addison-
Wesley. 2002.
w Oracle 10g : administracin y anlisis de bases de datos. Csar Prez. Editorial Ra-Ma. 2005.
w Database management systems. Raghu Ramakrishnan. McGraw Hill. 2003.
w Fundamentos de Diseo de Bases de Datos. Abrahan Silberschatz and Henry Korth and S. Sudarshan.
McGraw Hill. 2007.

LABDA Tema IV: Administracin de Bases de Datos 104

52

También podría gustarte