Hello, All!

Показали на днях фокус, когда процедура, которая обычно выполняется час-два, работала 9 часов, после чего ее пришлось срубить. И повторные запуски так же приводили к неспешной работе при отсутствии отслеживаемой загрузки железа.

По всяческим мониторам - нагрузка проца 1-2 процента, винт 3-6мб обмен (в пике дает сотни).

Условия:
FB 2.5 CS, единственный коннект
Таблица 26млн без PK, из которой чистят дубли процедурой след. вида

for
 select
   max(rdb$db_key)
 ...
 group by
begin
 update where  = rdb$db_key and composite_index_field;
 delete where <> rdb$db_key and composite_index_field;
end

Пока группировка создает сортировочный файл (порядка 1гб) все нормально, винт/проц трудятся, а когда начинается фетч все замирает и вяло шевелится.

По косвенным свидетельствам (доступа к базе пока нет) - в тот день, когда проявилось, на этой базе несколько раз срубался коннект (могли зависнуть снапшоты?). Обычные проверки база проходит, т.е. явных ошибок нет. И вроде как подобное поведение изредка и случайно наблюдается в похожих процедурах.

Каковы могут быть теоретические причины такого поведения? Я так подозреваю какие-то внутренние блокировки? Причастен ли к этому rdb$db_key?

Есть ли какие способы отмониторить где затык?

--
-=Оптимист - это человек, который находясь по уши в дерьме не падает духом, а весело и задорно булькает.=- With best regards, Nikolay Ponomarenko

Ответить