Просто упомянуть, что неудавшийся запрос может произойти, если задействован плохо написанный триггер. Триггеры должны быть способны обрабатывать вставки / обновления или деления с несколькими записями, и некоторые люди, как известно, делают это с помощью курсора, а не с помощью языка на основе множеств. Это может вызвать запрос на обновление большого количества записей. Недавно удалось сократить время запроса для большого набора обновляемых записей с 40 минут до 40 секунд, заменив один такой триггер.
Другие причины включают в себя случайные перекрестные объединения (исправленные с помощью отдельных), невыражаемые предложения where, использование подзапросов или используемых определенных функций, неправильное индексирование, статистика, которая не была обновлена, использование курсоров, недостаточное определение в объединении или где. И так далее.