dans les bases de donnes relationnelles - lsis. des bd relationnelles – bernard espinasse 1...

Download dans les bases de donnes relationnelles - lsis.  des BD Relationnelles – Bernard ESPINASSE 1 Optimisation et performance dans les bases de donnes relationnelles

Post on 09-May-2018

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Optimisation des BD Relationnelles Bernard ESPINASSE 1

    Optimisation et performance dans les bases de donnes relationnelles

    Bernard ESPINASSE

    Professeur Aix-Marseille Universit (AMU) Ecole Polytechnique Universitaire de Marseille

    Mars 2013

    1. Evaluation de l'activit sur la base de donnes

    2. Optimisation physique

    3. Optimiseurs de requtes

    4. Optimisation logique : dnormalisation

    Optimisation des BD Relationnelles Bernard ESPINASSE 2

    Plan 1. Evaluation de l'activit sur la base de donnes 2. Optimisation physique

    Performance et structures de donnes : choix d'une organisation/mthode d'accs Compression des donnes Index secondaires Partitionnement, clustrisation

    3. Optimiseurs de requtes Optimiseurs de requtes Statistiques sur l'tat des tables

    4. Optimisation logique : dnormalisation Problmatique de la dnormalisation Regroupement de tables, Cration de redondances d'attribut non cl, Ajout de cl

    trangre redondante, Cration de transitivit, Cration de tables de jointure

    Optimisation des BD Relationnelles Bernard ESPINASSE 3

    1. Valorisation de l'activit des traitements sur la BD Transformation de sous-schmas conceptuels (SSC) en sous-schmas

    logiques (SSL) Valorisation des primitives logiques

    Optimisation des BD Relationnelles Bernard ESPINASSE 4

    Valorisation de l'activit des traitements sur la BD (1) 1. Transformation de sous-schmas conceptuels (SSC) en sous-schmas

    logiques (SSL) Sous-Schma

    Conceptuel (SSC) 0,n 1,11,n

    0,n0,n

    1,1

    passer

    composerqt_commande

    DEPOTNdpot

    COMMANDE

    date_commande

    CLIENTNclientnom_client

    ARTICLENarticlelibell_article

    Ncommande

    concerner

    adresse_client

    adresse_dpot

    Sous-Schma Logique

    (SSL) associ

    qt_commandeDEPOTNdpot

    COMMANDE

    CLIENTNclientnom_client

    ARTICLENarticlelibell_article

    Ncommande

    COMPOSERNcommandeNarticle

    Nclient

    adresse_client

    adresse_dpot

    Ndpotdate_commande

  • Optimisation des BD Relationnelles Bernard ESPINASSE 5

    Valorisation de l'activit des traitements sur la BD (2) 2. Frquence d'une tche associe un modle externe frquence du message associ au modle externe exprime par rapport la priode de

    rfrence (gnralement le mois moyen) base sur la frquence de survenance des vnements initiateurs des procdures o figure

    cette tche 3. Transformation des actions en primitives - #T : Accs un tuple d'une table relationnelle par accs sur cl primaire, connaissant une

    valeur de cette cl - ?T : Accs un tuple d'une table relationnelle par accs sur un autre attribut que la cl

    primaire, ou slection/restriction de tuples d'une table selon une qualification - T+ : Ajout d'un tuple une table relationnelle - T- : Suppression d'un tuple une table relationnelle. Cette primitive est note T- nom de la

    table. - Tm : Modification d'un tuple d'une table relationnelle, par la modification de valeurs d'un ou

    plusieurs attributs de ce tuple - TXT': Jointure entre deux tables relationnelles T et T', par la modification de valeurs d'un ou

    plusieurs attributs de ce tuple. Cette primitive est note TXT' noms des tables concernes .

    Optimisation des BD Relationnelles Bernard ESPINASSE 6

    Valorisation de l'activit des traitements sur la BD (3) Illustration des primitives relationnelles :

    COMMANDE

    date

    CLIENTnclientnom client

    ncommandenclient

    CLIENT COMMANDE

    nclient nom client ncommande nclient date

    0001!!!!!!!!DUPONT

    0002 MARTIN

    0003!!!! DURAND...

    100 0001 12-02101 0001 19-03102 0001 22-04

    103 0002 12-02104 0002 20-04

    105 0003 12-02....

    #CLIENT (N0003)

    CLIENT X COMMANDE

    ?COMMANDE (date=12-02)

    Optimisation des BD Relationnelles Bernard ESPINASSE 7

    Valorisation de l'activit des traitements sur la BD (4) actions associes la prise en compte d'une nouvelle occurrence de COMMANDE :

    Sous-Schma Conceptuel (SSC) 0,n 1,1

    1,n

    0,n0,n

    1,1

    passer

    composerqt_commande

    DEPOTNdpot

    COMMANDE

    date_commande

    CLIENTNclientnom_client

    ARTICLENarticlelibell_article

    Ncommande

    concerner

    adresse_client

    adresse_dpot

    LEC

    LEC

    CRE

    LEC

    CRE

    CRE

    CRE

    m = 4,2

    m = cardinalit moyenne = 4,2(en moyenne, une commande porte sur de 4,2 articles)

    Sous-Schma Logique (SSL) associ

    qt_commandeDEPOTNdpot

    COMMANDE

    CLIENTNclientnom_client

    ARTICLENarticlelibell_article

    Ncommande

    COMPOSERNcommandeNarticle

    Nclient

    adresse_client

    adresse_dpot

    Ndpotdate_commande

    4,2

    #T

    #T

    #T

    T+

    T+

    Optimisation des BD Relationnelles Bernard ESPINASSE 8

    Valorisation de l'activit des traitements sur la BD (4) 4. Rcapitulatif de l'activit valorise par primitive pour chaque modle externe : traduction des actions, en primitives effectuer ce calcul d'abord pour l'activit unitaire de la tche, puis de la multiplier par la

    frquence de la tche sur la priode de rfrence. cumul par primitive de l'activit supporte par le modle (total par ligne). Du fait de

    l'htrognit des primitives en termes d'quivalent-accs, seul le cumul par primitive a une signification :.

    primitives activit unitaire activit mensuelle #T CLIENT 1 10 000 #T DEPOT 1 10 000

    T+ COMMANDE 1 10 000 T# ARTICLE 1x4,2 42 000

    T+ COMPOSER 1x4,2 42 000

    reprer les primitives forte activit, et retrouver les modles externes responsables en pratique: en l'absence d'outil logiciel prenant en charge cette valorisation fortement algorithmique,

    pratiquer ces calculs que sur un chantillon d'une vingtaine de modles externes remarquables par leur frquence, d'aspect critique (comme dans d'autres domaines la loi des 80-20 se constate galement ici).

  • Optimisation des BD Relationnelles Bernard ESPINASSE 9

    Valorisation de l'activit des traitements sur la BD (5) 5. Poids relatif des primitives en accs logiques Dfinir des quivalents-accs-logiques = poids relatifs entre les diffrentes primitives. Conventions pour la valorisation des primitives logiques

    1- unit d'accs logique = #T, toutes les autres seront exprimes en fonction de #T. 2- le nombre de tuples occupes par une table T sera not NbT(T) 3- le nombre de pages occupes par une table T sera not NbP(T)

    avec : NbP(T) = NbT(T)/nombre moyen de tuples dans la page le nombre moyen de tuples dans la page dpendra :

    - de la taille de la page, not P - de la taille du tuple, not T - du taux de remplissage de la page

    ces valeurs seront lies au SGBD et l'organisation de la table adopts. on pourra faire des calculs en premire approximation avec un taux de

    remplissage de 80% et des pages de 4K. Exemple :

    NbT(T) = 10000; P = 4Koctets; taux de remplissage de 80%; T = 200 octets; Nombre moyen de tuples par page = 4000x0,8/200 = 16 NbP(T) = 10000/16 = 625 pages.

    Optimisation des BD Relationnelles Bernard ESPINASSE 10

    Valorisation des primitives logiques (1) valeurs moyennes pour SGBDR actuellement commercialiss, une rflexion ncssaire sur

    la pertinence de ces valeurs dans le contexte de la BD #T =1 : slection selon cl primaire = unit d'accs logique ?T= NbP(T) : slection selon un attribut non cl primaire sans index secondaire :

    balayage squentiel ?T= Sx(NbP(T)+NP(I)): si le critre de slection comprend plusieurs termes dont un

    faisant intervenir un index secondaire I (avec S = facteur de slectivit du critre, cad la probabilit qu'un tuple satisfasse le critre; NbP(T) = nb pages de la table T; NbP(I) = nb pages de l'index I)

    T+ = T- = 4: le tuple est atteint par 1 accs l'index + 1 accs la page contenant le tuple cherch + 1 mise jour d'une page + 1 mise jour de l'index.

    Tm = 3: le tuple est atteint par 1 accs l'index + 1 accs la page contenant le tuple cherch + 1 criture sur page.

    TXT' = S(NbP(T) + (N(T)xNbP(T'))) : jointure, avec NbP(T) = nombre page de la table T, S = facteur de slectivit du critre sur T, N(T) = nombre de tuples de T satisfaisant le critre, NbAP(T') = nombre page de la table T'

    Optimisation des BD Relationnelles Bernard ESPINASSE 11

    Valorisation des primitives logiques (2) Globalement on pourrait retenir :

    primitive quivalent accs #T 1

    Tm 3

    T+=T- 4

    ?T NbP(T)

    ?T si critre/index Sx(NbP(T)+NP(I))

    TXT' S(NbP(T) + (N(T)xNbP(T'))

    Optimisation des BD Relationnelles Bernard ESPINASSE 12

    2. Optimisation physique dune BD relationnelle Performance et structures de stockage des donnes Conseils pour le choix dorganisation de stockage Compression Cl primaire et cl plaantes Index secondaires Partition de tables (vertical et horizontal) Clustrisation de tables

  • Optimisation des BD Relationnelles Bernard ESPINASSE 13

    Performance e t structures de stockage des donnes

    Problme : le SGBD permet toujours de trouver une donne mais un choix judicieux

    de structure de stockage (organisation des tables) permettra de rduire ce temps de recherche.

    pour certaines requtes : certaines organisations seront plus performantes

    mais :

    ces organisations affecteront : l'espace disque la concurrence (encore plus dlicate grer).

    Optimisation des BD Relationnelles Bernard ESP

Recommended

View more >