Oracle: est-il un outil de trace des requêtes, comme le générateur de profils sql server?
je travaille avec sql server, mais je dois migrer vers une application avec Oracle DB.
pour suivre ma demande de requêtes dans Sql Server j'utilise merveilleux outil générateur de profils. il ya quelque chose d'équivalent pour Oracle?
- Pourquoi avez-vous accepté une mauvaise réponse? Expliquer le plan ne fait PAS ce que le profileur n'. C'est totalement sans rapport.
- avez-vous trouver le meilleur outil comme
sql server profiler
? qu'utilisez-vous maintenant? - J'ai écrit un livre sur le traçage des applications Oracle. Il est disponible en format PDF à l'adresse method-r.com.
- S'il vous plaît, consultez le oracle profiler dans dbForge Studio for Oracle de Devart.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser L'Oracle Enterprise Manager pour surveiller les sessions actives, avec la requête en cours d'exécution, son plan d'exécution, des écluses, des statistiques et même une barre de progression pour les tâches de longue durée.
Voir: http://download.oracle.com/docs/cd/B10501_01/em.920/a96674/db_admin.htm#1013955
Aller à l'Instance -> sessions et de regarder l'Onglet SQL de chaque session.
Il y a d'autres façons. Enterprise manager met juste avec de jolies couleurs ce qui est déjà disponible dans les promos vues comme ceux décrits ici:
http://www.oracle.com/pls/db92/db92.catalog_views?remark=homepage
Et, bien sûr, vous pouvez également utiliser d'Expliquer le PLAN DE, outil de suivi et des tonnes d'autres façons d'instrumentalisation. Il y a certains rapports dans enterprise manager pour le sommet le plus cher de Requêtes SQL. Vous pouvez également rechercher les requêtes récentes conservés dans la mémoire cache.
J'ai trouvé une solution facile
Étape 1. se connecter à la DB avec un admin utilisateur à l'aide de PLSQL ou sqldeveloper ou toute autre interface de requête
Step2. exécuter le script soufflet; dans le S. SQL_TEXT colonne, vous verrez les requêtes exécutées
Le seul problème, c'est que je ne peux pas trouver un moyen d'afficher les valeurs des paramètres d'entrée(pour les appels de fonction), mais au moins nous pouvons voir ce qui est couru dans Oracle et l'ordre sans l'aide d'un outil spécifique.
--ou
-- doit être assez grande:
-- Savoir sid et le numéro de série de la session qui vous intéresse:
--vous pouvez commencer le traçage avec 10046 événement, le quatrième paramètre définit le niveau de trace(12) est le plus grand):
--de désactiver le traçage avec réglage de niveau zéro:
/*niveaux possibles:
0 - désactivé
1 - niveau minimal. Bien comme jeu sql_trace=true
4 - lier les valeurs de variables sont ajoutées au fichier de trace
8 - les temps d'attente sont ajoutés
12 - les deux lier les valeurs de la variable et d'attendre les événements sont ajoutés
*/
--même si vous voulez tracer votre propre session avec un plus grand niveau:
--éteindre:
--fichier avec des informations de suivi sera situé:
--nom du fichier(*.trc) contiendra spid:
--aussi, vous pouvez définir le nom par vous-même:
--enfin, l'utilisation
TKPROF
de faire fichier de trace plus lisible:--à l'état d'affichage de fichier de trace d'utilisation:
Juste une sorte de traduire http://www.sql.ru/faq/faq_topic.aspx?fid=389 d'Origine est plus complet, mais de toute façon c'est mieux que ce que les autres posté à mon humble avis
Essayer PL/SQL Developer il a une belle interface utilisateur simple interface pour le générateur de profils. C'est assez sympa de donner le procès de l'essayer. Je ne jure que par cet outil lorsque l'on travaille sur des bases de données Oracle.
http://www.allroundautomations.com/plsqldev.html?gclid=CM6pz8e04p0CFQjyDAodNXqPDw
GI Oracle Profiler v1.2
C'est un Outils pour Oracle pour capturer les requêtes exécutées similaire à SQL Server Profiler.
Outil Indispensable pour la maintenance d'applications qui utilisent ce serveur de base de données.
vous pouvez le télécharger depuis le site officiel iacosoft.com
Vu que j'ai juste voté à une récente question comme un double et a fait dans cette direction . . .
Un couple de plus dans SQL*Plus - SET AUTOTRACE SUR - donnera expliquer du plan et des statistiques pour chaque instruction exécutée.
CRAPAUD permet également côté client de profilage.
L'inconvénient de ces deux c'est qu'ils ne vous disent le plan d'exécution de l'instruction, mais pas comment l'optimiseur est arrivé à ce plan pour que vous aurez besoin de niveau inférieur serveur de suivi de côté.
Un autre important à comprendre, c'est Statspack instantanés - ils sont une bonne façon pour regarder la performance de la base de données dans son ensemble. Expliquer le plan, etc, sont bons à trouver des instructions SQL qui sont les goulots d'étranglement. Statspack est bon d'identifier le fait que votre problème est que d'une simple déclaration avec un bon plan d'exécution est appelée à 1 million de fois en une minute.
La Capture est de Capturer toutes les SQL exécuté entre deux points dans le temps. Comme la façon dont SQL Server aussi.
Il y a des situations où il est utile pour capturer le SQL qu'un utilisateur est en cours d'exécution dans la base de données. Habituellement, vous devez simplement activer la session de traçage de l'utilisateur, mais il y a deux problèmes avec cette approche.
Un rapide et sale de la solution au problème est de capturer toutes les instructions SQL exécutées entre deux points dans le temps.
La procédure suivante vous permettra de créer deux tables, chacune contenant un instantané de la base de données à un point particulier. Les tableaux seront ensuite interrogés afin de produire une liste de tous les SQL à exécuter au cours de cette période.
Si possible, vous devriez le faire au calme sur un système de développement - dans le cas contraire, vous risquez de trop de données.
Prendre le premier cliché
Exécutez l'instruction sql suivante pour créer le premier instantané:
Obtenir à l'utilisateur d'effectuer leur tâche au sein de l'application.
Prendre la deuxième instantané.
Vérifier les résultats
Maintenant que vous avez capturé le SQL, il est temps de requête, les résultats.
Cette première requête de la liste de tous les hachages de requête qui ont été exécutées:
Celui-ci va afficher le hachage et le SQL lui-même:
ensemble de pages 999 lignes 100
pause sur hash_value
5.
Tidy up N'oubliez pas de supprimer l'instantané tables une fois que vous avez fini:
Oracle, le long de avec d'autres bases de données, analyse une requête donnée pour créer un plan d'exécution. Ce plan est le moyen le plus efficace de récupérer les données.
Oracle fournit le "
explain plan
" déclaration sur l'analyse de la requête, mais ne pas l'exécuter, au lieu de l'alimentation d'une table spéciale que vous pouvez interroger (le plan de table).La syntaxe (version simple, il y a d'autres options comme pour marquer les lignes dans le plan de table avec un ID spécifique, ou d'utiliser un autre plan de table):
L'analyse de ces données est laissé pour une autre question, ou la poursuite de votre recherche.
Il est un outil commercial FlexTracer qui peut être utilisé pour tracer Oracle SQL les requêtes
C'est un Oracle doc expliquant comment tracer les requêtes SQL, y compris un couple d'outils (SQL Trace et de tkprof)
lien
Apparemment, il n'est pas simple à bas prix utilitaire qui permettrait l'exécution de cette tâche. Cependant, il est à 101 de la façon de le faire dans le compliqué et peu pratique façon.
Article suivant décrit plusieurs. Il y a probablement des dizaines d'autres...
http://www.petefinnigan.com/ramblings/how_to_set_trace.htm