Trouver le temps d'Exécution de la requête à l'aide de SQL Developer
Je suis débutant avec Oracle DB.
Je veux savoir le temps d'exécution pour une requête. Cette requête retourne autour de 20 000 enregistrements.
Quand je vois le SQL Developer, il montre que 50 lignes, maximum tweakable à 500. Et à l'aide de la touche F5 jusqu'à 5000.
Je l'aurais fait en apportant des modifications dans la demande, mais l'application de redéploiement n'est pas possible car il est en cours d'exécution sur la production.
Donc, je suis limité à l'utilisation de SQL Developer. Je ne suis pas sûr de savoir comment obtenir les secondes passées pour l'exécution de la requête ?
Des idées sur ce que cela va m'aider.
Merci.
Ce qui concerne,
JE
Vous devez vous connecter pour publier un commentaire.
Si vous faites défiler vers le passé les 50 lignes au départ retourné, il récupère plus. Quand je veux tous, je viens de cliquer sur la première de la de 50, puis appuyez sur CtrlFin pour faire défiler tout le chemin vers le bas.
Cela permettra de mettre à jour l'affichage de l'heure qui a été utilisé (juste au-dessus des résultats, il va dire quelque chose comme "Toutes les Lignes Récupérées: 20000 dans le 3.606 secondes"), vous donnant un temps précis pour la requête complète.
Si votre déclaration est en partie déjà déployé application et si vous avez les droits pour accéder à la vue
V$SQLAREA
, vous pouvez vérifier le nombre deEXECUTIONS
etCPU_TIME
. Vous pouvez rechercher l'instruction en utilisantSQL_TEXT
:C'est la méthode la plus précise pour déterminer le moment de l'exécution. La vue
V$SESSION_LONGOPS
peut également être intéressant pour vous.Si vous n'avez pas accès à ces points de vue, vous pouvez également utiliser un curseur de boucle pour la course à travers tous les enregistrements, par exemple
En fonction de l'architecture cela peut être plus ou moins précis, car les données peuvent être transmis au système sur lequel SQL est en cours d'exécution sur.
Vous pouvez modifier ces limites; mais vous serez en utilisant peu de temps dans le transfert de données entre le DB et le client, et peut-être pour l'affichage; et qui serait à son tour affecté par le nombre de lignes tiré par chaque extraction. Ces choses affectent votre application en tant que bien, donc en regardant le cru le temps d'exécution peut ne pas vous raconter toute l'histoire de toute façon.
Pour modifier la feuille de calcul (F5) limite, allez dans Outils->Préférences->Base de données->Feuille de calcul, et d'augmenter le "maximum de lignes à imprimer dans un script de valeur (et peut-être "lignes Max. en sortie du Script'). Pour modifier la taille de l'extraction aller à la Base de données->Avancé dans le panneau des préférences; peut-être pour correspondre à votre application valeur.
Ce n'est pas parfait, mais si vous ne voulez pas voir les données réelles, juste le temps qu'il faut pour exécuter dans la base de données, vous pouvez l'envelopper de la requête pour obtenir une seule ligne:
Il sera normalement exécuter l'ensemble de la requête d'origine et de compter les résultats, qui ne sera pas ajouter quelque chose de significatif à la fois. (Il est réalisable qu'il pourrait réécrire la requête en interne je suppose, mais je pense que c'est peu probable, et vous pouvez utiliser des astuces pour l'éviter si nécessaire).
FIRST_ROWS
ouALL_ROWS
. Je pouvais penser à des exemples où le résultat peut varier beaucoup. De toute façon, c'est au moins une solution simple qui devrait fonctionner dans tous les cas 🙂