2017-06-30 2 views
0

Essentiellement, où je travaille, nous courons une variété de rapports processus qui suivent la même structure de base ...sqlplus se bloque après avoir été appelé à partir d'un fichier de commandes, sans vomir message d'erreur

Un fichier batch appelle un script SQL qui exécute une procédure stockée. Un autre script extrait les données d'Oracle et écrit dans un fichier csv. Enfin, une macro Excel s'exécute pour créer la sortie finale.

Nous avons récemment rencontré un problème où, si la procédure prend plus d'une heure à s'exécuter, elle se bloque indéfiniment sans passer à la ligne suivante du fichier séquentiel. Aucun message d'erreur n'est affiché. La partie la plus frustrante est que certaines procédures ont parfois le problème, mais pas le lendemain.

Est-ce que quelqu'un d'autre a déjà rencontré ce problème? Ou avez-vous une idée de ce qui pourrait causer ce problème? Je pense que cela pourrait être lié à la connexion/au pare-feu, mais ce n'est vraiment pas mon domaine d'expertise!

+0

Cela ressemble à un problème d'optimisation des performances. –

Répondre

0

Vous devez utiliser le fichier de traitement par lots et utiliser le suivi SQL étendu pour indiquer où tout votre temps se passe. Rien ne peut échapper à l'instrumentation appropriée. Vous trouverez la source du problème. Ce que vous faites à ce sujet varie en fonction du problème particulier (c'est-à-dire, anti-modèle).

+0

Merci pour la suggestion. Je vais avoir une lecture à ce sujet et tester quelques processus de problème. – Connor

0

Je vois des problèmes comme celui-ci tout le temps. Ce que je fais pour me connecter à la DB et voir ce qui fonctionne en vérifiant gV $ session. La clé est d'identifier ce que le script SQL est en cours d'exécution, puis voir s'il y a des raisons pour qu'il soit "accroché" (il y a BEAUCOUP de raisons possibles). par exemple, les index manquants; statistiques manquantes ou non à jour; charge de travail sur l'instance; blocage des serrures; ... Si vous avez le SQL Tuning Advisor, vous pouvez exécuter le SQL par là pour obtenir des idées sur les solutions. Le rapport ADDM peut également fournir des solutions supplémentaires.