W ubiegłym tygodniu w naszej bazie danych wydarzyło się coś dziwnego. Nagle aplikacja została zablokowana dla naszych użytkowników, którzy nie byli w stanie zapisać nowych encji itp. Po spojrzeniu na Monitor aktywności SQL Server (2008 z trybem zgodności 2005) zobaczyłem trzy następujące wpisy:
Po pewnym czasie użytkownicy otrzymali limit czasu połączenia. Kiedy zabiłem proces 64, mogliby normalnie zaoszczędzić.
Problem polega na tym, że podmioty, które próbowały zapisać podczas bloku, zostały wstawione do bazy danych więcej niż raz (do 3 razy), mimo że istnieje kod, który powinien temu zapobiec (kolumna liczbowa, która musi być unikalna, ale bez ograniczeń ... kontrola odbywa się w kodzie).
Używamy Entity Framework 6.0.
- Czy ktoś z was wie, dlaczego i kiedy występują typy oczekiwania ASYNC_NETWORK_IO i jak ich uniknąć?
- A co dokładnie oznaczają?