Maison  >  Article  >  base de données  >  Comment interroger l'historique dans Oracle

Comment interroger l'historique dans Oracle

PHPz
PHPzoriginal
2023-04-17 16:37:155125parcourir

Dans la base de données Oracle, l'historique des requêtes fait référence à l'historique des opérations de requête, y compris les instructions de requête, l'heure de la requête, les résultats de la requête et d'autres informations connexes. L'historique des requêtes est important pour optimiser les performances de la base de données, résoudre les problèmes et confirmer l'intégrité des données.

Afin d'enregistrer l'historique des requêtes, Oracle propose plusieurs méthodes, que nous présenterons une par une ci-dessous.

  1. Utilisation d'Oracle Auditing

L'audit Oracle est un mécanisme d'enregistrement des opérations effectuées sur une base de données. Nous pouvons enregistrer l'historique des requêtes en activant la fonction d'audit et en définissant des règles d'audit.

Activez la fonction d'audit :

ALTER SYSTEM SET audit_trail=DB SCOPE=SPFILE;

Après avoir activé la fonction d'audit, vous devez également définir des règles d'audit. Vous pouvez définir plusieurs règles selon vos besoins. Par exemple, nous pouvons définir que tous les enregistrements interrogeant plus de 1 000 lignes dans toutes les tables doivent être audités.

CREATE AUDIT POLICY query_audit ACTIONS SELECT TABLE,SELECT ANY TABLE WHERE rowcount > 1000;

Activez les règles ci-dessus :

AUDIT POLICY query_audit;

De cette façon, lorsque la condition d'audit se produit, Oracle l'enregistrera dans l'audit. fichier journal Informations connexes.

Résultats de l'audit de requête :

SELECT nom d'utilisateur, TO_CHAR (horodatage, 'AAAA-MM-JJ HH24:MI:SS'), type_instruction, sql_text, horodatage étendu, code de retour FROM dba_audit_trail WHERE type_instruction = 'SELECT' ET code_retour = 0 ORDER BY timestamp DESC;

Il convient de noter que lorsque la fonction d'audit est activée, le journal d'audit doit être nettoyé régulièrement.

  1. Interroger les vues historiques

Oracle fournit plusieurs vues système pour permettre aux utilisateurs d'interroger les enregistrements historiques. Parmi eux, DBA_HIST_SQLTEXT est utilisé pour enregistrer l'historique des instructions SQL.

Requête de l'historique des instructions SQL :

SELECT sql_text, force_matching_signature, plan_hash_value, last_active_time FROM DBA_HIST_SQLTEXT WHERE sql_text LIKE '%SELECT%' ORDER BY last_active_time DESC ;

L'instruction de requête ci-dessus renverra tout l'historique des instructions SQL commençant par les enregistrements "SELECT" , triés par heure d'activité la plus récente.

  1. Utiliser des outils tiers

En plus des méthodes fournies par Oracle, nous pouvons également utiliser des outils de gestion Oracle basés sur une interface graphique (tels que Toad) pour interroger facilement les enregistrements historiques.

Grâce à l'interface visuelle de Toad, nous pouvons facilement visualiser l'historique SQL, le filtrer et le trier. De plus, Toad fournit également une variété d'outils pour optimiser les performances des requêtes, tels que l'assistant de réglage SQL, l'analyse du plan d'exécution, etc.

On peut dire que l'utilisation d'outils tiers est le moyen le plus pratique et le plus intuitif d'interroger l'historique.

Résumé :

L'historique des requêtes est très important pour la gestion et la maintenance de la base de données Oracle. Oracle propose diverses méthodes pour enregistrer l'historique des requêtes, notamment des mécanismes d'audit, des vues de l'historique des requêtes et des outils tiers. Les utilisateurs peuvent choisir la méthode la plus appropriée pour interroger les enregistrements historiques en fonction des besoins réels. Dans le même temps, vous devez également veiller à nettoyer et à sauvegarder régulièrement l'historique des requêtes pour éviter des problèmes tels qu'une utilisation excessive d'espace disque ou une perte de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn