Performance Bases de Datos

download Performance Bases de Datos

of 51

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]