sql >> Database >  >> RDS >> Oracle

Wacht gebeurtenis:asynchrone descriptor formaat wijzigen

In mijn onlangs geüpgradede productiedatabase zie ik een aantal SQL-statements die nu veel wachten op de gebeurtenis "asynch descriptor resize". Ik heb onlangs een upgrade uitgevoerd van 11.1.0.7 naar 11.2.0.2 en SQL-instructies die nooit op deze gebeurtenis hebben gewacht, worden nu betrapt.

Oracle 11.2 heeft de manier waarop de database en de OS-kernel asynchrone I/O-aanroepen uitvoerden enigszins gewijzigd. Wat er gebeurt, is dat er een aantal asynchrone I/O-descriptors zijn om de asynchrone I/O-aanroepen te kunnen verwerken. Wanneer het aantal asynchrone I/O-aanroepen toeneemt, neemt ook het aantal descriptors toe. Wanneer het aantal asynchrone I/O-aanroepen afneemt, wordt het aantal descriptors op een vergelijkbare manier verlaagd.

Voordat Oracle het aantal descriptors kan verhogen, moet het wachten tot alle processen die momenteel asynchrone I/O uitvoeren hun I/O-aanroepen hebben voltooid. Deze vreselijke actie doodt echt het "asynchrone" deel van de I/O! Zodra alle processen hun ansych I/O-aanroepen hebben voltooid, kan Oracle de descriptors omhoog of omlaag wijzigen, afhankelijk van de werkbelasting.

Als uw proces net klaar is met het voltooien van de asynchrone I/O, voordat het een andere asynchrone I/O-aanroep kan doen, moet het wachten tot Oracle het aantal descriptors heeft gewijzigd. Als zodanig wacht u op de wachtgebeurtenis "asynch descriptor resize".

Dit blijkt Bug 9829397 te zijn en je kunt er een patch voor downloaden van Metalink. Dit probleem is opgelost in 11.2.0.3, dus het verschijnt alleen in 11.2.0.1 en 11.2.0.2. Een oplossing is om Asynch I/O uit te schakelen, maar voor mij is die oplossing hoogst ongewenst. Men kan ook het voorkomen van deze wait-gebeurtenis verminderen door hun directe I/O te verminderen en hun SQL-instructies af te stemmen.


  1. Vind alle zoekopdrachten die een bepaalde tabel gebruiken

  2. Migreren van MySQL Enterprise naar MariaDB 10.3

  3. Een datumbereik herhalen in PL/SQL

  4. Hoe u de juiste gegevenstypen selecteert