Performance Bases de Datos
Transcript of Performance Bases de Datos
-
7/25/2019 Performance Bases de Datos
1/51
Performance en
Bases de DatosAdrian Daniel Garcia
Gerente de Soluciones de [email protected]
-
7/25/2019 Performance Bases de Datos
2/51
Performance:
Requerimiento No
Funcional
-
7/25/2019 Performance Bases de Datos
3/51
RequerimientosNo Funcionales
especifica criterios que pueden serusado para juzgar la operacin de un
sistema, pero no su funcionalidad
restriccionesatri!utos de calidad
calidad de servicioo!jeti"os de calidad
-
7/25/2019 Performance Bases de Datos
4/51
RequerimientosNo Funcionales
#N$: %raspasan toda la arquitectura de unsistema
#equieren generalmente un
entendimiento profundo de las tecnolog&asin"olucradas' (specialmente cuando )a!lamos de
performance en !ases de datos
-
7/25/2019 Performance Bases de Datos
5/51
RequerimientosNo Funcionales
Gran tra!ajo en requerimientosfuncionales' %*cnicas, +erramientas, etodolog&as, etc.
-Pero que )a de los requerimientos queno est/n relacionados con lafuncionalidad0
' )mmm..... -documento 1ord0' 2asos de uso
-
7/25/2019 Performance Bases de Datos
6/51
Performance comoRequerimiento no funcional
Algunos requerimientos no funcionales' (l sistema de!e ser r/pido
-que tan r/pido0
-en que transaccin0 -en todas0' (l sistema de!e soportar a 3.444 usuarios
-concurrentes0
-)oras pico0
-d&as de cierre0
Generalmente son definiciones mu generales
-
7/25/2019 Performance Bases de Datos
7/51
Ejemplo de definicin de unrequerimiento no funcional vaga
5(l sistema de!er/ estar en capacidad de prestar el ser"icio conunos niveles aceptables de desempeo, teniendo en cuentala concurrencia de usuarios, de!er/ estar en capacidad deatender, sin que implique deterioro del servicio, a un
nmero finito de usuarios realizando procesos en l&nea.(l n6mero de usuarios soportados estar/ determinado, en granparte, por la calidad cantidad de los recursostecnolgicos asignados para el despliegue de la aplicacin en menor medida deber! radicar en el desempeo de loscomponentes de la aplicacin.7
-
7/25/2019 Performance Bases de Datos
8/51
Performance comoRequerimiento no funcional
#equerimientos no funcionalesrelacionados entre s& que in"olucran alos motores de !ases de datos
' Performance' 2apacidad
' (scala!ilidad
-
7/25/2019 Performance Bases de Datos
9/51
Performance comoRequerimiento no funcional
Performance 2apacidad' puede ser medida
' puede ser testeada
' puede ser relacionada con la arquitectura delsistema
%odos estos puntos se "inculan
directamente con !ases de datos
-
7/25/2019 Performance Bases de Datos
10/51
Performance comoRequerimiento no funcional
Pro!lemas que nos enfrentamos al definirla performance capacidad 5a priori7' Puedo llegar a especificarlas
' 2umplirlas... es otro tema' Degradacin de la performance
/s usuarios
Nue"as funcionalidades
' $alta de control en sistemas de produccin
-
7/25/2019 Performance Bases de Datos
11/51
"suario final como elementode control de la performance
(l usuario dice 5el sistema est/ lento7 Preguntas:
' -2uando0 -Siempre0 -A "eces0
' -%odos los d&as0' -8ue operacin, transaccin, reporte est/
lento0
-
7/25/2019 Performance Bases de Datos
12/51
"suario final como elementode control de la performance
9os usuarios se "an adaptando a laperformance generalmente lenta; delsistema
9os reclamos se "an 5cajoneando7 en losdiferentes ni"eles' +a tantas cosas por )acer, como por
ejemplo, agregar m/s funcionalidad,solucionar !ugs, etc.
-
7/25/2019 Performance Bases de Datos
13/51
"suario final como elementode control de la performance
Generalmente se reacciona al pro!lemacuando es lo suficientemente grandecomo para in"olucrar a un gerente
-
7/25/2019 Performance Bases de Datos
14/51
#ngenier$a de Performance
Proceso' Definir los o!jeti"os de Performance
' Dise
-
7/25/2019 Performance Bases de Datos
15/51
Definir objetivos dePerformance
%iempos de #espuesta' Por transaccin, emisin de reporte, etc
#endimiento %)roug)put;
' %ransacciones por segundo =tilizacin de recursos
' 2P=, Dis> ?, memoria
2arga de tra!ajo' usuarios concurrentes, usuarios totales, "olumende datos, "olumen de transacciones, etc.
-
7/25/2019 Performance Bases de Datos
16/51
%alidad de &ervicio
Performance es uno de los atri!utos decalidad de ser"icio
Pero no es el 6nico algunos se
contraponen' (j. #equerimientos de seguridad auditoria
de una !ase de datos pueden ir en contra delos requerimientos de performance
(ncontrar el !alance
-
7/25/2019 Performance Bases de Datos
17/51
Disear para la Performance
Desde el inicio Afecta al modelado de la !ase de datos
desde su dise
-
7/25/2019 Performance Bases de Datos
18/51
'edir testear laPerformance
Punto de partida: requerimientos nofuncionales o!jeti"os de performance
!tencin de informacin de performance
(sta!lecer puntos de comparacin 2omparar
Pro!lema: -cmo )ago todo esto0
( li i P f
-
7/25/2019 Performance Bases de Datos
19/51
(pplication Performance'anagment
Disciplina de administracin de sistemas onitoreo de disponi!ilidad performance AP aplicado a una aplicacin,
espec&ficos de acceso a datos' 8uers m/s usados' 8uers m/s lentos' %ransacciones de negocios por )ora' etc.
Alerta temprana de pro!lemas
&it i l d l
-
7/25/2019 Performance Bases de Datos
20/51
&ituacin general de laaplicaciones )o en d$a
No implementan ning6n tipo de AP No eBiste requerimientos no funcionales no
o!jeti"os de performance
9a solucin mas escuc)ada: 5+a que comprarm/s )ardCare7
9os desarrolladores originales a no se
encuentran en la compa
-
7/25/2019 Performance Bases de Datos
21/51
Performance en bases de datos*en donde focali+ar esfuer+o
S otor D +ardCare ase de datos Aplicacin
-
7/25/2019 Performance Bases de Datos
22/51
'otor de Base de Datos
Algunos motores ofrecen m/sposi!ilidades de configuracin que otros' ej. memoria asignada al cac)e de planes de
ejecucin Algunos motores permiten el go!ierno de
recursos
' 2P=' emoria
-
7/25/2019 Performance Bases de Datos
23/51
,ard-are
2P= emoria
#ed
Sistemas de Almacenamiento
-
7/25/2019 Performance Bases de Datos
24/51
,ard-are* %P"
Alto uso de 2P=' arri!a del E4F en forma sostenida
Soluciones posi!les:' -Agregar m/s 2P= al ser"idor0.... generalmente
no es la solucin Alto consumo de 2P=
' operaciones de c/lculo
' !6squedas en memoria' ordenamiento' )as)ing de datos
-
7/25/2019 Performance Bases de Datos
25/51
,ard-are* %P"
Si )a pro!lemas de !loqueoscontencin de datos; agregar m/s 2P=sincrementa el pro!lema
-
7/25/2019 Performance Bases de Datos
26/51
,ard-are* 'emoria
(s simple: el HIF o m/s; de las "ecesque el motor necesita leer un !loque dedatos, este de!e estar a en memoria
Por de!ajo del HIF, se de!e agregarmemoria
, d &i t d
-
7/25/2019 Performance Bases de Datos
27/51
,ard-are* &istemas de(lmacenamiento
(l !uen dise
-
7/25/2019 Performance Bases de Datos
28/51
&istemas de (lmacenamiento*Niveles de Raid
#A?D 4' 5Stripping7' ? en paralelo en todos los
discos inter"inientes' No )a redundancia de
datos' ejoras en performance de
lectura escritura' ?deal para !ases de datostemporales
&i t d (l i t
http://en.wikipedia.org/wiki/File:RAID_0.svg -
7/25/2019 Performance Bases de Datos
29/51
&istemas de (lmacenamiento*Niveles de Raid
#A?D 3' irroing
' un disco es el
espejo del otro' No )a ganancia deperformance
' +a redundancia
' Se pierde el I4F delespacio disponi!le
&i t d (l i t
http://en.wikipedia.org/wiki/File:RAID_1.svg -
7/25/2019 Performance Bases de Datos
30/51
#A?D I' Paridad distri!uida' Alto ratio de
transferencia en
lecturas' ajo ratio detransferencia enescrituras
' +a redundancia' Se pierde el JJF del
espacio disponi!le
&istemas de (lmacenamiento*Niveles de Raid
&i t d (l i t
http://en.wikipedia.org/wiki/File:RAID_5.svg -
7/25/2019 Performance Bases de Datos
31/51
#A?D 3 K 4' 2om!inacin de #A?D 3 mirroing; con #A?D
4 stripping;' mejor performance en lectura escritura' Se necesitan L discos m&nimos' Se pierde el I4F del espacio disponi!le' +a redundancia
&istemas de (lmacenamiento*Niveles de Raid
%!l l d id d d
-
7/25/2019 Performance Bases de Datos
32/51
%!lculo de capacidad dediscos
Algunas reglas simples:' 3 disco de 34.444 rpm M 344 ? de lectura
por segundo' 3 disco de 3I.444 rpm M 3I4 ? de lectura
por segundo' (scritura:
O de la capacidad de lectura en #A?D 3K4
de la capacidad de lectura en #A?D I' ? total de un #A?D: cantidad de discos Qcapacidad de ?
-
7/25/2019 Performance Bases de Datos
33/51
R(#D balance de carga
#A?D 3:' S.,' logs de transacciones
#A?D 4' !ases de datos temporales #A?D I
' Datos preferentemente 9AP;
#A?D 3 K 4' Datos, logs de transacciones
-
7/25/2019 Performance Bases de Datos
34/51
&istemas de almacenamiento
Ser"idores peque
-
7/25/2019 Performance Bases de Datos
35/51
Rendimiento en&istemas de discos
%iempo de latencia por #A?D' 9ecturas:
menor a R4 ms: adecuado
entre R4 I4 ms: )a pro!lemas m/s de I4 ms: pro!lemas gra"es
' (scrituras: menor a 34 ms: adecuado
entre R4 L4 ms: )a pro!lemas m/s de L4 ms: pro!lemas gra"es
&istemas de
-
7/25/2019 Performance Bases de Datos
36/51
&istemas de(lmacenamiento &(N
Storage distri!uido uc)os !eneficios
' pero cuestan
No son m/gicos' ismas pr/cticas que discos en forma local
' #A?Ds dedicados a una sola 9=N
Diseo lgico de
-
7/25/2019 Performance Bases de Datos
37/51
Diseo lgico deesquemas.bases de datos
alance entre normalizacin desnormalizacin' =so de "istas indeBadas u otras )erramientas
para desnormalizar
' 9%P "s 9AP Alta normalizacin: modelos tericos
' jo con estos dise
-
7/25/2019 Performance Bases de Datos
38/51
#emo"er relaciones 3 a 3 del dise
-
7/25/2019 Performance Bases de Datos
39/51
(n que dispositi"os f&sicos se u!ica' 2ada ta!la
' 2ada &ndice
=n mal dise
-
7/25/2019 Performance Bases de Datos
40/51
(lgunas estrategias dediseo f$sico
Separar las ta!las 9%P en discosdiferentes a las ta!las 9AP
Separar las ta!las en discos diferentes
que los &ndices Distri!uir ta!las en dos o m/s discos
Particionar )orizontalmente una ta!la en
distintos discos
Diseo f$sico de
-
7/25/2019 Performance Bases de Datos
41/51
Algunos datos a sa!er:' Tolumen estimado de datos' 2recimiento estimado'
%ama
-
7/25/2019 Performance Bases de Datos
42/51
2uales son las ta!las m/s usadas' Tan a generar mas ?
2uales son las ta!las que m/s se
actualizan' Tan a generar m/s !loqueos
2uales son los argumentos de !usqueda
m/s usados' Dise
-
7/25/2019 Performance Bases de Datos
43/51
/ndices vs /ndices
Undice: es una estructura que consiste!/sicamente en un su!conjunto de filas columnas de una ta!la, ordenadas de
forma tal que facilitan la !6squeda dedatos
=na ta!la puede tener m/s de un &ndice
=na cla"e primaria o una restriccin deunicidad generan &ndices
/ /
-
7/25/2019 Performance Bases de Datos
44/51
/ndices vs /ndices
2ada motor de !ase de datos tiene supropio tipos de &ndices' (j: S89 Ser"er : &ndices cluster no cluster
(ntender cada tipo es fundamental' pros contra de cada tipo %a!las 9AP: t&picamente con muc)os
&ndices %a!las 9%P: t&picamente con pocos
&ndices
/ /
-
7/25/2019 Performance Bases de Datos
45/51
/ndices vs /ndices
Analizar clausulas 1+(#(, G#=P V #D(# V para definir los &ndicesnecesarios sus columnas
?dentificar los &ndices que cu!ren queries =so razona!le de &ndices compuestos' rden de las columnas' %ama
-
7/25/2019 Performance Bases de Datos
46/51
/ndices
Terificar que sean usados' 52ree un &ndice pero el quer sigue tardando
lo mismo7
uenos &ndices reducen dr/sticamente lanecesidad de acceso a disco' menos ?, m/s performance
Ganancia de "arios ordenes de magnituden performance
/
-
7/25/2019 Performance Bases de Datos
47/51
/ndices
9os &ndices se actualizan' Penalizan las operaciones de insert, update,
delete
=san espacio en disco Necesitan mantenimiento
Generalmente no se actualizan cuando
cam!ian los requerimientos funcionales' Undices que dejan de ser utilizados
1
-
7/25/2019 Performance Bases de Datos
48/51
0uning de 1ueries
antener los queries lo m/s simple posi!le (ntender !ien los planes de ejecucin
' 8ue &ndices se utilizaron
' 2omo se !usco en el &ndice' 8ue cantidad de filas retorno la !6squeda
' Ter de cam!iar el &ndice "ol"er a intentar
'Analizar tam!i*n la cantidad de operacionesde ? generadas por el quer
0 i d 1 i
-
7/25/2019 Performance Bases de Datos
49/51
0uning de 1ueries
No aplicar funciones a columnas' S(9(2% Q $# customer 1+(#( zip W
%XN=(#YHL44RY; ZM [
' S(9(2% Q $# customer 1+(#(%X2+A#zip; W YHL44R\ ZM N [
Pro!lemas con ]?NS' Ter de usar su!queries
' %estear, testear, testear
,erramientas de obtencin de
-
7/25/2019 Performance Bases de Datos
50/51
,erramientas de obtencin dedatos de performance
2ada motor tiene las propias 2aptura de carga de tra!ajo
2aptura de contadores de performance
' del motor propio' del S..
2orrelacin entre contadores de
performance la carga de tra!ajo +erramientas de Jeras partes: Spotlig)t
P t
-
7/25/2019 Performance Bases de Datos
51/51
Preguntas
Gracias por participar
Adrian [email protected]