Я работаю с устаревшими системами, которые содержат десятки тысяч строк кода хранимых процедур, в которых многие из хранимых процедур устарели и больше не используются. Кажется, нет способа проверить историю выполнения, поэтому мой вопрос в том, может ли быть хорошей идеей запускать каждую хранимую процедуру, вставляя строку в таблицу, в которой хранятся записи о выполнении?
может быть очень простым, например:
вставить в ExecutionHistory ( название, Дата ) Выбрать 'spName', getdate ()
- затем остальная часть процедуры
Я предполагаю, что это может быть очень полезно для очистки старого неиспользуемого кода, а также может быть полезно при попытке решить, где оптимизировать. Я имею в виду, что лучше сократить время выполнения процедуры, которая выполняется 50 раз в день, на 10 секунд, чем сэкономить 10 минут для процедуры, которая используется только один раз в год.





В SQL-сервере есть опция трассировки (SQL Profiler). вы можете отследить дневную активность SQL и посмотреть, какие sproc там выполняются.
Это даст вам хорошее представление о том, на чем следует сосредоточить свои усилия.
Думаю, ваша идея достаточно проста и отпишет вашу цель. Хотя это потребует изменения каждого SP, я бы выбрал именно этот путь. Тогда вы можете быть уверены, что получаете точную запись всей активности в базе данных.
Другой плакат предлагал вам сделать трассировку - хотя это работает в течение коротких периодов времени, оно будет ловить только время, которое вы смотрите. Вам нужно будет убедиться, что вы отслеживаете любые важные периоды с высокой посещаемостью, такие как финансовое закрытие в конце месяца, и даже тогда вы упускаете другие моменты, которые, по вашему мнению, не так уж важны, поэтому вы быть субъективным.
поскольку вы используете sql server 2008, я бы не стал делать то, что предлагает rwmnau, потому что это означало бы, что вам нужно изменить все свои хранимые процедуры. В SQL Server 2008 появилась возможность под названием «Расширенные события» и «Аудит SQL Server» на их основе. Расширенные события представляют собой высокопроизводительную систему отслеживания. Используя аудит SQL Server, вы можете отслеживать свою систему без накладных расходов, связанных с трассировкой sql.
Спасибо. Это именно тот случай, использование обычно достигает пика после месяца, четверти, года.