Monat: Februar 2015

Runtime Statistiken Lesen

Was würden Sie tun, um das Statement zu optimieren, dass den folgenden Runtimestatistikien zu Grunde liegt? Ihre Aufgange ist es, den Befehl schneller zu machen ohne Ihn um zu schreiben. Sie dürfen auch Indexe hinzu fügen oder ändern.

 

-----------------------------------------------------------------------------------------------------------
| Id  | Operation                    | Name | Starts | E-Rows | A-Rows |   A-Time   | Buffers | Reads     |
-----------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT             |      |      1 |        |      1 |00:00:15.42 |    3540 |      3262 |
|   1 |  SORT AGGREGATE              |      |      1 |      1 |      1 |00:00:15.42 |    3540 |      3262 |
|*  2 |   TABLE ACCESS BY INDEX ROWID|   T1 |      1 |  52695 |     10 |00:00:15.42 |    3540 |      3262 |
|*  3 |    INDEX RANGE SCAN          |   I1 |      1 |     17M|   4577 |00:00:00.16 |      11 |         9 |
-----------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - filter(("NVL("X1_STATUS",'A')<>'U' AND NVL("X2_STATUS",'A')<>'D' 
               AND NVL("X3_STATUS",'A')<>'D' AND NVL("X4_STATUS",'A')<>'D' 
               AND NVL("X5_STATUS",'A')<>'U'))
   3 - access("T1_ID"=:B2 AND "T2_ID"=:B4 AND "T3_ID"=:B1)

Lösung: Rätsel der verlorenen Session

Wie schon in Twitter spekuliert war der Befehl connect und der Vorgang war logon. Die Ursache konnte nach einigem Suchen gefunden werden: Der Reportserver versuchte sich mit ungültigen credentials an zu melden.

Nachdem man die credentials korrigiert hatte sind selbstverständlich auch die row locks verschwunden.

Den ersten guten Hinweis auf die Lösung bekam ich im Blog von Dominic Brooks: Failed Logins can cause row cache lock on dc_users. Auch Martin Preiss hatte diese Website gefunden. Stefan Koehler hat einen sehr ähnlichen Fall wunderbar ausführlich dokumentiert: Wait event „library cache lock“ by (security) design and exploring system state dumps (oradebug). Den wichtigen Hinweis auf das „connection management call elapsed time“ event im AWR hatte Franck Pachot auf Twitter gegeben. Natürlich war auch Spürnase Martin Berger wie immer auf der richtigen Fährte.