На прошлой неделе в нашей базе произошло что-то странное. Внезапно приложение заблокировалось для наших пользователей, которые не смогли сохранить новые объекты и т. Д. После просмотра монитора активности SQL Server (2008 с режимом совместимости 2005) я увидел следующие три записи:
Через некоторое время пользователи получили тайм-аут соединения. Когда я убил процесс 64, они могли нормально сохранить снова.
Проблема в том, что сущности, которые они пытались сохранить во время блока, были вставлены в БД более одного раза (до 3 раз), даже несмотря на наличие кода, который должен предотвращать это (числовой столбец, который должен быть уникальным, но без ограничений). ... проверка происходит в коде).
Мы используем Entity Framework 6.0.
- Кто-нибудь из вас знает, почему и когда возникают эти типы ожидания ASYNC_NETWORK_IO и как их избежать?
- И что именно они имеют в виду?