sql >> Database >  >> RDS >> Oracle

Gebruik gv$session om te zien of een zoekopdracht vastloopt

In gv$session , het event kolom vertelt u op welke wachtgebeurtenis uw sessie momenteel wacht. Als uw sessie wacht op een soort vergrendeling die door een andere sessie wordt vastgehouden, wordt de event zal u dat vertellen (het zal bijvoorbeeld "enq:TX - rijvergrendelingsconflict" zijn als u in de wachtrij staat om een ​​rij te vergrendelen die door een andere sessie wordt vastgehouden) en blocking_instance en blocking_session wordt gevuld met de instantie en sessie-ID van de houder van het slot. Je kunt ook kijken naar seconds_in_wait (if wait_time=0 ) om te bepalen hoeveel seconden de sessie heeft doorgebracht in de huidige wachtgebeurtenis. Dat zou je op zijn minst moeten vertellen of je sessie momenteel "vastloopt", maar het vertelt je niet of je vraag ooit echt zal eindigen - als er een slecht plan is, is het heel goed mogelijk dat je "goed" hebt. wait-gebeurtenissen zoals waits for disk I/O die aangeven dat de sessie iets doet, maar dat de query nooit echt zal eindigen.



  1. java.lang.IllegalStateException:Poging om een ​​bewerking uit te voeren op een gesloten EntityManagerFactory

  2. Pagingkeuze, in database of in de webapplicatie

  3. Koppel partitie LIST aan bestaande tabel in postgres 11

  4. Hoe te debuggen:Interne fout huidige transactie is afgebroken, opdrachten genegeerd tot einde transactieblok