Está en la página 1de 30

Mxima Performance

Postgresql
Disertante: Emanuel Calvo Franco.
Ao: 2009

Nuevo temario

Entendiendo el EXPLAIN.

Actualizar Recolectar estadsticas.

Indices.

Performance Tips.

Explain es tu amigo

Permite ir ms all de ejecutar consultas.

Auda a comprender !ue es lo !ue puede estar


"allando del servidor.

No siempre la consulta ms elegante es la ms


per"ormante #$

Resumen

Este comando permite visualizar entender


cual es la "orma en !ue el optimizador analiza
devuelve los resultados.

Es de gran auda cuando !ueremos ver


posi%les de"ectos en la ar!uitectura de nuestra
%ase de datos.

&intxis#
' EXPLAIN (ANAL)*E+ (,ER-.&E+ /!uer0
Insert
1pdate
select

2onceptos %sicos

2oste

.perador

3iempo 4no vamos a entrar en explicaciones "ilos5"icas de !ue es esto #$

3ama6o de datos 4esto podra tener una explicaci5n ms extensa 7 pero es entendi%le de
solo pensar en ella$

2oste

2ost4 8ra "ila 9 ultima$ de acuerdo a valores de


coste explcitos en el postgres!l.con"

.peradores

&e! &can

Index scan

&ort 4:;or<=mem$

1ni!ue

Limit

Aggregate

Append

Result

Nested Loop

>erge ?oin

@asA and @asA ?oin

Broup

&u%!uer &can and


&u%plan

3id &can 4raro$

>aterialize

EXPLAIN EXPLAIN ANAL)*E

>s operadores del ANAL)*E
select : "rom accounts a7 Aistor A ;Aere a.aid C
A.aidD

>anipulando el optimizador

Eesactivamos la %Fs!ueda por escaneo de


ndicesG

2lean H 1pdate meI

,A211>

,A211> J1LL

,A211> ANAL)*E

ANAL)*E

REINEEX
Reacomodan tuplas muertas
Acumulan estadsticas
2ual!uier consulta7 ejecuten
KA ,A211>
K ANAL)*E

Estadsticas

El catlogo contiene las estadsticas de


acceso 7 campos "recuentes dems de todos
los o%jetos del 2L1&3ER.

Ejemplo prctico de estadsticas.

3ener en cuenta de tener las estadsticas %ien


actualizadas 4ANAL)*E ,A211>$.

Jrecuencia de valores
A maor "recuencia de aparici5n7
"avorecer !ue el
optimizador opte por el se!scan
Por so%re otros operadores #.

2antidad de valores distintos.

Eeseo ms estadsticasI
AL3ER 3A-LE cAares AL3ER 2.L1>N texto &E3 &3A3I&3I2& 8LD

IM. por o%jeto
pg=statio=all=indexes pg=statio=ss=indexes
pg=statio=user=indexes
pg=statio=all=se!uences pg=statio=ss=se!uences
pg=statio=user=se!uences
pg=statio=all=ta%les pg=statio=ss=ta%les
pg=statio=user=ta%les

Nndices

-tree 4%inario$

Bin 4mejor para texto$

BI&3 4datos complejos$

@asA 4no recomenda%le


aFn$

2omunes

Por expresion o
"uncionales
2REA3E INEEX ix=accounts8 .N accounts
1&INB AasA 4aid$ ta%lespace ts=indicesD

Nndices "uncionales
2REA3E INEEX ix=cAares="unc .N cAares 4AasAtext4texto$$D

Incidencia de N1LLs en Nndices
ararue!as"# u$ate c%ares set texto " &'(( )%ere texto * +,-.-/2/01+2

Per"ormance

3a%lespaces dedicados a o%jetos.

RAIE si o si en servidores.

EconomaG RAIEL con PI3R.

-ases cAicas7 normalizar en %uen nivel


redundar in"ormaci5n con vistas materializadas.

EespuOs de grandes cam%ios en los datos7


correr ,A221> ANAL)*E.

2REA3E 3A-LE A& o 2L1&3ER permitir !ue


las lecturas en los ndices ms rpida.

Per"ormance

In"luencie el optimizador para detectar posi%les


discrepancias en el resultado a travOs de las
varia%les 2P1=INEEX=31PLE7
2P1=.PERA3.R=2.&37
2P1=31PLE=2.&37
EJJE23I,E=2A2@E=&I*E7
RANE.>=PABE=2.&3.

>inimice la carga de red de las m!uinas


locales Aaciendo la maor parte del tra%ajo en
el servidor. Esto inclue los procedimientos7
"unciones7 disparadores.

Per"ormance

Pre"iera utilizar multinucleos para Postgres7 el


sistema de "or<s permite una distri%uci5n en los
recursos.

&i utiliza Plarge o%jectsP realice seguido


vacuum=lo 4incluido en los contri%$.

3rate de utilizar Jree-&E para sistemas


medianos &olaris para sistemas de %uenos
recursos.

PLMPerl es un exelente lenguaje para realizar


tareas complejas e"icientes.

Per"ormance

Pg%encA es una %uena Aerramienta para medir


mejorar nuestra con"iguraci5n.

>onitoreando sistema
'IM%inM%asA
ipcs Qm R Aead QS
ecAo
iostat 8 8
ecAo
vmstat
ecAo
"ree
ecAo
ps Qe";;a R grep post
stat.sA ' ;atcA TintervalC8 .Mstat.sA

*J& XJ&

Las estadsticas demuestran !ue XJ& tiene


mejor rendimiento !ue el resto de los "ormatos
de partici5n de Linux.

*J& permite realizar tareas ms complejas


avanzadas.

2omparaciones

2omparaciones

3racias Piol4

También podría gustarte