2010-10-11 2 views
2

J'ai besoin de collecter des statistiques pour mes longs scripts SQL. Fichiers de script générés par une application Java et exécutés par un pilote de base de données rapide tiers. De cette façon, je ne peux pas utiliser AUTOTRACE, parce que ce n'est pas SQLPlus. Mais pour des raisons de performance, j'ai besoin de connaître les informations sur chaque déclaration dans le script.Oracle AUTOTRACE alternative

Pouvez-vous conseiller des approches ou des pratiques exemplaires? Je regarde dans la direction de STATSPACK et secondairement tkproof. 1. STATSPACK ressemble à une machine qui casse un papillon sur une roue. N'est-ce pas? 2. tkproof a besoin de certains privilèges et je crains que l'utilisateur de l'application Java n'ait pas de tels privilèges.

Y at-il autre chose?

Répondre

1

Vous pouvez obtenir des statistiques de v $ sql:

SELECT q.* 
FROM v$session s 
, v$sql q 
WHERE s.sql_address = q.address 
AND s.sql_hash_value = q.hash_value 
AND s.sid   = :SID 
; 

Il y a aussi v$session_longops qui montre toutes les opérations qui fonctionnent pendant plus de 6 secondes.

+0

il existe des vues v $ mysat et v $ sessstat et bien d'autres. mais il se peut qu'il existe un package léger qui implémente la fonctionnalité SQLPlus AUTOTRACE. – drnk

1

Le seul privilège escaladé dont un utilisateur Oracle a besoin pour générer un fichier de trace est ALTER SESSION. Vous n'en aurez peut-être même pas besoin si votre utilisateur a été exécuté sur SYS.DBMS_MONITOR, car SESSION_TRACE_ENABLE et SESSION_TRACE_DISABLE autorisent l'instanciation du suivi. D'autre part, la récupération du fichier de trace nécessite l'assistance du DBA ou du DBA pour effectuer la configuration afin de permettre aux fichiers de trace d'être publics (une mauvaise idée en production). Dion Cho a un excellent exemple d'activation des fichiers de trace Oracle here.

+0

merci pour le lien utile! C'est une belle approche. mais de cette façon pour les scripts de longue durée, j'ai besoin de pl/sql analogique de tkproof :) je pense à ce sujet. – drnk