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