Журнал использования таблиц базы данных, функций, хранимых процедур, представлений и т. Д.

Я работаю в системе, основанной на базе данных SQL-сервера, которая много лет разрабатывает ее. Это не очень большой объем данных (несколько ГБ), но он очень сложен (сотни таблиц, сотни хранимых процедур).

Я хочу начать с очистки вещей, которые больше не используются. У нас есть еженедельный / ежемесячный / квартальный / годовой цикл, который будет означать, что некоторые материалы не будут использоваться в течение года. Однако, если есть короткий список вещей, которые не использовались в течение нескольких месяцев, мы могли бы решить путем проверки, если они все еще полезны.

Мое намерение состоит в том, чтобы начать регистрировать доступ ко всем объектам базы данных. У меня есть некоторые идеи, но мне бы хотелось, чтобы журнал превратился в список вещей, которые не используются. У меня есть несколько идей, но мне нужна помощь специалиста.

редактировать: я также хотел бы прояснить, что я могу, я хотел бы видеть доступ к таблицам / представлениям, а также к сохраненным процессам и функциям.

3 ответа

Ты проверяешь sys.dm_db_index_usage_stats: последнее обновление сохраняется в last_user_update столбец и последний SELECT сохраняется в одном из last_user_seek, last_user_scan или же last_user_lookup, Обратите внимание, что счетчики сбрасываются при запуске SQL Server, поэтому вам необходимо запустить приложение и тщательно проверить каждую функцию, чтобы получить соответствующие результаты.

Для хранимой процедуры вы должны запустить трассировку сервера, отслеживающую SP:Starting событие. После того, как ваши тесты будут запущены, снова выполните все функции продукта, остановите трассировку и используйте агрегатные функции SQL для подсчета различных вхождений имен процедур в TextData в файле трассировки. Вы читаете след с fn_trace_gettable,

Это аналогичный вопрос, в частности, спрашивающий, когда использовались хранимые процедуры: как записать частоту и время последнего использования хранимой процедуры?

Хорошо, SQL-профилировщик был бы моим предложением, но вам нужно быть осторожным при его запуске, потому что он приводит к снижению производительности при выполнении трассировки.

Другие вопросы по тегам