Mam pakiet Oracle DB, który jest rutynowo przyczyną impasu ITL (Zainteresowana lista transakcji). Odpowiednia część pliku śledzenia znajduje się poniżej.Identyfikowanie i rozwiązywanie Oracle ITL Deadlock
Deadlock graph:
---------Blocker(s)-------- ---------Waiter(s)---------
Resource Name process session holds waits process session holds waits
TM-0000cb52-00000000 22 131 S 23 143 SS
TM-0000ceec-00000000 23 143 SX 32 138 SX SSX
TM-0000cb52-00000000 30 138 SX 22 131 S
session 131: DID 0001-0016-00000D1C session 143: DID 0001-0017-000055D5
session 143: DID 0001-0017-000055D5 session 138: DID 0001-001E-000067A0
session 138: DID 0001-001E-000067A0 session 131: DID 0001-0016-00000D1C
Rows waited on:
Session 143: no row
Session 138: no row
Session 131: no row
Brak bit-mapa indeksy na tym stole, więc to nie jest przyczyną. O ile mogę powiedzieć, brak "czekanych wierszy" i "S" w kolumnie oczekiwania Kelnera wskazuje, że jest to zakleszczenie ITL. Ponadto, tabela jest napisana dość często (około 8 wstawek lub aktualizacji jednocześnie, tak często, jak 240 razy na minutę), więc impasu ITL wydaje się być silną możliwością.
Zwiększyłem parametr INITRANS tabeli i jego indeksy do 100 i zwiększyłem wartość PCT_FREE na tabeli z 10 do 20 (następnie przebudowałem indeksy), ale zakleszczenia nadal występują. Zakleszczenie zdarza się najczęściej w trakcie aktualizacji, ale to może być tylko zbieg okoliczności, ponieważ udało mi się to tylko kilka razy.
Moje pytania są dwojakie:
1) Czy to rzeczywiście jest zakleszczenie ITL?
2) Jeśli jest to zakleszczenie ITL, co jeszcze można zrobić, aby tego uniknąć?
Okazuje się, że nie był to impas ITL problem w ogóle, ale raczej problem z kluczy obcych un indeksowane. Odkryłem to dzięki odpowiedzi dpbradleya, która przekonała mnie, że to nie był problem z ITL i skłonił mnie do odkrycia, jakie mogą być inne przyczyny impasu z "bez wierszy".
Możesz chcieć rozważyć umieszczenie tego na serverfault. Moja początkowa reakcja polegała na tym, że tak właśnie jest, ale na to pytanie kryje się również programistyczny smak. W każdym razie możesz złapać inną parę oczu, których tutaj nie ma. – DCookie