Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Performance Tuning
Pr. M.RADOUANE
2022-2023
Plan:
Plans d’execution.
Opérations de jointure.
Astuces de réglage 2
Architecture d’ORACLE:
3
Architecture d’ORACLE:
4
Architecture d’ORACLE:
5
Architecture d’ORACLE:
Problème:
Solution:
Une zone SQL partagée est créée (Shared SQL Area) afin de
stocker les plans d’exécution pour des utilisateurs ultérieurs.
Le serveur ORACLE prend le plan d’exécution stocké dans la zone
partagée et le gère vers le PGA (Program Global Area) de
l’utilisateur.
7
Architecture d’ORACLE:
SGA (System Global Area): est une zone mémoire partagée par
tous les utilisateurs.
Le SGA est plus gros que les PGA, près de 80% de la mémoire
totale. Nous stockons donc une très grande partie de données dans
les SGA.
8
Architecture d’ORACLE:
Le serveur ORACLE dispose de nombreuses mémoires caches pour
augmenter les performances.
Shared pool: est un très grand cache comprenant des sous caches
comme Library cache, Result cache, Data dictionary cache, etc.
chaque cache est spécialisé à des fins différentes.
Exécuter une requête n’est pas une tache très simple. Il a besoin
de beaucoup de lectures de disque et de cycles CPU.et la lecture du
disque est une opération très couteuse.
10
Architecture d’ORACLE:
11
Architecture d’ORACLE:
Redo Log Buffer: est une zone qui permet de conserver l’état
initial des valeurs modifiées avec des informations spécifiques sur
ces valeurs. De cette façon, les valeurs peuvent revenir facilement
à leur état initial avec les données de journalisation.
12
Stockage des données:
13
ORACLE Vs SQL Server
Data File Data File Data File Data File Data File Data File
14
Stockage des données:
15
Stockage des données:
Le reste du bloc a les lignes et quelques espaces vides.
Ces espaces sont importants. Parce que, si vous effectuez une mise
à jour et vous augmentez la taille d’une ligne, il sera couteux de
prendre cette ligne et de la transporter à un endroit de ce bloc ou
bien à un autre bloc.
17
Données d’annulation (Undo):
Lorsqu’une transaction modifie des données, le serveur de base de
données copie les données d’origine du disque et les stocke dans la
mémoire avant de les modifier. La copie originale des données
associées est appelée « données d’annulation ». Ensuite, une autre
copie des données associées est également écrite dans le buffer
cache et toutes les modifications sont effectuées dans ce bloc.
18
Optimisation du système
19
Optimisation du système
Etapes de l’optimisation
La réflexion sur les performances doit donc prendre place dès les premiers
moments du projet, et durant toute son évolution :
modélisation, choix du matériel, installation, organisation du stockage
physique et logique (une bonne indexation des tables est naturellement
déterminante), codage SQL, supervision du serveur…
20
Sécurité
Etapes de l’optimisation
21
Sécurité
Etapes de l’optimisation
22
Sécurité
Optimisation?
Simplicité;
Lisibilité;
Performance.
23
SQL Tuning basique:
Moments de réglage des requêtes:
24
SQL Tuning basique:
Quand décidez-vous de régler une requête SQL:
25
SQL Tuning basique:
Qu'est ce qui peut ralentir une requête SQL?
26
SQL Tuning basique:
Bad SQL?
• Temps d’analyse
• Opérations I/O non nécessaires
• Temps du CPU excessif
• Temps d’attente excessif
27
SQL Tuning basique:
La performance des requêtes peut être affectée par:
• Temps d’analyse
• Opérations I/O
28
SQL Tuning basique:
La performance des requêtes peut être affectée par:
Les jointures, les tris, les calculs, etc. ces opérations sont
effectuées par le processeur et la mémoire. Si ces opérations sont
faites avec de mauvaises méthodes, les requêtes consommeront
trop de cycles CPU.
29
SQL Tuning basique:
Généralement Bad SQL est dû à:
30
SQL Tuning basique:
Schéma de BD:
• Assurer la normalisation.
• Assurer la normalisation.
Stock les lignes de données dans une structure triée. Chaque table ne
comporte qu’un seul index clusterisé (table en cluster).
33
Partitionnement des tables et des index
Fonctionnalités avancées:
Objectif:
34
Partitionnement des tables et des index
35
Partitionnement des tables et des index
Table Commandes
36
Partitionnement des tables et des index
37
Partitionnement des tables et des index
Tablespace 1
38
Partitionnement des tables et des index
Import de données
Tablespace 1
39
Partitionnement des tables et des index
Import de données
Tablespace 1
40
Partitionnement des tables et des index
Archivage de données
41
Partitionnement des tables et des index
Table Commandes
42
Partitionnement des tables et des index
Exemple:
43
Processus d’exécution d’une requête SQL
44
Processus d’exécution d’une requête SQL
Avec un bon plan d’exécution les requêtes peuvent s’exécuter peut-être 100
fois plus vite ou peut être plus. Cela réduit absolument le coût du matériel et
permet d’avoir une satisfaction des utilisateurs.
45
Processus d’exécution d’une requête SQL
Fonctionnement de l’Optimizer:
Vérification des
statistiques pour
choisir un chemin
L’utilisation d’un
index n’est pas un
moyen efficace
46
Processus d’exécution d’une requête SQL
Fonctionnement de l’Optimizer:
3- Vérification du coût
de la requête
(disque+cpu+mémoire)
47
Processus d’exécution d’une requête SQL
N.B:
Il s’agit d’une estimation basée sur les statistiques. Mais le coût réel ne peut
être connu qu’après l’exécution de la requête.
Les statistiques sont recueillies à des moments précis, mais les données
réelles changent instantanément. Ainsi, l’estimateur estime le coût de la
requête et renvoie le coût estimé.
48
Processus d’exécution d’une requête SQL
Query Transformer:
49
Processus d’exécution d’une requête SQL
Query Transformer:
Exemple:
50
Processus d’exécution d’une requête SQL
Query Transformer:
Exemple:
Opération
coûteuse
Index
51