Collected posts: Oracle, SQL, PL/SQL, Performance, Security...(More than 300 blogs)

mercredi 17 octobre 2012

Oracle events : cursor: pin S wait on X & ORA-04030

Dernièrement j'ai rencontré un problème de performance lié à une requête d'insert , lors de l’exécution de cette requête par plusieurs sessions en même temps un de programme se termine en erreur
ORA-12801: error signaled in parallel query server P077ORA-04030: out of process memory when trying to allocate 44452 bytes                                     (initSubHeap:qk,travElemP:qkspmTravCreate) 

L'insert dans la table se fait à partir d'une vue oracle qu'est basé sur d'autres vues oracles avec plusieurs jointures avec d'autres tables.

J'ai constaté la présence de l’évènement cursor: pin S wait on X    parmi les Top 5 Timed Foreground Events
 Top 5 Timed Foreground Events~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                              Avg                              wait   % DBEvent                                 Waits     Time(s)   (ms)   time Wait Class------------------------------ ------------ ----------- ------ ------ ----------DB CPU                                            1,980          51.8db file sequential read             407,338         388      1   10.1 User I/Ocursor: pin S wait on X                 444         304    686    8.0 Concurrencdb file scattered read                8,748         103     12    2.7 User I/Oenq: TX - row lock contention             9          50   5587    1.3 Applicatio


Ma requête est présente dans le bloc SQL ordered by Sharable Memory  dans le report AWR:

SQL ordered by Sharable Memory           
Sharable Mem (b)  Executions   % Total    SQL Id---------------- ------------ -------- -------------       7,388,523            1     0.88 cd1777r7db2kcModule: PPXMINSERT INTO MYTABLE
       5,541,891            1     0.66 4chckmq1yu1vdModule: PPXMINSERT INTO MYTABLE
       5,541,855            1     0.66 0nfd6dkqsfwpwModule: PPXMINSERT INTO MYTABLE
       5,541,851            1     0.66 5yu5smgshjttsModule: PPXMINSERT INTO MYTABLE
 

Suite à une analyse de ce deux éléments, j'ai constaté que ce problème est lié hard + soft parse de requête.
Le serveur ne supporte plus la charge en mémoire. 

La requête prend toujours le même plan d’exécution (le bon plan). 

J'ai utilisé des bind variables et ça résout le problème : le même sql_id est utilisé par les différents programmes qui font appel à cette requête. La variable dans la requête est le numéro de session.       









1 commentaire:

  1. Course Content - http://www.21cssindia.com/courses/sap-grc-online-training-41.html --
    Introduce SAP Governance, Risk, and Compliance (GRC) 10.0Provision and Manage Users - Plan for User Access - Plan for Human Resources Integration - Define User Provisioning - Design End User Personalization Forms - Request Approval - Periodic Access Review Process - Plan Periodic Review - Review Access Risk (SoD Review) - Monitor User Access - Monitor Role Access - Business Rule Framework (BRF) - Define workflow related Multi-Stage Multi-Path Workflow Rules - Define business rules using the BRF Workbench - Create BRFplus rules & Reporting - Reporting Framework - Change Existing Reports - Add Custom Fields to Access Requests and Roles - Access Control Implementation Process - Implementation Process Overview - Project Teams - Designing the Access Control Solution - Upgrade and Migration - Configuring Access Control using te IMG - Implementing the Solution - Optimizing and Enhancing the Solution - Employees to learn at their own pace and maintain control of learning “where, when and how” with boundless access 24/7by 21st Century Software Solutions. contact@21cssindia.com ---- Call Us +919000444287

    RépondreSupprimer