Удаление завершенных шаблонов

Здесь обсуждаем систему TDM/PDM/Workflow Lotsia PDM PLUS (PartY PLUS).
Ответить
Andrey000
Новый участник
Сообщения: 14
Зарегистрирован: 26 янв 2011, 12:30
Используемое ПО: Lotsia PDM PLUS

Удаление завершенных шаблонов

Сообщение Andrey000 »

Доброго времени суток.
Есть такая проблема, которая не дает покоя, а именно: За несколько лет работы, в лоции скопилась куча завершенных шаблонов работ (В меню - "Карты работ", это прямо под пунктом "Шаблоны" - версия 4.20). При попытке удалить хотя бы один из отработавших шаблонов вся база зависает на продолжительное время (все открытые лоции видимо просто блокируются). К слову зависание происходит даже при формировании списка этих шаблонов. Ну вот и собственно - как же реально удалить все эти ненужные завершенные шаблоны из лоции?
Аватара пользователя
Старик Крупский
Активный участник
Сообщения: 803
Зарегистрирован: 27 июл 2006, 22:17
Откуда: Москва

Re: Удаление завершенных шаблонов

Сообщение Старик Крупский »

Старовата версия... Оптимизация удаления карт работ была проведена, насколько я помню, в версии 4.30. Я бы всех от базы оторвал и во внерабочее время, на ночь, например, запустил бы удаление нескольких карт работ. Если все пройдет безошибочно, то можно в пятницу вечером запустить глобальное удаление. За выходные сделает, наверное. И на время удаления можно сервер автоматических этапов выключить, чтобы он сервер не грузил.
Я в 4.20 и 4.30 удалял карты ежемесячно.
В 4.40 такой проблемы и вовсе нет - там настраивается автоудаление. И вообще, 4.20 и 4.40 - это две приличные разницы :)
"Лучше меньше, да лучше" (C)
Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Re: Удаление завершенных шаблонов

Сообщение Anderyt »

оптимизация удаления появилась вроде в 4.40, незадолго до появления автоудаления..
мы раньше удаляли карты ежедневно.
ну по сути да, выход как раз такой - понемногу удалять, желательно в нерабочее время :-)
опять же, карты бывают разные. у нас при удалении карты из 31 тыс. этапов (несколько этапов повторялись в цикле) вообще клиент переставал реагировать, хотя блокировок на уровне БД не было, так что если такие карты есть - лучше их вообще обрабатывать отдельно либо не трогать вообще (в 4.40 с этим уже все в порядке).
при удалении может оказаться нелишним смотреть на загрузку сервера БД и блокировки. мы для этого используем такой запрос:

Код: Выделить всё

select spid, cpu, open_tran, last_batch, convert(nvarchar(20),hostname) as 'hostname',  convert(nvarchar(20), program_name) as 'program_name', convert(nvarchar(20), loginame) as 'loginame'
from
master..sysprocesses
where (status = 'runnable'
or open_tran >0)
order by cpu desc

select spid, blocked, open_tran, status, convert(nvarchar(20),hostname) as 'hostname', convert(nvarchar(20), loginame) as 'loginame' from master..sysprocesses
where blocked <>0

select spid, blocked, open_tran, status, convert(nvarchar(20),hostname) as 'hostname', convert(nvarchar(20), loginame) as 'loginame' from master..sysprocesses
where 
spid in 
(
select blocked from master..sysprocesses
where blocked <> 0
)
and blocked = 0
первая часть возвращает активные коннекты, которые runnable
в ней по идее должен светиться текущий коннект, который удаляет карты
вторая часть - те, кто оказался заблокированным
треться -коннект, который блокирует. в нем тоже может появиться текущий коннект
по spid можно убивать коннект через kill <spid> (клиент при этом безвозвратно отвалится от базы, так что аккуратнее :-) )
запрос, к слову, оказывается полезным и в повседневной работе, когда надо выяснить, почему висим и из-за кого
лучше день потерять, потом за пять минут долететь!
Ответить