powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / проверка, какие процедуры устарели
25 сообщений из 26, страница 1 из 2
проверка, какие процедуры устарели
    #38474678
Ivanich87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Такой вопрос, в базе накопилось примерно 800 хранимых процедур, наверное треть - это уже устаревшие никому не нужные процедуры.
Как можно получить список процедур, которые не запускались уже полгода??
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38474700
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivanich87,

1. начать вести журнал запуска процедур
2. через полгода сравнить журнал со списком имеющихся процедур
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38474706
Ivanich87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShakillIvanich87,

1. начать вести журнал запуска процедур
2. через полгода сравнить журнал со списком имеющихся процедур

я надеялся что такое можно получить системными хранимыми процедурами.
Чтобы вести журнал нужно добавить в каждую хп что то типа:
Код: sql
1.
INSERT INTO Temp_Shell_StoredProcedure(ProcedureName) select object_name(@@procid)


Как это сделать?
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38474994
zindur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT 
      p.name AS SP_Name 
    , s.last_execution_time
FROM sys.procedures AS p
LEFT OUTER JOIN sys.dm_exec_procedure_stats AS s ON p.object_id = s.object_id
ORDER BY s.last_execution_time
       , p.name;
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38475020
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zindur
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT 
      p.name AS SP_Name 
    , s.last_execution_time
FROM sys.procedures AS p
LEFT OUTER JOIN sys.dm_exec_procedure_stats AS s ON p.object_id = s.object_id
ORDER BY s.last_execution_time
       , p.name;


sys.dm_exec_procedure_stats
When a stored procedure is removed from the cache, the corresponding row is eliminated from this view
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38475116
Ivanich87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zindur
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT 
      p.name AS SP_Name 
    , s.last_execution_time
FROM sys.procedures AS p
LEFT OUTER JOIN sys.dm_exec_procedure_stats AS s ON p.object_id = s.object_id
ORDER BY s.last_execution_time
       , p.name;


У меня sql 2005, там системной sys.dm_exec_procedure_stats, она только с 2008
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38477600
Ivanich87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, неужели sql2005 нет стандартных процедур по статистике запуска ХП??
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38477610
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понимаю, почему надо дропать процедуру, если её давно не вызывали?
Где логика?
Если бы надо было выявить процедуры, вызовов которой в системе не существует,
было бы понятно.
Что это за система такая, которой можно ампутировать объект, а ей хоть бы что?
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38477675
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapЧто это за система такая, которой можно ампутировать объект, а ей хоть бы что?Отказоустойчивая :-)
Ivanich87Господа, неужели sql2005 нет стандартных процедур по статистике запуска ХП??Ну что такого, в дельфи тоже стандартно у скомпилированного приложения нет статистики вызовов функций.
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38477716
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivanich87неужели sql2005 нет стандартных процедур по статистике запуска ХП??
Не надо путать статистику с аудитом.
Если вы не озаботились включением аудита, то сервер за вас это делать не будет
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38477737
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivanich87

Чтобы вести журнал нужно добавить в каждую хп что то типа:

Как это сделать?

alter procedure
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38477797
Ivanich87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapНе понимаю, почему надо дропать процедуру, если её давно не вызывали?
Где логика?
Если бы надо было выявить процедуры, вызовов которой в системе не существует,
было бы понятно.
Что это за система такая, которой можно ампутировать объект, а ей хоть бы что?
Это нормальная ситуация, когда старые процедуры заменяются новыми, структура БД тоже со временем изменяется. Таким образом постепенно накапливается мусор, от которого хотелось бы избавиться, но необходимо подстраховаться. Вот поэтому и нужна статистика, какие процедуры не запускались за последние полгода - год
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38477810
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivanich87Это нормальная ситуация, когда старые процедуры заменяются новыми, структура БД тоже со временем изменяется
В нормальной ситуации процесс, "когда старые процедуры заменяются новыми" должен приводить к Decommissioning старых процедур. И делается это не на основании статистики использования, а на основании документации
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38477873
WarAnt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivanich87iapНе понимаю, почему надо дропать процедуру, если её давно не вызывали?
Где логика?
Если бы надо было выявить процедуры, вызовов которой в системе не существует,
было бы понятно.
Что это за система такая, которой можно ампутировать объект, а ей хоть бы что?
Это нормальная ситуация, когда старые процедуры заменяются новыми, структура БД тоже со временем изменяется. Таким образом постепенно накапливается мусор, от которого хотелось бы избавиться, но необходимо подстраховаться. Вот поэтому и нужна статистика, какие процедуры не запускались за последние полгода - год

Нормальная она только тогда, когда при создании новых одновременно удаляются старые.
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38477889
Ivanich87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WarAntНормальная она только тогда, когда при создании новых одновременно удаляются старые.
Старые нельзя удалять в одночасье, так как вызов старой процедуры может производиться из интерфейса программы, а пользователей много, и у всех перезапустить программу для обновления невозможно...
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38477896
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivanich87Старые нельзя удалять в одночасье, так как вызов старой процедуры может производиться из интерфейса программы,
А что тогда делает то процесс "когда старые процедуры заменяются новыми" ?

Ivanich87а пользователей много, и у всех перезапустить программу для обновления невозможно...
Поэтому надо удалить "старую процедуру", а не обновить клиентскую программу? Пусть даже "вызов старой процедуры может производиться из интерфейса программы" ? Круто !
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38477924
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivanich87WarAntНормальная она только тогда, когда при создании новых одновременно удаляются старые.
Старые нельзя удалять в одночасье, так как вызов старой процедуры может производиться из интерфейса программы, а пользователей много, и у всех перезапустить программу для обновления невозможно...Принципиально вы всё делаете правильно, так и надо.

Но нужна более чёткая организация.

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

Действительно, можно по простому сделать - логировать использование процедур и удалять неиспользуемые долго, но тогда логирование вам нужно сделать самому, в сиквеле (так же как в дельфи) не предусмотрено ведение лога вызовов процедур.
GloryIvanich87Это нормальная ситуация, когда старые процедуры заменяются новыми, структура БД тоже со временем изменяется
В нормальной ситуации процесс, "когда старые процедуры заменяются новыми" должен приводить к Decommissioning старых процедур. И делается это не на основании статистики использования, а на основании документацииЭто технически и организационно требует очень много ресурсов, хотя конечно теоретически так правильно. Для обычного заводика/торговой фирмочки на сотню рабочих мест это слишком круто, придётся к 3-м имеющимся сотрудникам на разработке взять ещё троих.
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38477936
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgGloryпропущено...

В нормальной ситуации процесс, "когда старые процедуры заменяются новыми" должен приводить к Decommissioning старых процедур. И делается это не на основании статистики использования, а на основании документацииЭто технически и организационно требует очень много ресурсов, хотя конечно теоретически так правильно. Для обычного заводика/торговой фирмочки на сотню рабочих мест это слишком круто, придётся к 3-м имеющимся сотрудникам на разработке взять ещё троих.
Если вы хотите создать с 0-ля свое ПО для совместной разработки программного кода, то придется в взять не 3, а 33 сотрудника.
А вот если взять уже созданное ПО, то можно никого дополнительно не брать.
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38477952
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GloryalexeyvgЭто технически и организационно требует очень много ресурсов, хотя конечно теоретически так правильно. Для обычного заводика/торговой фирмочки на сотню рабочих мест это слишком круто, придётся к 3-м имеющимся сотрудникам на разработке взять ещё троих.
Если вы хотите создать с 0-ля свое ПО для совместной разработки программного кода, то придется в взять не 3, а 33 сотрудника.
А вот если взять уже созданное ПО, то можно никого дополнительно не брать.В смысле, не понял, про какое ПО идёт речь?

Или вы имеете в виду, что существует ПО для организации процесса разработки, которое всё это делает само, там предусмотрены разные настраиваемые шаблоны для описания своего варианта требований к поддержке ваерсий и их реализация?
Я честно говоря про такое не слышал, было бы интересно узнать...
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38477959
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgИли вы имеете в виду, что существует ПО для организации процесса разработки, которое всё это делает само, там предусмотрены разные настраиваемые шаблоны для описания своего варианта требований к поддержке ваерсий и их реализация?
ПО, которое готовит билд к инсталяции, есть. Билд может в себя включать и декомиссию объектов. Самой примитивной реализацие декомиссии может быть простое удаление объекта.
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38477965
ZOOKABAKODER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivanich87,

Включить трассировку события "Performance Statistics", фильтровать по EventSubClass=1 и ObjectType=8272, смотреть колонки DatabaseID и ObjectID -- это покажет все процедуры которые компилились, а значит, хоть раз выполнялись на сервере. Включить трассировку события Object:Deleted (или смотреть в трассировке по умолчанию), фильтровать по EventSubClass=1, смотреть DatabaseID и ObjectID -- это покажет когда ID объекта потерял актуальность, т.е. позволит отфильтровывать удалённые объекты.
И анализировать... анализировать... анализировать...
А потом в процедуры, которые таким образом в морг определились, вставить вызов sys.sp_trace_generateevent вставить в TextData что-нить типа
Код: xml
1.
<Event Class="ProcCall"><Schema>dbo</Schema><Name>Procedure</Name></Event>


и трассировать это событие, а дальше сам догадаесся. :)

PS: sys.sp_trace_generateevent полезно вставить во начале всех процедурок.
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38478076
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GloryalexeyvgИли вы имеете в виду, что существует ПО для организации процесса разработки, которое всё это делает само, там предусмотрены разные настраиваемые шаблоны для описания своего варианта требований к поддержке ваерсий и их реализация?
ПО, которое готовит билд к инсталяции, есть. Билд может в себя включать и декомиссию объектов. Самой примитивной реализацие декомиссии может быть простое удаление объекта.Ну это понятно, но вариант "процедура, не используемая в новой версии, немедленно удаляется" естественно не рассматривается. Это уж для совсем "наколенных" продуктов.

Требования к процессу у ТС такие (могу уверенно предполагать, потому что лет 20 придерживаюсь таких же принципов, ТС может только уточнить какие то количественные параметры):

- Раз в неделю выпускается повая версия ПО, с изменениями в клиентской и серверной части
- В новой версии может добавляться использование каких то новых таблиц, процедур, а использование чего то другого убираться...
- Старые версии клиента обязаны работать с новой версией БД (или сервера приложений, если такая архитектура) в рамках старой функциональности.
- Через какое то время (например, через полгода) старые версии клиента перестают работать на новой базе. Соответственно, старые процедуры нужно убирать, когда становится невалидным последний клиент, которых их использовал.

Совершенно нормальный, удобный для бизнеса, подход.
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38478083
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgНу это понятно, но вариант "процедура, не используемая в новой версии, немедленно удаляется"
Я говорил декомиссия. А удаление как самый примитивный способ декомиссии.
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38478156
ART-CODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понятно зачем постоянно новые процедуры делают люди, а не меняют существующие.
На выход процедура может давать набор данных.
Подхватить и правильно обработать изменившийся набор данных на клиенте - совсем не сложно.
Динамический интерфейс это просто.
А на вход процедура принимает некоторое кол-во параметров, ну и можно же продумать
стандартный набор входных параметров "с запасом" чтобы он перекрыл будущие потребности развития.
Таким образом, необходимость создания новой процедуры - будет исключительно редким случаем.

Да и клиента мякго рестартануть на обновление тоже не сложно.
Заминка в работе на пару секунд - и работает дальше с того же места.
...
Рейтинг: 0 / 0
проверка, какие процедуры устарели
    #38478187
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ART-CODEТаким образом, необходимость создания новой процедуры - будет исключительно редким случаем.Вы всё правильно говорите, именно так и надо делать.

Но всё таки случаи удаления процедур неизбежно будут, пусть и очень редко, их тоже нужно отрабатывать.
GloryalexeyvgНу это понятно, но вариант "процедура, не используемая в новой версии, немедленно удаляется"
Я говорил декомиссия. А удаление как самый примитивный способ декомиссии.А, в этом смысле... А то слово мудрёное :-)

Так вот, я не вижу средств, например, в используемой мной Visual Studio-TFS для "не примитивной декомиссии" в соответствии с описанными выше требованиями.
Т.е. что бы связывать хранимую процедуру с местами в клиенте, где она используется, и отмечать как неиспользуемую через некоторое время.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / проверка, какие процедуры устарели
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]