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

Откуда: Россия, Москва
Сообщений: 1434
День добрый!

Есть MSSQL 2008R2 и большая таблица с данными за несколько лет. Как можно отследить, есть ли обращения к данным за прошлые года, например за 2009ый год? Пока приходит в голову только парционирование таблицы за этот год и просмотр стаистики в dmv.

С уважением, Князев Константин
6 ноя 15, 10:20    [18376837]     Ответить | Цитировать Сообщить модератору
 Re: Отследить обращение к данным  [new]
Glory
Member

Откуда:
Сообщений: 104760
Zelius
Как можно отследить, есть ли обращения к данным за прошлые года, например за 2009ый год?

select * from mytable - есть обращение "к данным за прошлые года" ?
6 ноя 15, 10:24    [18376863]     Ответить | Цитировать Сообщить модератору
 Re: Отследить обращение к данным  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1434
Glory,

да
6 ноя 15, 10:31    [18376915]     Ответить | Цитировать Сообщить модератору
 Re: Отследить обращение к данным  [new]
Glory
Member

Откуда:
Сообщений: 104760
Zelius
Glory,

да

Т.е. вам нужно знать, какие именно записи попали в результаты ?
6 ноя 15, 10:34    [18376937]     Ответить | Цитировать Сообщить модератору
 Re: Отследить обращение к данным  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1434
Glory,

мне нужно убедиться, что данные за 2009ый год не выбираются, т.е. не используются.
6 ноя 15, 10:36    [18376951]     Ответить | Цитировать Сообщить модератору
 Re: Отследить обращение к данным  [new]
Glory
Member

Откуда:
Сообщений: 104760
Zelius
мне нужно убедиться, что данные за 2009ый год не выбираются, т.е. не используются.

select top 10 * from mytable - это данные за 2009ый год или нет ?
select * from mytable where myyear=2009 and 1=0 - это данные за 2009ый год или нет ?
6 ноя 15, 10:38    [18376961]     Ответить | Цитировать Сообщить модератору
 Re: Отследить обращение к данным  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1434
Glory,

1 если в выборку попадут, то да
2 нет

я понимаю к чему Вы ведете, согласен, что вопрос странный. система не моя, меня ее администратор попросил помочь с определением, нужны ли в этой таблице на терабайт старые данные. подозреваю, что партиционирование тоже не поможет, так как сканирование или поиск по ним пройдет и в статистике покажет использование, а выбрано было что то или нет - не ясно... остается только профайлер и ручной анализ всех запросов....
6 ноя 15, 10:43    [18376990]     Ответить | Цитировать Сообщить модератору
 Re: Отследить обращение к данным  [new]
Glory
Member

Откуда:
Сообщений: 104760
Zelius
1 если в выборку попадут, то да
2 нет

Т.е. для вас "Отследить обращение к данным " все таки означает, попали ли конкретные записи из этой таблицы в конечный результат. А не обращался ли сервер к этим записям по ходу выполнения запроса
6 ноя 15, 10:46    [18377004]     Ответить | Цитировать Сообщить модератору
 Re: Отследить обращение к данным  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1434
Glory,

Да
6 ноя 15, 10:53    [18377042]     Ответить | Цитировать Сообщить модератору
 Re: Отследить обращение к данным  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31438
Zelius
я понимаю к чему Вы ведете, согласен, что вопрос странный. система не моя, меня ее администратор попросил помочь с определением, нужны ли в этой таблице на терабайт старые данные. подозреваю, что партиционирование тоже не поможет, так как сканирование или поиск по ним пройдет и в статистике покажет использование, а выбрано было что то или нет - не ясно... остается только профайлер и ручной анализ всех запросов....
Более того, эта таблица может участвовать в запросе в виде, например, where exists(...)
Т.е. будет проверяться просто факт наличия записей.

Задача не имеет "автоматизированного" решения, даже в виде прогона запросов из профайлера.

По сути, нужно просто разбираться с бизнес-логикой, и уже на основании её понять, требуются ли компании эти данные.
6 ноя 15, 11:04    [18377119]     Ответить | Цитировать Сообщить модератору
 Re: Отследить обращение к данным  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Секционирование - хороший вариант.
6 ноя 15, 12:31    [18377591]     Ответить | Цитировать Сообщить модератору
 Re: Отследить обращение к данным  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31438
Владислав Колосов
Секционирование - хороший вариант.
В принципе да, но оптимизатор, бывает, обращается к секции, хотя по условиям выборки подходящих данных там нет.
Боюсь, будет сформирована ложная статистика.
6 ноя 15, 14:35    [18378710]     Ответить | Цитировать Сообщить модератору
 Re: Отследить обращение к данным  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1434
Спасибо! Я так же думал, но вдруг ктото решал такую задачу...
6 ноя 15, 15:14    [18379005]     Ответить | Цитировать Сообщить модератору
 Re: Отследить обращение к данным  [new]
StarikNavy
Member

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

перенесите данные в другую таблицу (с аналогичной структурой) , в исходной, ненужные года - удалите.
если прибегут разгневанные товарищи - вернете
6 ноя 15, 15:25    [18379099]     Ответить | Цитировать Сообщить модератору
 Re: Отследить обращение к данным  [new]
o-o
Guest
Zelius,

у нас сделано так:
вместо одной базы -- три.
одна текущая, вторая архивная, READ ONLY.
в третьей вьюхи, в каждой UNION ALL селектов из одноименных таблиц тех двух баз.
архивную базу забэкапили 1 раз и больше не трогают.
других плюсов вроде нет,
но хотя бы на бэкапах экономия.
и это не только место.
при наших супер-пупер дисках бэкапы(сам процесс) очень хорошо чувствуются
6 ноя 15, 15:30    [18379151]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить