Вы находитесь на странице: 1из 25

OPTIMIZACIN DE BASES DE DATOS

Especializacin: Desarrollo de
Bases de Datos
rea Acadmica: Administracin de
la Informacin

Instructor: Ing. Msc. Indira R.


Duarte Lpez

OPTIMIZACIN DE BASES DE DATOS


PLAN DE EJECUCION
1- Creando un PLAN_TABLE
CONNECT HR/your_password
@$ORACLE_HOME/rdbms/admin/utlxplan.sql
2- EXPLAIN PLAN FOR
SELECT last_name FROM employees;
EXPLAIN PLAN
FOR
SELECT last_name FROM employees;
3- UTLXPLS.SQL
Este script visualiza la salida del plan table

OPTIMIZACIN DE BASES DE DATOS


INDICES BITMAP
- Para columnas en la cual el radio del numero de valores respecto al numero de filas de la tabla es pequeo.

ratio=grado de cardinalidad - columna genero optima


- En DW se construyen ndices Bitmap en columnas con alta cardinalidad. Ej: 1 tabla con 1' regs una col con 10.000 valores distintos
es candidata a ndice Bitmap.
- Un ndice Bitmap en esta columna puede ser mejor que un ndice B-tree, cuando esta columna es frecuentemente consultada junto
con otras columnas indexadas. En efecto, en DW un Ibitmap puede ser considerado para cualquier columna no nica.
- La mayora de ndices en un DW deberan ser ndices Bitmap

- En ad hoc quieres los bitmap indexes pueden mejorar el desempeo

- pueden incluir columnas con valores NULL

OPTIMIZACIN DE BASES DE DATOS


B-tree indexes

- +Efectivos para datos con alta


cardinalidad : num de cliente, num telef

- En DW, B-tree deberan ser solamente


usados para columnas nicas u otras
columnas con muy alta cardinalidad.

- B-tree de tablas particionadas pueden


ser globales o locales.

OPTIMIZACIN DE BASES DE DATOS

Tablas particionadas

Mejora el desempeo, la
manejabilidad y la
disponibilidad de una amplia
variedad de aplicaciones y
ayuda a reducir el costo total
de grandes cantidades de
datos.

OPTIMIZACIN DE BASES DE DATOS

OPTIMIZACIN
DE
SENTENCIAS
OPTIMIZACIN DE BASES DE DATOS

La partitioning key consiste de


una o ms columnas que
determinan la particin donde
cada fila se almacena.

Oracle dirige automticamente


las operaciones de insert,
update, and delete a la
particin apropiada con la llave
de particionamiento.

OPTIMIZACIN DE BASES DE DATOS


CUANDO PARTICIONAR UNA TABLA

- Tablas mayores de 2 GB

- Tablas con datos histricos, en la cual los datoas que


se adicionen queden en la particion mas nueva
- Cuando el contenido de la tabla deba ser distribuido a
travs de diferentes dispositivos de almacenamiento

When to Partition an Index

- evitar reconstruir un ndice completo cuando se


eliminen datos
- Realizar mantenimiento por partes sin invalidar el
ndice completo

OPTIMIZACIN DE BASES DE DATOS


Estrategias de particionamiento

Estrategias de particionamiento, controlan


como sern ubicados los datos en particiones
individuales:

- Range

- Hash

- List

OPTIMIZACIN
DE
SENTENCIAS
OPTIMIZACIN DE BASES DE DATOS

Tablas particionadas

Mejora el desempeo, la
manejabilidad y la
disponibilidad de una amplia
variedad de aplicaciones y
ayuda a reducir el costo total
de grandes cantidades de
datos.

OPTIMIZACIN
DE
SENTENCIAS
OPTIMIZACIN DE BASES DE DATOS

OPTIMIZACIN
DE
SENTENCIAS
OPTIMIZACIN DE BASES DE DATOS

OPTIMIZACIN DE BASES DE DATOS


CREATE TABLE emp (deptno NUMBER, empname VARCHAR(32), grade NUMBER)
PARTITION BY RANGE(deptno) SUBPARTITION BY HASH(empname)

SUBPARTITIONS 8 STORE IN (ts1, ts3, ts5, ts7)


(PARTITION p1 VALUES LESS THAN (1000),
PARTITION p2 VALUES LESS THAN (2000)
STORE IN (ts2, ts4, ts6, ts8),
PARTITION p3 VALUES LESS THAN
(MAXVALUE)
(SUBPARTITION p3_s1 TABLESPACE ts4,
SUBPARTITION p3_s2 TABLESPACE ts5));
CREATE INDEX emp_ix ON emp(deptno)
LOCAL STORE IN (ts7, ts8, ts9);

CREATE TABLE sample_regional_sales


(deptno number, item_no varchar2(20),
txn_date date, txn_amount number, state varchar2(2))
PARTITION BY RANGE (txn_date)
SUBPARTITION BY LIST (state)
(PARTITION q1_1999 VALUES LESS THAN (TO_DATE('1-APR-1999','DD-MON-YYYY'))

TABLESPACE tbs_1
(SUBPARTITION q1_19 99_northwest VALUES ('OR', 'WA'),
SUBPARTITION q1_1999_southwest VALUES ('AZ', 'UT', 'NM'),
SUBPARTITION q1_1999_northeast VALUES ('NY', 'VM', 'NJ'),
SUBPARTITION q1_1999_southeast VALUES ('FL', 'GA'),
SUBPARTITION q1_others VALUES (DEFAULT) TABLESPACE tbs_4
PARTITION q2_1999 VALUES LESS THAN ( TO_DATE('1-JUL-1999','DD-MON-YYYY'))
TABLESPACE tbs_2
(SUBPARTITION q2_1999_northwest VALUES ('OR', 'WA'),
SUBPARTITION q2_1999_southwest VALUES ('AZ', 'UT', 'NM'),

SUBPARTITION q2_1999_northeast VALUES ('NY', 'VM', 'NJ'),


SUBPARTITION q2_1999_southeast VALUES ('FL', 'GA'),
SUBPARTITION q2_1999_northcentral VALUES ('SD', 'WI'),
SUBPARTITION q2_1999_southcentral VALUES ('OK', 'TX')
PARTITION q3_1999 VALUES LESS THAN (TO_DATE('1-OCT-1999','DD-MON-YYYY'))
TABLESPACE tbs_3
(SUBPARTITION q3_1999_northwest VALUES ('OR', 'WA'),
SUBPARTITION q3_1999_southwest VALUES ('AZ', 'UT', 'NM'),
SUBPARTITION q3_others VALUES (DEFAULT) TABLESPACE tbs_4
PARTITION q4_1999 VALUES LESS THAN ( TO_DATE('1-JAN-2000','DD-MON-YYYY'))
TABLESPACE tbs_4

OPTIMIZACIN DE BASES DE DATOS


CREATE TABLE emp_sub_template (deptno NUMBER, empname
VARCHAR(32), grade NUMBER)
PARTITION BY RANGE(deptno) SUBPARTITION BY HASH(empname)

SUBPARTITION TEMPLATE

(SUBPARTITION a TABLESPACE ts1,

SUBPARTITION b TABLESPACE ts2,

SUBPARTITION c TABLESPACE ts3,

SUBPARTITION d TABLESPACE ts4

(PARTITION p1 VALUES LESS THAN (1000),

PARTITION p2 VALUES LESS THAN (2000),

PARTITION p3 VALUES LESS THAN (MAXVALUE)

OPTIMIZACIN DE BASES DE DATOS


SQL> SELECT TABLESPACE_NAME, PARTITION_NAME, SUBPARTITION_NAME
2 FROM DBA_TAB_SUBPARTITIONS WHERE TABLE_NAME='EMP_SUB_TEMPLATE'
3 ORDER BY TABLESPACE_NAME;
TABLESPACE_NAME PARTITION_NAME SUBPARTITION_NAME
TS1

P1

P1_A

TS1

P2

P2_A

TS1

P3

P3_A

TS2

P1

P1_B

TS2

P2

P2_B

TS2

P3

P3_B

TS3

P1

P1_C

TS3

P2

P2_C

TS3

P3

P3_C

TS4

P1

P1_D

OPTIMIZACIN DE BASES DE DATOS


CREATE TABLE stripe_regional_sales
( deptno number, item_no varchar2(20),
txn_date date, txn_amount number, state varchar2(2))
PARTITION BY RANGE (txn_date)
SUBPARTITION BY LIST (state)
SUBPARTITION TEMPLATE
(SUBPARTITION northwest VALUES ('OR', 'WA') TABLESPACE tbs_1,
SUBPARTITION southwest VALUES ('AZ', 'UT', 'NM') TABLESPACE tbs_2,
SUBPARTITION northeast VALUES ('NY', 'VM', 'NJ') TABLESPACE tbs_3,
SUBPARTITION southeast VALUES ('FL', 'GA') TABLESPACE tbs_4,
SUBPARTITION midwest VALUES ('SD', 'WI') TABLESPACE tbs_5,
SUBPARTITION south VALUES ('AL', 'AK') TABLESPACE tbs_6,
SUBPARTITION others VALUES (DEFAULT ) TABLESPACE tbs_7

(PARTITION q1_1999 VALUES LESS THAN ( TO_DATE('01-APR-1999','DD-MON-YYYY')),


PARTITION q2_1999 VALUES LESS THAN ( TO_DATE('01-JUL-1999','DD-MON-YYYY')),
PARTITION q3_1999 VALUES LESS THAN ( TO_DATE('01-OCT-1999','DD-MON-YYYY')),
PARTITION q4_1999 VALUES LESS THAN ( TO_DATE('1-JAN-2000','DD-MON-YYYY'))

OPTIMIZACIN DE BASES DE DATOS


Simplicity In Application Design
Data Modeling
- Es importante el diseo de una aplicacin relacin.
- Debe realizarse de tal forma que represente las practicas del negocio.
- Debates acerca del correcto modelo de datos

- Lo importante es aplicar esfuerzos de modelamiento mayores a las


entidades claves del negocio

- En esta fase hay gran tentacin de gastar demasiado tiempo


modelando elementos de datos no-core
- Usar herramientas

OPTIMIZACIN
DE
SENTENCIAS
OPTIMIZACIN DE BASES DE DATOS
Diseo de Tablas y de ndices
El diseo de las tablas debe contemplar
flexibilidad y desempeo de las transacciones

- Para Mantener la Base de datos


flexible y disponible para que se
adapte a latas cargas de trabajo
- Debera ser muy similar al modelo de
datos y debera estar normalizada a al
menos la tercera forma normal.
- Ciertas transacciones core pueden
requerir de normalizacin selectiva
para propsitos de desempeo..

OPTIMIZACIN DE BASES DE DATOS


Diseo de tablas y de ndices

El enfoque y los recursos deberan ser


utilizados en las tablas criticas del negocio
optimo desempeo

Para tablas no criticas no se requiere invertir


tiempo para un mas rpido diseo

Si el prototipo y las pruebas de tablas no core


se vuelven un problema de desempeo,
esfuerzos de remedio de desempeo.

OPTIMIZACIN DE BASES DE DATOS


- El Diseo de ndices es un
proceso bastante interactivo.
Basados en el SQL.

- Llaves primarias

- Pruebas de desempeo para


mejorar queries especficos
para construir el mejor ndice.

OPTIMIZACIN DE BASES DE DATOS


Considere
Adicionar columnas a un ndice o tablas
usando tablas IOT:
Usando un tipo de ndice diferente

Encontrando el costo de un ndice


Serializando dentro de los ndices
Ordenando columnas en un indice

OPTIMIZACIN DE BASES DE DATOS


Probando Carga de Trabajo,
Modelamiento e Implementacin
Definir el tamao de la Data

Estimando la carga de trabajo

Modelamiento de la aplicacion
probando, depurando y
validando un diseo.

OPTIMIZACIN DE BASES DE DATOS

Estimando Cargas de
Trabajo
Extrapolando desde
un sistema similar

Benchmarking

OPTIMIZACIN DE BASES DE DATOS


Desplegando
Nuevas aplicaciones
Rollout
Strategies
Performance
Checklist