Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Неактивные таблицы  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5133
Есть База Данных, в которой я не разбираюсь более 300 таблиц.
Нужно удалить не используемые таблицы.
Задача конечно шиикааарная... НО! Как это лучше сделать? Красивое решение в студию))
12 окт 12, 09:34    [13306253]     Ответить | Цитировать Сообщить модератору
 Re: Неактивные таблицы  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Александр52,
автор
Красивое решение в студию))
Утром деньги,вечером стулья.Вечером деньги,утром стулья (с)
например,можно посмотреть статистику использования индексов.
12 окт 12, 09:38    [13306271]     Ответить | Цитировать Сообщить модератору
 Re: Неактивные таблицы  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
DROP DATABASE
12 окт 12, 09:39    [13306272]     Ответить | Цитировать Сообщить модератору
 Re: Неактивные таблицы  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
1) настроить аудит
2) подождать N-лет
3) удалить те объекты к которым никто не обращался
12 окт 12, 09:39    [13306274]     Ответить | Цитировать Сообщить модератору
 Re: Неактивные таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Александр52
Красивое решение в студию))

А версию сервера слабо опубликовать ?
12 окт 12, 09:40    [13306281]     Ответить | Цитировать Сообщить модератору
 Re: Неактивные таблицы  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Knyazev Alexey
1) настроить аудит
2) подождать N-лет
3) удалить те объекты к которым никто не обращался
Алексей, ну как можно удалять чужие таблицы даже через 100 лет?
Не использовались, а в день столетия - раз! - и понадобились.
У нас, например, админ проводит опрос оставшихся в живых разработчиков,
и только если они узнаЮт свои ненужные уже таблицы, удаляет их.

Если база маленькая (учебная?), то ещё может быть...
12 окт 12, 09:48    [13306315]     Ответить | Цитировать Сообщить модератору
 Re: Неактивные таблицы  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5133
что б мне слабо? вот уж нет)
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)


вот я сам думаю либо профайлер запустить на недельку - потом лог скопировать в доку и и контралэфить по таблицам, либо дропать и смотреть на реакцию разработчиков... (последнее кончено шутка)
Knyazev Alexey, или кстати так мне нравится, но не факт опять же что не удалю временно не актуальные
12 окт 12, 09:51    [13306329]     Ответить | Цитировать Сообщить модератору
 Re: Неактивные таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Если сервер работает достаточно долго без перезагрузок, то можно начать с sys.dm_db_index_usage_stats.
Если конечно ваши таблицы имеют индексы.
12 окт 12, 09:53    [13306337]     Ответить | Цитировать Сообщить модератору
 Re: Неактивные таблицы  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5133
Глори, я понажимал тут на всякие кнопки и получил вот эту запись:
select distinct st.name from sys.dm_db_index_usage_stats dm
INNER JOIN sys.tables st ON dm.object_id = st.object_id
where dm.system_seeks = 0 and dm.system_scans = 0 and dm.system_lookups = 0 and system_updates = 0

я же правильно понимаю что это список тех таблиц, которые не используются(т.к. нет операций с индексами)
12 окт 12, 10:01    [13306382]     Ответить | Цитировать Сообщить модератору
 Re: Неактивные таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Не использовавались с момента запуска сервера.
12 окт 12, 10:05    [13306405]     Ответить | Цитировать Сообщить модератору
 Re: Неактивные таблицы  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34621
Сиситемными средствами это сделать невозможно.
Ты должен узнать, какие таблицы нужны, остальные -- удалить. Можно перед этим сделать полный дамп БД, чтобы был вариант для отхода.
12 окт 12, 13:35    [13308252]     Ответить | Цитировать Сообщить модератору
 Re: Неактивные таблицы  [new]
kalimba
Member

Откуда:
Сообщений: 297
Если приложения взаимодействуют через ХП можно попробовать SqlCodeGuard. Также как идея не удалять таблицы сразу, а переименовывать их (например в zzz_) или сделать отдельную схему для них и перемещать туда, так будет удобнее, имхо.
12 окт 12, 13:39    [13308272]     Ответить | Цитировать Сообщить модератору
 Re: Неактивные таблицы  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34014
Блог
Александр52,

Только помните, если что - сразу есть готовый крайний.
12 окт 12, 13:51    [13308352]     Ответить | Цитировать Сообщить модератору
 Re: Неактивные таблицы  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
kalimba
переименовывать их (например в zzz_) или сделать отдельную схему для них
Ага, а потом появляются термины тильдование объектов.
Если схема всёго одна, то конечно TRANSFER-ить в отдельную, но вот когда их много, то переименовка удобнее.

sys.dm_db_index_usage_stats
Только чисто = нуль может не пойти. А вдруг вы сами перед этим из неё запрос и делали.
А с другой стороны удалять нуна не только таблы, но и лишние индексы и другие объекты, процедуры, вьюшки.
Активность процедур тоже можно выкусить из других dm_*_stats

Красивых решений нет.
Ибо то что не активная, это не значит что не нужная.
А ещё надо чистить программный код. Ваше начальство должно это понимать и у проблемы должен быть системный подход.
Это нормальная практика жизненного цикла продукта.
12 окт 12, 15:17    [13309024]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить