Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Были ли обращения к таблицам  [new]
Danion
Member

Откуда: Москва
Сообщений: 160
Добрый день.

Есть две базы с 200+ таблицами. Есть пожелания от разработки - узнать какие таблицы используются, а какие остатки древних времён. То есть через 2 месяца посмотреть и увидеть: "так эти 10 таблиц никому нужны не были удаляем".
Select + Update + Delete.
Варианты на конкретные таблицы видел через триггеры, аудит. Но там на конкретные таблицы, а на 200+ не особо удобно, плюс нужны и просто чтения данных.

Представляется что-то похожее на доп.таблицу со списком всем таблиц и полем 0\1, где значение меняется на 1, если таблица встретилась в запросе. Но тут нужно включаться проверку всего кода и скорее всего триггер. Решение кажется каким-то корявым.

Кто-то сталкивался с похожей задачей и более адекватным решением?
Заранее спасибо за ответ!
23 май 19, 16:02    [21892199]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Konst_One
Member

Откуда:
Сообщений: 11487
https://www.mssqltips.com/sqlservertip/4191/identify-unused-sql-server-tables/
23 май 19, 16:04    [21892203]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 928
Самый лучший совет, как всегда внизу статьи:
One suggestion is to rename the table with something like an underscore before actually dropping the table. This way if the table is needed you can rename the table back. If ... in a month or so ... still see no usage then you can probably drop the table.
23 май 19, 16:12    [21892217]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Danion
Member

Откуда: Москва
Сообщений: 160
Konst_One,

На изменение, из статьи можно получить что-то вроде:

use [DWH_Load]
select name, object_id, type_desc, modify_date from
sys.all_objects
where type = 'U'
order by modify_date desc

Но опять же не включает чтения.

В его основном варианте обращение к динамическим таблицам. А при перезапуске же они обнуляются. На этом хосте не только СУБД и ночные рестарты бывают.

Да, вариант отключить\переименовать всегда актуален:)
23 май 19, 16:19    [21892234]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6613
Danion
Konst_One,

На изменение, из статьи можно получить что-то вроде:

use [DWH_Load]
select name, object_id, type_desc, modify_date from
sys.all_objects
where type = 'U'
order by modify_date desc

Но опять же не включает чтения.

В его основном варианте обращение к динамическим таблицам. А при перезапуске же они обнуляются. На этом хосте не только СУБД и ночные рестарты бывают.

Да, вариант отключить\переименовать всегда актуален:)

день смеха прям...
это совсем не тот дроид modify_date что вы ищите
23 май 19, 16:21    [21892242]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Danion
Member

Откуда: Москва
Сообщений: 160
TaPaK,

Кстати, да. Это дата изменения таблицы как объекта, включая пастеризованный индекс, а не данных в таблице.
Но даже будь это изменение данных в таблице, не включает нужное.
23 май 19, 16:25    [21892248]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6613
Danion,

автор
пастеризованный индекс

ды вы издеваетесь
23 май 19, 16:25    [21892250]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Konst_One
Member

Откуда:
Сообщений: 11487
ТС, прочитай внимательно ту статейку, обрати внимание на представление sys.dm_db_index_usage_stats
23 май 19, 16:26    [21892252]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Danion
Member

Откуда: Москва
Сообщений: 160
TaPaK,

Это автозамена издевается:) Кривое написание кластеризованного изменило на пастеризованный

Обратил, общее со всеми динамическими:
При запуске службы SQL Server (MSSQLSERVER) счетчики сбрасываются в нуль. Кроме того, когда база данных отсоединяется или останавливается (например, если аргументу AUTO_CLOSE присвоено значение ON), из представления удаляются все строки, связанные с этой базой данных.

Если сервер хотя бы месяц без рестарта проработает, то можно применить.
23 май 19, 16:30    [21892258]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6613
Danion
TaPaK,

Это автозамена издевается:) Кривое написание кластеризованного изменило на пастеризованный

Обратил, общее со всеми динамическими:
При запуске службы SQL Server (MSSQLSERVER) счетчики сбрасываются в нуль. Кроме того, когда база данных отсоединяется или останавливается (например, если аргументу AUTO_CLOSE присвоено значение ON), из представления удаляются все строки, связанные с этой базой данных.

Если сервер хотя бы месяц без рестарта проработает, то можно применить.

сохранять результаты вера не позволяет?
23 май 19, 16:30    [21892259]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
iap
Member

Откуда: Москва
Сообщений: 46862
Самое правильное решение - ничего не делать.
Ибо непонятно - а зачем?!
23 май 19, 16:33    [21892262]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Danion
Member

Откуда: Москва
Сообщений: 160
TaPaK,

Какие результаты? Насколько я вижу, скрипт выдаёт таблицы по которым с момента перезапуска не использовался индекс.
Например, сейчас мне показывает 180+ таблиц. Это что значит, что они не нужны? Нет, это значит только то, что индексы по ним не использовались с ночного перезапуска.
23 май 19, 16:39    [21892270]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6613
Danion
TaPaK,

Какие результаты? Насколько я вижу, скрипт выдаёт таблицы по которым с момента перезапуска не использовался индекс.
Например, сейчас мне показывает 180+ таблиц. Это что значит, что они не нужны? Нет, это значит только то, что индексы по ним не использовались с ночного перезапуска.

какой скрипт, чего показывает? как сохранять, какие результаты... позовите взрослых если решили что-то удалять
23 май 19, 16:41    [21892276]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Danion
Member

Откуда: Москва
Сообщений: 160
TaPaK,

От Вас в данной теме не увидел ни одного предложения. Только смех над опечаткой и попытки обосновать чужой вариант, по которому я признаю возможность использования в целом, но указал минусы при частом рестарте сервера.
Хватит флудить, если нет адекватных вариантов, то ингорируйте тему.
23 май 19, 16:45    [21892284]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6613
Danion,

автор
вариант, по которому я признаю возможность использования в целом, но указал минусы при частом рестарте сервера.

вы в состоянии сохранять результаты предложенного варианта что бы не терять результаты при частом рестарте сервера? что вам ещё надо?
23 май 19, 16:47    [21892285]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36464
Кстати, "ночной рестарт" выглядит странным в наши дни.
23 май 19, 16:48    [21892288]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Konst_One
Member

Откуда:
Сообщений: 11487
auto_close вообще дичь
23 май 19, 16:52    [21892292]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
invm
Member

Откуда: Москва
Сообщений: 8805
Danion
Но там на конкретные таблицы
Аудит можно настроить на схему целиком.
23 май 19, 16:59    [21892300]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Danion
Member

Откуда: Москва
Сообщений: 160
Konst_One,

auto_close и не включен, это просто был один из пунктов с docs.microsoft.com.

По периодическим ночным рестартам - сервер аналитиков, там кроме СУБД ещё куча всего. Рестартуют весь хост. Вынос СУБД на отдельный сервер планируется.

Вариант с получением нужной инфы из скрипта из статьи действительно есть. Пожалуй, действительно попробую гибрид с моим вариантом с отметкой тех таблиц, по которым был использован индекс как нужные.
23 май 19, 17:04    [21892309]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 928
Danion,

Т.е. аналитик написал тяжелый запрос, запустил на ночь, а следующим днем будет в носу ковырять в ожидании результатов, потому что ты ночью сервер ребутнул, и он запустил запрос уже утром.

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

трустори
- Почему годовая отчетность в ЦБ не сдана вовремя? Нас оштрафовали на миллионы и почти лишили лицензии!
- Это не мы, это админ Danion без согласования дропнул таблицы, нужные для расчета балансов! На восстановление ушло 2 месяца!
23 май 19, 17:39    [21892346]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Danion
Member

Откуда: Москва
Сообщений: 160
Руслан Дамирович
Danion,

Т.е. аналитик написал тяжелый запрос, запустил на ночь, а следующим днем будет в носу ковырять в ожидании результатов, потому что ты ночью сервер ребутнул, и он запустил запрос уже утром.

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

трустори
- Почему годовая отчетность в ЦБ не сдана вовремя? Нас оштрафовали на миллионы и почти лишили лицензии!
- Это не мы, это админ Danion без согласования дропнул таблицы, нужные для расчета балансов! На восстановление ушло 2 месяца!


Прекрасно! Только админ Danion ничего дропать не будет. А по запросу от аналитиков предоставит им список таблиц в их базах, которые не использовались определенный срок. И они уже сами будут решать, что с ними делать. Совет, что не факт что неиспользуемая пару месяцев таблица им не понадобится через пол-года уже предоставлен.
23 май 19, 17:45    [21892352]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 928
Danion
Совет, что не факт что неиспользуемая пару месяцев таблица им не понадобится через пол-года уже предоставлен.

Тебя это спасет только если дроп таблиц будет оформлен в виде СЗ за подписью всех невиновных.
23 май 19, 18:14    [21892379]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 32292
Блог
iap
Самое правильное решение - ничего не делать.
Ибо непонятно - а зачем?!


Если ничего не делать, то многие доработки будут занимать в N раз больше времени, т.к. дорабатываемые таблицы используются во многих сотнях объектах, причем актуальность 90% таких объектов не ясна.

Решал такую задачу таким образом:
- каждые 10 минут делается снимок объектов в кэше;
- собираются зависимости объектов - все места, где он используется, включая SSIS-пакеты;
- анализируются права на объекте;

Соответственно, если объекта нет год в кэше, если объект больше нигде не используется, то переименовывается на удаление. Через месяц переименованный объект копируется в другую базу и удаляется с основной. Таким макаром мы удалили около 7 тысяч неактуальных объектов (несколько Тб) за 5 лет.
23 май 19, 18:51    [21892405]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 32292
Блог
Да, был случай через 3(!) года после удаления - "ой, нам это очень-очень нужно!"
23 май 19, 18:53    [21892407]     Ответить | Цитировать Сообщить модератору
 Re: Были ли обращения к таблицам  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7073
Я выбросил на мусор старые газеты/журнала жыны 8-ми летней давности, на что она попросила вернуть их обратно, т.к. еще их не читала, времени не было.
Критик
Да, был случай через 3(!) года после удаления - "ой, нам это очень-очень нужно!"
23 май 19, 19:02    [21892413]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить