1. Recherche d' emploi plus dans la course
2. exécution de la requête de la tâche de procédure stockée
3. Il n'y a pas de blocage requête de table affectant le processus de mise en œuvre
De
Aucun processus de découverte impasse de la table.
4. Trouvez par procédure stockée SID qui maintenant STATEMENT est en cours d' exécution
- par sid, trouver sql_id (sid par le DBA_JOBS_RUNNING ci-dessus se trouve)Pourquoi la procédure stockée Oracle pendant longtemps être coincé
1: Charles V $ DB_OBJECT_CACHE
SELECT * FROM V $ DB_OBJECT_CACHE OÙ name = 'CUX_OE_ORDER_RPT_PKG' ET BLOCAGE = '0'!;
Note: CUX_OE_ORDER_RPT_PKG le nom de la procédure stockée.
Constaté que serrures = 2
2: Appuyez sur l'objet isolé valeur sid
sélectionner / * + règle * / SID de V $ ACCÈS OU objet = 'CUX_OE_ORDER_RPT_PKG';
Note: CUX_OE_ORDER_RPT_PKG le nom de la procédure stockée.
3: vérification sid, série #
SELECT SID, NUMÉRO DE SÉRIE, PADDR DE V SESSION $ OU SID = 'juste trouvé le SID';
4, selon l'ID de session (sid), cet événement d'attente de la session:
- select * from v $ session où sid = ***;
événement est l'attente sur le terrain pour l'événement. Après enquête, nous avons trouvé la session d'attendre l'événement pour SQL * Message net de dblink, session de visionnage logon_time était il y a deux jours. Cette fois-ci, nous sommes beaucoup plus que le temps estimé.
5, voir la déclaration sql cette session est effectuée sur la base l'identifiant de session
- sélectionnez sql_text de v SQLAREA de $ où adresse = ( select sql_address de v $ session où sid = ***);
Une fois la requête instruction SQL trouvée est exécutée par la base de données distante dblink pour interroger les tables de données A, B sont insérés dans la table.
6, se connecter à une base de données distante, la requête de l'objet courant est verrouillé
- select * from v $ locked_object lo,
- all_objects ao où lo.OBJECT_ID = ao.object_id;
Après un examen de la base de données distante ne se trouve pas à se rapporter à la A, table B est verrouillé
7, les données de visualisation à distance des sessions:
- select * from v $ session où la borne comme '%机器名%' et programme = 'ORACLE.EXE'
connexion dbLink en utilisant une base de données distante, session de programme sur la base de données distante doit être oui oui oracle.exe
Après l'enquête a révélé que deux bibliothèques distantes parfois session associée, parfois il peut être lié à la session, mais il est en attente pour l'événement SQL * Message net des bibliothèques à distance du client pour Oracle locale lui a envoyé une demande.
Les bibliothèques locales dbLink base de données distante, en attente de base de données à distance pour les messages des clients. Il semble qu'il est impossible d'exécuter la procédure stockée est terminée.
Quelles sont les raisons spécifiques, et peu claires.