0% ont trouvé ce document utile (0 vote)
8 vues32 pages

Monetorig SSI

Le document traite des concepts de tuning et de monitoring des bases de données, en distinguant le tuning applicatif, qui vise à optimiser les performances des applications interagissant avec la base de données, et le tuning système, qui se concentre sur l'optimisation des ressources matérielles et des paramètres de configuration. Il aborde également l'importance de la gestion de la mémoire (SGA et PGA), des processus en arrière-plan (DBWR et LGWR), ainsi que de l'optimisation des tablespaces et des datafiles pour améliorer les performances globales. Enfin, le document souligne l'importance de la collecte de statistiques pour assurer une exécution efficace des requêtes par l'optimiseur Oracle.

Transféré par

fatimarahmoune84
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
8 vues32 pages

Monetorig SSI

Le document traite des concepts de tuning et de monitoring des bases de données, en distinguant le tuning applicatif, qui vise à optimiser les performances des applications interagissant avec la base de données, et le tuning système, qui se concentre sur l'optimisation des ressources matérielles et des paramètres de configuration. Il aborde également l'importance de la gestion de la mémoire (SGA et PGA), des processus en arrière-plan (DBWR et LGWR), ainsi que de l'optimisation des tablespaces et des datafiles pour améliorer les performances globales. Enfin, le document souligne l'importance de la collecte de statistiques pour assurer une exécution efficace des requêtes par l'optimiseur Oracle.

Transféré par

fatimarahmoune84
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

02/05/2025

6
Tuning & monitoring des
DBs

Concepts de Tuning

▰ Optimiser les performances


▰ Tuning applicatif vs tuning système
▻ Le tuning applicatif consiste à améliorer l'efficacité des applications qui
interagissent avec la base de données

1
02/05/2025

Tuning applicatif

▰ Tuning applicatif vs Tuning système


▻ L'optimisation peut être réalisée à deux niveaux principaux : l'applicatif et le système. Ces deux approches sont
complémentaires, mais elles diffèrent dans leurs objectifs et les actions qu'elles impliquent.

▻ Le tuning système se réfère à l'optimisation du système sous-jacent qui exécute la base de données, notamment le système
d'exploitation, le matériel (CPU, RAM, disque), et les paramètres de configuration du SGBD

Tuning applicatif
▰ Définition : Le tuning applicatif consiste à améliorer l'efficacité des applications qui interagissent avec la base de
données. Cela peut inclure l'optimisation du code SQL, des algorithmes ou de la logique de traitement dans les
applications qui sollicitent la base de données.
▰ Objectif : Réduire le temps de réponse des requêtes SQL, améliorer la gestion des transactions, réduire le nombre de
requêtes envoyées à la base de données, etc.

▰ Exemples :
• Optimisation des requêtes SQL : Utiliser des index pour accélérer les recherches, éviter les jointures inutiles ou
optimiser l'ordre des clauses dans une requête SQL.
• Réduction des allers-retours : Limiter le nombre de fois qu'une application communique avec la base de données
(par exemple, en regroupant plusieurs petites requêtes en une seule plus efficace).

2
02/05/2025

Tuning système

Tuning système
▰ Définition : Le tuning système se réfère à l'optimisation du système sous-jacent qui exécute la base de données,
notamment le système d'exploitation, le matériel (CPU, RAM, disque), et les paramètres de configuration du SGBD.
▰ Objectif : Améliorer les performances globales du système pour qu'il soit plus capable de gérer les requêtes et les
traitements demandés par l'application. Cela inclut l'optimisation des ressources matérielles et des paramètres
système comme la gestion de la mémoire, le parallélisme, ou les caches.
▰ Exemples :
▻ Optimisation de la mémoire : Configurer la taille du cache de la base de données pour maximiser l'utilisation de
la mémoire disponible.
▻ Optimisation du stockage : Utiliser des SSD plutôt que des disques durs traditionnels pour des performances
plus rapides

Tuning

▰ Objectif :
▻ Réduire temps de réponse et améliorer le débit
▻ Temps de réponse : C'est le temps qu'il faut pour qu'une requête (ou un ensemble de requêtes) retourne un
résultat. Cela peut inclure le temps nécessaire pour récupérer des données ou effectuer des calculs
complexes.
▻ Optimisation du temps de réponse : Cela peut inclure l'indexation des tables, l'optimisation des requêtes
SQL, la réduction du nombre de requêtes ou le partitionnement des données.
▻ Débit (Throughput) : C'est la quantité de travail que le système peut accomplir dans un certain laps de
temps. Dans le cas d'une base de données, cela fait référence à la quantité de données traitées par
seconde.
▻ Optimisation du débit : peut inclure l'optimisation de la parallélisation des requêtes, l'utilisation de
ressources matérielles plus performantes, ou le réglage des paramètres du SGBD pour mieux exploiter le
matériel disponible

3
02/05/2025

Architecture et Performance

▰ Prérequis
▻ Mémoires (SGA, PGA)
▻ Processus (DBWR, LGWR)
▻ Stockage (Tablespaces, Datafiles)
▻ Impact direct sur tuning

Mémoire SGA

▰ La gestion de la mémoire est essentielle pour l’optimisation des performances de la base de données. Il existe deux
types de mémoire principaux dans Oracle :
▻ SGA (System Global Area) et
▻ PGA (Program Global Area).
▰ 1. SGA (System Global Area)
▻ La SGA est une zone mémoire partagée qui contient des informations communes à tous les processus qui accèdent
à la base de données, comme:
▻ les buffers de données,
▻ les informations de cache,
▻ et les structures de contrôle.
▰ Impact sur le tuning
▻ Une SGA mal dimensionnée peut entraîner des ralentissements dans les lectures et écritures de données.
▻ Si la mémoire allouée est trop faible, Oracle doit effectuer davantage de lectures/disques, ce qui ralentit les
performances.
8

4
02/05/2025

▰ Composants de la SGA :
▻ Buffer Cache : Contient les données lues récemment.
▻ Redo Log Buffer : Contient les informations de journalisation des transactions.
▻ Shared Pool : Contient les informations partagées comme les requêtes SQL et les plans d'exécution.

▰ Optimisation de la SGA :
▻ Ajuster la taille du Buffer Cache pour stocker davantage de données fréquemment utilisées.
▻ Utiliser la commande ALTER SYSTEM SET DB_CACHE_SIZE pour augmenter ou diminuer la taille du cache en
fonction des besoins.

▰ Le Buffer Cache dans la SGA


▻ Le Buffer Cache est une zone mémoire dans la SGA qui stocke les blocs de données récemment accédés. Si la
taille de ce cache est insuffisante, Oracle devra fréquemment accéder aux disques pour récupérer des données,
ce qui ralentit les performances.
▻ Un ajustement de la taille du Buffer Cache permet de garder plus de données en mémoire, réduisant ainsi le
nombre d'accès au disque.
▰ Objectif du tuning du Buffer Cache
▻ Réduire la fréquence des lectures disque : Si les données sont déjà dans le Buffer Cache, Oracle peut les lire
directement en mémoire sans avoir besoin d'effectuer une opération coûteuse sur disque.
▻ Optimiser les performances des requêtes : Une augmentation du Buffer Cache permet de réduire les latences de
lecture et d'écriture.

10

5
02/05/2025

▰ Ajuster la taille de la SGA et du Buffer Cache :


▻ 1. Vérifier la taille actuelle du Buffer Cache : la vue dynamique V$SGA pour vérifier la taille du Buffer Cache
dans la SGA.

▻ 2. Ajuster la taille du Buffer Cache : à l'aide du paramètre DB_CACHE_SIZE.

▻ Exemple : ALTER SYSTEM SET DB_CACHE_SIZE = 2G SCOPE = BOTH;


▻ 3. Ajuster la taille de la SGA entière : Afin d’ajuster la taille totale de la SGA ( inclure tous les sous-composants,
y compris le Buffer Cache) → SGA_TARGET

11

▰ Suivi de l'impact du Buffer Cache


▻ Suivre le hit ratio du Buffer Cache : afin de vérifier l'efficacité du Buffer Cache, consulter le ratio de hits à l'aide
de la vue dynamique V$BUFFER_POOL ou V$SGASTAT :

▻ Un hit ratio élevé indique que la plupart des lectures sont satisfaites en mémoire → performances
optimales
▻ Si le ratio est faible → beaucoup de lectures se font directement sur disque, et une augmentation du
Buffer Cache pourrait être nécessaire.

12

6
02/05/2025

Mémoire SGA

▰ La gestion de la mémoire est essentielle pour l’optimisation des performances de la base de données. Il existe deux
types de mémoire principaux dans Oracle :
▻ SGA (System Global Area) et
▻ PGA (Program Global Area).
▰ 2. PGA (Program Global Area).
▻ La PGA est une zone de mémoire privée pour chaque processus utilisateur.
▻ Elle contient les informations spécifiques à l'exécution de chaque requête, comme les résultats temporaires et
les variables locales.
▰ Impact sur le tuning : Si la PGA est trop petite, les processus peuvent être contraints de traiter les données
temporairement sur disque (plutôt qu'en mémoire), ce qui ralentit les performances.

▰ Optimisation de la PGA :
▻ Ajuster la taille de la PGA avec le paramètre PGA_AGGREGATE_TARGET.
▻ Surveiller l’utilisation de la PGA avec des outils comme V$PGASTAT pour détecter les processus gourmands en
mémoire. 13

Processus (DBWR et LGWR)

▰ Oracle utilise plusieurs processus en arrière-plan pour gérer l’entrée/sortie des données et maintenir la cohérence de la
base de données.
▰ DBWR (Database Writer)
▻ Le processus DBWR est responsable de l’écriture des blocs modifiés dans la base de données (de la mémoire
vers le disque).
▰ Impact sur le tuning :
▻ Si le processus DBWR est trop lent (par exemple en raison d'une mémoire cache insuffisante), cela peut entraîner un
retard dans l’écriture des données, augmentant ainsi le temps d'attente pour les autres opérations.

▻ Un tuning approprié de la SGA (en particulier le Buffer Cache) peut réduire la fréquence des écritures en forçant
moins de passages sur disque.

14

7
02/05/2025

Processus (DBWR et LGWR)

▰ Oracle utilise plusieurs processus en arrière-plan pour gérer l’entrée/sortie des données et maintenir la cohérence de la
base de données.
▰ LGWR (Log Writer)
▻ Le processus LGWR écrit les informations de journalisation (redo logs) pour garantir la durabilité des
transactions.
▻ Cela se produit de manière asynchrone, en arrière-plan.

▰ Impact sur le tuning : Des temps de latence élevés pour le processus LGWR peuvent entraîner un retard dans la gestion
des transactions et affecter les performances.
▻ Si LGWR écrit lentement les informations dans les redo logs → entraîner une latence élevée dans le processus
de validation des transactions et affecter la performance globale de la base de données.
▻ Des temps de latence élevés pour LGWR peuvent aussi ralentir la gestion des transactions et donc affecter la
capacité d'Oracle à valider rapidement les transactions, ce qui a un impact négatif sur les applications.
▻ Il est important d'optimiser les redo logs (en utilisant des disques rapides) et de surveiller les write-ahead logs.

15

▰ 1. Vérification de l'état du processus LGWR

▰ 2. Optimisation des fichiers redo logs (disques rapides) :


▻ Vérifier les fichiers redo logs :

▻ Ajuster la taille des redo logs :

16

8
02/05/2025

▰ 3. Optimisation du processus LGWR en ajustant les paramètres :


▻ LOG_BUFFER : La taille du buffer utilisé par LGWR pour stocker temporairement les informations avant de les
écrire sur les redo logs. Augmenter ce paramètre peut réduire les écritures fréquentes.

▻ LOG_FILE_SYNC : Ce paramètre définit si le processus LGWR doit attendre la confirmation de l'écriture du fichier
de redo log. Il est conseillé de ne pas trop restreindre ce paramètre pour éviter des latences excessives.
▻ Ce paramètre peut être ajuster dans le pfile/spfile.

▰ 4. Surveillance des écritures redo log et latence :

17

Architecture et Performance

▰ Prérequis
▻ Mémoires (SGA, PGA)
▻ Processus (DBWR, LGWR)
▻ Stockage (Tablespaces, Datafiles)
▻ Les tablespaces et datafiles jouent un rôle essentiel dans le stockage physique
des données et peuvent influencer les performances de manière significative.

▻ Impact direct sur tuning

9
02/05/2025

Stockage (Tablespaces, Datafiles)

▰ Tablespaces
▻ Un tablespace est une unité logique de stockage dans Oracle qui regroupe plusieurs datafiles.
▻ Un tablespace est utilisé pour organiser les objets de la base de données (tables, index, etc.).

▰ Impact sur le tuning :


▻ Le placement des tablespaces sur des disques différents peut optimiser l'accès aux données.
▻ Par exemple, vous pouvez placer des tablespaces dédiés aux index et aux tables sur des disques séparés pour éviter
les conflits d'accès.
▰ Optimisation des tablespaces :
▻ Utiliser des tablespaces distincts pour les index et les tables de données pour améliorer la performance des
lectures et écritures.
▻ Veiller à ce que les tablespaces soient correctement dimensionnés et à l’utilisation de la gestion automatique
des segments (AUTOMATIC STORAGE MANAGEMENT - ASM) dans les environnements Oracle
▻ La gestion automatique des segments (ASM) dans Oracle permet une gestion plus simple et plus efficace des fichiers
de données dans des environnements Oracle. ASM simplifie la gestion des tablespaces et optimise la performance des 19
E/S.

▰ 1. Vérification de l'utilisation des Tablespaces

▰ vérifier l'espace libre au niveau des tablespaces

20

10
02/05/2025

▰ Datafiles
▻ Définition : Les datafiles sont des fichiers physiques qui stockent les données dans les tablespaces.
▰ Impact sur le tuning :
▻ Le nombre de datafiles et leur taille peuvent influencer la gestion de l'espace disque et la vitesse des opérations
de lecture/écriture.
▻ Trop de datafiles ou des datafiles mal répartis peuvent entraîner des goulots d'étranglement.
▰ Optimisation des datafiles :
▻ Utiliser la répartition automatique des datafiles avec Automatic Storage Management pour optimiser la
distribution des données sur plusieurs disques.
▻ Resize les datafiles pour éviter les problèmes de croissance inattendue et les tablespaces plein.

21

Collecte des Statistiques

▰ Importance des statistiques d'optimiseur


▻ L'optimiseur Oracle utilise des statistiques pour choisir le meilleur plan d'exécution des requêtes.
▻ Des statistiques obsolètes ou manquantes peuvent entraîner :
▻ Des plans d'exécution inefficaces, augmentant ainsi le temps de réponse des requêtes.
▻ Une mauvaise répartition des ressources, affectant ainsi la performance globale de la base de
données
▰ Objectif principal des statistiques est d’améliorer l'efficacité des requêtes et assurer une utilisation optimale des
ressources en ajustant la stratégie de l'optimiseur.

11
02/05/2025

Collecte des Statistiques

▰ Méthodes pour Collecter les Statistiques d'Optimiseur


▻ DBMS_STATS: principalement utilisé par les administrateurs de bases de données (DBA) pour gérer et optimiser
les statistiques dans une base de données Oracle
▻ Statistiques automatiques

▰ 1. DBMS_STATS :
▻ Le package DBMS_STATS est utilisé pour collecter, gérer et analyser les statistiques des objets de la base de
données.
▻ Il permet de collecter des statistiques sur les tables, index, et autres objets pour permettre à l'optimiseur de
prendre des décisions informées.
▻ Exemple de commande :

Collecte des Statistiques

▰ Méthodes pour Collecter les Statistiques d'Optimiseur


▰ 1. DBMS_STATS :
▻ Utilisation des statistiques incrémentielles : La collecte incrémentielle permet de mettre à jour uniquement les
statistiques des objets qui ont changé, plutôt que de recalculer toutes les statistiques à chaque fois.

▻ Mise à jour des statistiques existantes : Si des statistiques sont déjà présentes et qu'un DBA souhaite les mettre
à jour pour refléter les changements dans les données, il peut utiliser la même commande que pour la collecte :

▻ Suppression des statistiques obsolètes

12
02/05/2025

Collecte des Statistiques

▰ Méthodes pour Collecter les Statistiques d'Optimiseur


▰ 1. DBMS_STATS :
▻ Quand utiliser DBMS_STAT?
▻ Après des modifications significatives de données : Lors de l'ajout, de la suppression ou de la mise à
jour d'un grand volume de données dans des tables, il est nécessaire de mettre à jour les statistiques.

▻ Sur une base régulière : Les statistiques doivent être mises à jour de manière régulière pour refléter les
changements dans les données et maintenir des performances optimales.

▻ Après la création de nouveaux objets (par exemple, de nouvelles tables ou index) : Il est conseillé de
collecter immédiatement les statistiques sur ces objets pour que l'optimiseur puisse en tenir compte dès la
première exécution de requêtes

Collecte des Statistiques

▰ Méthodes pour Collecter les Statistiques d'Optimiseur


▰ 2. Statistiques automatiques
▻ Oracle peut être configuré pour collecter automatiquement des statistiques en arrière-plan (notamment sur les
objets fréquemment utilisés).
▻ Cela peut être activé via les paramètres de la base de données pour une mise à jour automatique des
statistiques à intervalles réguliers.
▻ 1. vérification

▻ 2. activation

13
02/05/2025

Collecte des Statistiques

▰ Méthodes pour Collecter les Statistiques d'Optimiseur


▰ 2. Statistiques automatiques
▻ 3. désactivation

Indexation

▰ Types d'index :
▻ B-tree
▻ Bitmap
▰ Choix de l'index selon :
▻ Cardinalité
▻ Type de requêtes

14
02/05/2025

Vues Matérialisées

▰ Stocker le résultat de requêtes complexes


▻ Rafraîchissement :
▻ On commit
▻ On demand
▰ Exemple :
CREATE MATERIALIZED VIEW mv_sales_summary
AS SELECT region, SUM(sales)
FROM sales
GROUP BY region;

Optimisation des Requêtes

▰ Deux types d’optimisation


▻ Optimisation par règles
▻ Optimisation par coût
▻ Utilisation des hints :
▻ Exempe
▻ SELECT /*+ INDEX(emp emp_name_idx) */ *
FROM employees emp
WHERE last_name = ‘FERRAHI';

15
02/05/2025

Monitoring : Concepts

▰ Surveillance de l'activité de la base


▻ La surveillance de l'activité de la base de données est cruciale pour assurer des performances optimales et
identifier les problèmes potentiels avant qu'ils n'affectent le fonctionnement de l'application.
▰ Paramètres clés à surveiller :
▻ Temps de réponse
▻ Consommation CPU/mémoire
▻ I/O disque
▻ Verrous

Monitoring : Concepts

▰ Paramètres clés à surveiller :


▰ 1. Surveillance du temps de réponse :
▻ Temps de réponse global : Ce paramètre mesure le temps total pour exécuter une requête ou une transaction
complète.

▻ ELAPSED_TIME : Temps total écoulé pour l'exécution de la requête.


▻ CPU_TIME : Temps de processeur utilisé pour l'exécution.
▻ DISK_READS et BUFFER_GETS : Indicateurs de l'efficacité des accès aux données en mémoire et sur
disque.
▻ Surveillance des temps de réponse par requête : utiliser les vues V$SQLAREA et V$SESSION pour surveiller le
temps d'exécution des requêtes en cours :

16
02/05/2025

Monitoring : Concepts

▰ Paramètres clés à surveiller :


▰ 2. Consommation CPU/Mémoire
▻ La surveillance de la consommation CPU et mémoire permet de s'assurer que la base de données ne consomme
pas trop de ressources système, ce qui pourrait nuire aux performances globales.
▻ Pour la Surveillance de la consommation CPU , utiliser la vue V$SYSSTAT pour surveiller les statistiques liées à
l'utilisation du processeur.

▻ Exemples de stats : Exmples de statistiques :


▻ CPU used by this session : Montre l'utilisation du CPU par la session en cours.
▻ CPU used by DBWR : Montre l'utilisation du CPU par le processus DBWR (Database Writer).

Monitoring : Concepts

▰ Paramètres clés à surveiller :


▰ 2. Consommation CPU/Mémoire
▻ La surveillance de la consommation CPU et mémoire permet de s'assurer que la base de données ne consomme
pas trop de ressources système, ce qui pourrait nuire aux performances globales.
▻ Surveillance de la mémoire (SGA et PGA) :
▻ La SGA (System Global Area) stocke des informations partagées

▻ La PGA (Program Global Area) stocke des informations spécifiques à chaque session (PGA).

17
02/05/2025

Monitoring : Concepts

▰ Paramètres clés à surveiller :


▰ 3. I/O disque
▻ Les opérations d'entrée/sortie (I/O) sont un facteur important dans les performances des bases de données, en
particulier pour les systèmes avec des volumes importants de données.
▻ Surveillance des lectures et écritures disque :

▻ PHYSICAL_READS : Nombre de lectures physiques depuis le disque.

▻ PHYSICAL_WRITES : Nombre d'écritures physiques sur le disque.

▻ I/O_OPERATIONS : Somme des lectures et écritures, donnant une idée de l'activité globale d'I/O pour chaque fichier de la
base de données.

Monitoring : Concepts

▰ Paramètres clés à surveiller :


▰ 3. I/O disque
▻ Les opérations d'entrée/sortie (I/O) sont un facteur important dans les performances des bases de données, en
particulier pour les systèmes avec des volumes importants de données.
▻ Surveillance des accès à des fichiers spécifiques :

18
02/05/2025

Monitoring : Concepts

▰ Paramètres clés à surveiller :


▰ 4. Verro
▻ Les verrous peuvent sérieusement impacter la performance de la base de données si des transactions attendent
longtemps pour obtenir un verrou, ce qui peut entraîner des blocages.
▻ Surveillance des verrous dans la base de données :
▻ Les vues V$LOCK et V$SESSION sont couramment utilisées pour surveiller les verrous dans Oracle.

▻ lmode : Type de verrou détenu (par exemple, un verrou partagé ou exclusif).


▻ request : Type de verrou demandé (si une session attend un verrou).
▻ block : Indicateur de blocage (si une session bloque une autre).

Monitoring : Concepts

▰ Paramètres clés à surveiller :


▰ 4. Verro
▻ Les verrous peuvent sérieusement impacter la performance de la base de données si des transactions attendent
longtemps pour obtenir un verrou, ce qui peut entraîner des blocages.
▻ Surveillance des verrous dans la base de données :
▻ Identifier les sessions en attente de verrous :

19
02/05/2025

Outils de Monitoring

▰ V$VIEWS :
▻ V$SESSION
▻ V$SQL
▻ V$SYSTEM_EVENT
▰ Enterprise Manager (OEM)

Outils de Monitoring

▰ La vue V$SESSION
▻ fournit des informations détaillées sur les sessions Oracle actives dans la base de données.
▻ Elle permet de voir quel utilisateur est connecté, ce qu'il fait, et d'obtenir des détails sur ses ressources et ses
verrous.

▻ SID : L'ID de session unique dans la base de données.


▻ SERIAL# : Le numéro de série pour identifier de manière unique une session.
▻ USERNAME : Le nom d'utilisateur connecté.
▻ STATUS : Le statut de la session (par exemple, ACTIVE, INACTIVE).
▻ OSUSER : Le nom de l'utilisateur du système d'exploitation.
▻ MACHINE : Le nom de la machine sur laquelle la session est ouverte.
▻ PROGRAM : Le programme client utilisé pour se connecter à la base de données.
▻ SQL_ID : L'ID de la requête SQL en cours d'exécution.

20
02/05/2025

▰ La vue V$SESSION
▻ Exemple d’utilisation : Surveiller une session spécifique et ses activités SQL,
▻ Récupérer le SQL_ID et observer l'état de la requête :

▻ permet de suivre exactement ce que fait une session dans la base de données en
termes de requêtes SQL.

41

Outils de Monitoring

▰ V$SQL
▻ La vue V$SQL fournit des informations sur les requêtes SQL exécutées dans la base de données.

▻ Elle contient des statistiques de performance et des informations sur les plans d'exécution des requêtes.
▻ Exemple de commande pour afficher les requêtes SQL exécutées :

▻ SQL_ID : L'ID unique de la requête SQL.


▻ SQL_TEXT : Le texte de la requête SQL.
▻ EXECUTIONS : Le nombre d'exécutions de la requête.
▻ ELAPSED_TIME : Le temps total écoulé pour l'exécution de la requête.
▻ CPU_TIME : Le temps processeur utilisé par la requête.

21
02/05/2025

Outils de Monitoring

▰ V$SQL
▻ Exemple d'utilisation : Si une requête prend beaucoup de temps à s'exécuter, vous pouvez identifier la requête à
l'aide de son SQL_ID et optimiser son exécution :

▻ Ce qui permet d'obtenir des informations sur le plan d'exécution et de rechercher des goulets d'étranglement
dans l'exécution de la requête

Outils de Monitoring

▰ V$SYSTEM_EVENT
▻ La vue V$SYSTEM_EVENT donne des informations sur les événements système qui se produisent au niveau de la
base de données, comme les événements d'attente, qui peuvent indiquer des problèmes de performance.
▻ Exemple de commande pour afficher les événements système :

▻ EVENT : Le nom de l'événement système (par exemple, "db file sequential read", "log file
sync").
▻ TOTAL_WAITS : Le nombre total d'attentes pour cet événement.
▻ TIME_WAITED : Le temps total d'attente pour cet événement.
▻ AVERAGE_WAIT : Le temps moyen d'attente pour cet événement.

22
02/05/2025

Outils de Monitoring

▰ V$SYSTEM_EVENT
▻ La vue V$SYSTEM_EVENT donne des informations sur les événements système qui se produisent au niveau de la
base de données, comme les événements d'attente, qui peuvent indiquer des problèmes de performance.
▻ Exemple d’utilisation : Si vous remarquez un événement d'attente particulièrement élevé, comme une attente
pour les fichiers de données → enquêter sur le problème à l'aide de V$SESSION pour identifier la session qui
attend cet événement.

▻ Cela permet d'identifier les sessions bloquées en raison de problèmes d'accès au disque.

▰ Enterprise Manager (OEM)


▻ Oracle Enterprise Manager (OEM) est un outil graphique permettant de surveiller et de gérer les bases de
données Oracle.
▻ Il fournit des informations sur la santé, les performances et la configuration des bases de données, ainsi que des
fonctionnalités d'automatisation.
▰ Moniteur de performance : Permet de suivre les temps de réponse, les requêtes lentes, et d'autres métriques de
performance.
▻ Alertes : OEM peut générer des alertes basées sur des seuils de performance, vous avertissant lorsque des
problèmes sont détectés.
▻ Tuning : Vous pouvez utiliser OEM pour appliquer des recommandations de tuning, surveiller les redémarrages,
et ajuster les configurations du SGBD.

46

23
02/05/2025

Utilisation des Advisors

▰ Les Advisors dans Oracle Database


▻ sont des outils automatiques utilisés pour recommander des actions afin d'optimiser la performance, la sécurité,
ou la gestion de la base de données.
▻ Ils analysent les configurations existantes, les charges de travail, et les comportements du système, puis
proposent des suggestions pour améliorer les performances ou résoudre des problèmes spécifiques.

▰ Types d'Advisors dans Oracle


▻ SQL Tuning Advisor
▻ Memory Advisor
▻ Segment Advisor
▻ Undo Advisor
▻ Space Advisor
▻ Data Guard Advisor

▰ SQL Tuning Advisor


▻ Il évalue les requêtes SQL lentes ou problématiques et propose des ajustements pour améliorer leur
performance.
Exemple d'utilisation :
▰ Pour utiliser le SQL Tuning Advisor sur une requête SQL spécifique :

▰ Ensuite, pour exécuter le tuning de la tâche :

▰ Une fois que la tâche est exécutée, vous pouvez obtenir les recommandations :

48

24
02/05/2025

▰ Memory Adviso
▻ Aide à ajuster les paramètres liés à la mémoire, comme la SGA (System Global Area) et la PGA (Program Global
Area), pour optimiser les performances.
▻ Exemple d'utilisation :

▻ Cette tâche permet d’ analyser l'utilisation de la mémoire et obtenir des recommandations sur la manière
d'ajuster les tailles de mémoire pour améliorer la performance de la base de données.

49

▰ Segment Adviso
▻ examine les tables et les index pour recommander des actions comme la réorganisation, la compression ou la
suppression de segments inutilisés.
▻ Exemple d'utilisation :

▻ Une fois la tâche exécutée, vous pouvez obtenir un rapport des actions recommandées.

50

25
02/05/2025

▰ Space Adviso
▻ Aide à la gestion des tablespaces, en particulier pour réduire la fragmentation ou gérer l'extension de l'espace
disque.
▻ Exemple d'utilisation :

▻ Le rapport généré par le Space Advisor peut recommander des actions comme la fusion de tablespaces ou la
gestion de l’espace pour les fichiers de données.

51

▰ Space Adviso
▻ Aide à la gestion des tablespaces, en particulier pour réduire la fragmentation ou gérer l'extension de l'espace
disque.
▻ Exemple d'utilisation :

▻ Le rapport généré par le Space Advisor peut recommander des actions comme la fusion de tablespaces ou la
gestion de l’espace pour les fichiers de données.

52

26
02/05/2025

Tuning Mémoire

▰ SGA : Shared Pool, Buffer Cache, Redo Log Buffer


▰ PGA : Espace pour les traitements privés
▰ Paramètres à ajuster :
▻ SGA_TARGET
▻ PGA_AGGREGATE_TARGET

Tuning Stockage

▰ Fragmentation des données


▻ La fragmentation des données se produit lorsque les données sont dispersées à travers les blocs de tablespace
de manière inefficace.
▻ Cette fragmentation peut avoir un impact négatif sur les performances, car l'accès aux données devient plus lent,
nécessitant plus de ressources pour récupérer des informations.

▰ Types de fragmentation :
▻ Fragmentation interne : Lorsque les blocs de données ne sont pas utilisés efficacement (beaucoup de place libre
à l'intérieur des blocs).
▻ La fragmentation interne se produit lorsque les blocs de données dans un segment de table ou d'index
contiennent beaucoup d'espace inutilisé.
▻ Cela arrive souvent lorsqu'une table ou un index est mis à jour, des lignes sont supprimées ou mises à jour
et qu'il reste de l'espace vide dans les blocs.
▻ Cet espace inutilisé dans les blocs de données ne peut pas être réutilisé efficacement pour d'autres
données.

27
02/05/2025

Tuning Stockage

▰ Fragmentation des données


▻ La fragmentation des données se produit lorsque les données sont dispersées à travers les blocs de tablespace
de manière inefficace.
▻ Cette fragmentation peut avoir un impact négatif sur les performances, car l'accès aux données devient plus lent,
nécessitant plus de ressources pour récupérer des informations.

▰ Types de fragmentation :
▻ Fragmentation interne : Lorsque les blocs de données ne sont pas utilisés efficacement (beaucoup de place libre
à l'intérieur des blocs).
▻ Conséquence de la fragmentation interne :
▻ Un grand espace inutilisé reste dans ces blocs.
▻ Les nouveaux enregistrements sont insérés dans ces blocs partiellement remplis, et la gestion de l'espace
devient moins efficace, ce qui augmente l'I/O disque.

Tuning Stockage

▰ Fragmentation des données


▻ La fragmentation des données se produit lorsque les données sont dispersées à travers les blocs de tablespace
de manière inefficace.
▻ Cette fragmentation peut avoir un impact négatif sur les performances, car l'accès aux données devient plus lent,
nécessitant plus de ressources pour récupérer des informations.

▰ Types de fragmentation :
▻ Fragmentation externe : Lorsque les blocs de données sont distribués de manière inefficace sur le disque.
▻ se produit lorsque les blocs de données sont répartis sur différents segments de tablespace de manière
inefficace.
▻ Cela signifie que les segments de données sont répartis de manière dispersée sur l'espace de stockage,
créant des "trous" ou des espaces vides dans les tablespaces, ce qui rend difficile la gestion des données.
▻ Exemple de fragmentation externe : une table employees qui est constamment insérée, mise à jour et supprimée
avec un grand nombre d'opérations. Les segments de données peuvent être déplacés ou divisés entre différents
tablespaces, créant une fragmentation externe.

28
02/05/2025

Tuning Stockage

▰ Fragmentation des données


▻ La fragmentation des données se produit lorsque les données sont dispersées à travers les blocs de tablespace
de manière inefficace.
▻ Cette fragmentation peut avoir un impact négatif sur les performances, car l'accès aux données devient plus lent,
nécessitant plus de ressources pour récupérer des informations.

▰ Types de fragmentation :
▻ Fragmentation externe : Lorsque les blocs de données sont distribués de manière inefficace sur le disque.
▻ Conséquence de la fragmentation externe :
▻ Les données sont dispersées sur plusieurs fichiers de données et tablespaces, rendant l'accès aux données moins
efficace.

▻ Cela peut également augmenter le nombre d'opérations I/O nécessaires pour récupérer les données, car la base de
données doit rechercher plusieurs zones du disque.

Tuning Stockage

▰ Fragmentation des données


▻ Impact sur les performances :
▻ I/O élevé : La lecture des données fragmentées nécessite plus d'opérations d'entrée/sortie, ce qui
augmente le temps de réponse.
▻ Utilisation excessive d'espace : Les espaces non utilisés dans les blocs augmentent les besoins en
stockage.

29
02/05/2025

▰ Solutions pour réduire la fragmentation :


▻ Réorganisation des segments : Utilisez la commande ALTER TABLE pour réorganiser les segments de données afin
de libérer les espaces non utilisés.
▻ Fusionner des tablespaces fragmentés.
▻ Compression : L'application de la compression sur les données peut réduire la fragmentation en optimisant
l'utilisation de l'espace.

59

▰ Partitionnement des données permet de diviser une grande table ou un index en plusieurs partitions plus petites, ce qui
facilite la gestion et améliore les performances des requêtes.
▰ Types de partitionnement :
▻ Partitionnement par plage : Les données sont divisées en partitions basées sur une plage de valeurs, comme une
plage de dates.
▻ Partitionnement par liste : Les données sont divisées en partitions basées sur des valeurs spécifiques (par
exemple, les régions géographiques).
▻ Partitionnement par hachage : Les données sont réparties sur plusieurs partitions en fonction d'une fonction de
hachage.
▻ Partitionnement composite : Une combinaison des types de partitionnement ci-dessus.

60

30
02/05/2025

▰ Avantages du partitionnement :
▻ Amélioration des performances de requête :
▻ Les requêtes peuvent être exécutées plus rapidement en accédant uniquement
à la partition pertinente.
▻ Maintenance plus facile :
▻ Gestion , archive et supprestion des partitions individuelles sans affecter
l'ensemble de la table.
▻ Réduction des conflits de verrouillage :
▻ Accès concurrent à différentes partitions peut être optimisé.

61

Compression des données

▰ La compression des données consiste à stocker les données de manière à réduire la quantité d'espace disque
nécessaire tout en maintenant la capacité de lecture et d'écriture rapide.
▰ Types de compression :
▻ Compression de table : Réduit l'espace de stockage utilisé par une table.
▻ Compression de données à chaud (ou Advanced Compression) : Utilisée pour les tables fréquemment mises à
jour ou consultées.
▻ Compression de données à froid : Utilisée pour les données rarement utilisées.

62

31
02/05/2025

Compression des données

▰ La compression des données


▰ Avantages de la compression :
▻ Réduction de l'espace de stockage : Réduit la quantité d'espace nécessaire pour stocker les données.
▻ Amélioration des performances d'I/O : Moins de données sont lues en mémoire, ce qui peut accélérer les
performances dans certaines situations.
▻ Réduction des coûts de stockage : Un impact direct sur les coûts d'infrastructure de stockage.

63

32

Vous aimerez peut-être aussi