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

Откуда:
Сообщений: 1214
Я про картинку понял. Просто у меня все данные на экран не помещаются, и скришноты склеивать мне лень. Поэтому я спрашиваю что именно в диск юзейдж смотреть.
10 июн 13, 14:03    [14414958]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Cammomile
Вот мне пишут DBCC SHRINKDATABASE

Потому что, кто-то решил, что ваше "ужать"(в кавычках) соответствует SHRINK(сжатию по-англ.)

Cammomile
Я сейчас прочитаю хелп, изучу какие темы поднимались на форуме, спрошу гугл про 'DBCC SHRINKDATABASE common issues' и потом буду делать выводы: нажать таск- шринк; сказать админам чтобы нажали таск-шринк; сказать ЛПР что "извините, базу мы ужать не можем, ускорьте покупку хардов"

Т.е. вы будете изучать команду, не зная а даст ли вообще она какой-то эффект для вашей базы ?

Cammomile
Еще раз: я спрашиваю какие есть методы решения вопроса, и не прошу за меня решать что делать. Это так сложно?

Выяснять, что и сколько места занимает в каждом файле вашей базы. И _можно_ ли неиспользуемое место ворнуть оп.системе. И _нужно_ ли это делать.
Потому что, что еще может использовать место в файлах базы, как не ваш одинокостоящий сервер ?
10 июн 13, 14:07    [14414980]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31984
Cammomile
Вот мне пишут DBCC SHRINKDATABASE

Я сейчас прочитаю хелп, изучу какие темы поднимались на форуме, спрошу гугл про 'DBCC SHRINKDATABASE common issues' и потом буду делать выводы: нажать таск- шринк; сказать админам чтобы нажали таск-шринк;
Судя по статистике, SHRINKDATABASE не поможет, нету у вас свободного места.
Так что см. мой совет выше.
10 июн 13, 14:07    [14414984]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
alexeyvg

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

Далее:
- принять решение по устранению ошибок и по чистке старых ненужных данных,
- потом соответственно ошибки устранить, данные почистить, и при необходимости сжать файлы, если свободное пространство в них не может быть использовано сервером.


Прежде всего спасибо за конструктив.
Теперь более предметно:
- разобраться с физической и логической моделью базы,
В каком смысле разобраться?
- потом посмотреть распределение физических объектов по файлам,
в смсле таблицы представления прочее?
- сделать прогноз роста файлов
Я сделал так. Джобом писал ( и продолжаю писать) в специально обученную табличку оставшееся на харде свободное место. Потом построил линейную регрессию.
- выявить неиспользуемое пространство, и сделать прогноз его роста
Это как ?
10 июн 13, 14:11    [14415023]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Cammomile
Я сделал так. Джобом писал ( и продолжаю писать) в специально обученную табличку оставшееся на харде свободное место. Потом построил линейную регрессию.
- выявить неиспользуемое пространство, и сделать прогноз его роста
Это как ?

Свободное место на диске ничего не говорит об использовании места в файлах.
10 июн 13, 14:12    [14415031]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Судя по стандартному отчету Data File Space Usage: Unused = 0.16 %
10 июн 13, 14:13    [14415038]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
sp_spaceused
Guest
exec master.sys.sp_MSForEachDB 'exec ?.sys.sp_spaceused'
10 июн 13, 14:14    [14415043]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
sp_spaceused
exec master.sys.sp_MSForEachDB 'exec ?.sys.sp_spaceused'


database_name database_size unallocated space

MyDBName 357380.25 MB 81518.88 MB

reserveddataindex_sizeunused
------------------------------------------------------------------------
279101816KB95000192KB183517760KB583864KB


Сообщение было отредактировано: 10 июн 13, 14:20
10 июн 13, 14:17    [14415065]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
logspace
Guest
Cammomile
sp_spaceused
exec master.sys.sp_MSForEachDB 'exec ?.sys.sp_spaceused'


database_name database_size unallocated space

MyDBName 357380.25 MB 81518.88 MB

reserved data index_size unused
------------------ ------------------ ------------------ ------------------
279101816 KB 95000192 KB 183517760 KB 583864 KB


тут ловить нечего

а что с логами?
dbcc sqlperf(logspace)
10 июн 13, 14:21    [14415102]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
dbcc sqlperf(logspace)

Database Name Log Size (MB) Log Space Used (%) Status
-------------------------------------------------------------------------------------------------------------------------------- ------------- ------------------ -----------
master 10,92969 27,94853 0
tempdb 2553,555 33,98005 0
model 74,92969 91,38776 0
msdb 19,61719 31,30227 0
ReportServer 0,8046875 59,76942 0
ReportServerTempDB 0,8046875 60,43689 0
AdventureWorksDW 1,992188 25,09804 0
AdventureWorks 1,992188 20,58824 0
MyDBName 3300,992 1,205485 0
10 июн 13, 14:26    [14415147]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
А как вставить копипасту грида чтобы она на форуме была красивым гридом?
10 июн 13, 14:27    [14415154]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31984
Cammomile
- разобраться с физической и логической моделью базы,
В каком смысле разобраться?
В смысле их знать. Если речь не о простой распространённой баге, когда лог переполняет диск, то без знаниЯ модели вы не сможете принимать решения. Допустим, бизнес вам скажет - "не, нам не нужны данные по действиям менеджеров за позапрошлый год, если они (менеджеры) у нас больше не работают". А вы должны будете понать, каким объектом в БД это соответствует и какие критерии удаления данных нужно использовать.
Cammomile
- потом посмотреть распределение физических объектов по файлам,
в смсле таблицы представления прочее?
Да

Cammomile
- сделать прогноз роста файлов
Я сделал так. Джобом писал ( и продолжаю писать) в специально обученную табличку оставшееся на харде свободное место. Потом построил линейную регрессию.
Это гадание, а не прогноз.

Допустим, как я вижу, у вас создаются пустые секции, некоторое время не растут, потом растут (а потом может быть удаляются). Какой можно по ним составить прогноз?
Хотя да, лучше так, чем вообще никакой инфы, может и поможет...

Cammomile
- выявить неиспользуемое пространство, и сделать прогноз его роста
Это как ?
Это прямо так, дословно так и надо сделать. Выявить и спрогнозировать.
Cammomile
Судя по стандартному отчету Data File Space Usage: Unused = 0.16 %
Да, вот поэтому я и говорил, что шринк не нужен, и этот пункт можно пропустить.

Однако когда вы будете удалять данные, это пространство появится, и вам нужно будет спрогнозировать, будет оно использоваться под новые данные, или так и останется неиспользуемым и только занимающим место на дисках.
10 июн 13, 14:28    [14415158]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Cammomile
А как вставить копипасту грида чтобы она на форуме была красивым гридом?

Изучить меню офромления сообщения
Использовать кнопку Просмотр
10 июн 13, 14:29    [14415165]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31984
Cammomile
А как вставить копипасту грида чтобы она на форуме была красивым гридом?
У вас же получилось 14414645 , только нужно заголовок добавлять
10 июн 13, 14:38    [14415234]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Вот топ 12 табличек, остальные мелочевка. (кстати вот спасибо за "стандартные отчеты" , уже польза)
Пару "средненьких" можно более менее уверенно дропнуть, т.к. предыдущими разработчиками они помеченнны как "бекап".
Первые 3 таблицы - основные данные системы.


Table Name# RecordsReserved (KB)Data (KB)Indexes (KB)Unused (KB)
dbo.t1346 149 278197 627 20049 347 688148 217 55261 960
dbo.t2156 080 77530 040 82417 172 68812 803 08865 048
dbo.t337 128 04316 892 5364 088 01612 486 640317 880
dbo.t427 492 2909 593 3363 559 8166 032 872648
dbo.t533 629 5123 915 9283 915 904240
dbo.t628 855 3323 672 7363 672 6563248
dbo.t729 948 4983 377 4963 377 4402432
dbo.t815 166 1952 323 8321 560 456762 0881 288
dbo.t93 653 4822 110 9361 552 256482 11276 568
dbo.t105 967 8851 763 224714 1441 047 4001 680
dbo.t114 697 8641 389 288776 816610 5841 888
dbo.t121 336 6711 331 9281 147 384183 576968
10 июн 13, 14:42    [14415276]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31984
Cammomile
Вот топ 12 табличек, остальные мелочевка. (кстати вот спасибо за "стандартные отчеты" , уже польза)
Пару "средненьких" можно более менее уверенно дропнуть, т.к. предыдущими разработчиками они помеченнны как "бекап".
Первые 3 таблицы - основные данные системы.
Ну вот у вас вся база в первых 4-х таблицах (а в общем, просто в первой таблице). Из предыдущего запроса видно, что свободного пространства нет.

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

С точки зрения бизнеса понятно, что дешевле выделить место на дисках, но это уж вам решать.

Кстати, вместо удаления таблиц можно вначале их переименовать, а потом, через несколько дней, удалить. Для надёжности.
10 июн 13, 14:49    [14415330]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Алексей Куренков
Member [заблокирован]

Откуда: Москва
Сообщений: 567
Cammomile
Вот топ 12 табличек, остальные мелочевка. (кстати вот спасибо за "стандартные отчеты" , уже польза)
Пару "средненьких" можно более менее уверенно дропнуть, т.к. предыдущими разработчиками они помеченнны как "бекап".
Первые 3 таблицы - основные данные системы.


Table Namet# RecordstReserved (KB)tData (KB)tIndexes (KB)tUnused (KB)t
dbo.t1t346 149 278t197 627 200t49 347 688t148 217 552t61 960t
dbo.t2t156 080 775t30 040 824t17 172 688t12 803 088t65 048t
dbo.t3t37 128 043t16 892 536t4 088 016t12 486 640t317 880t
dbo.t4t27 492 290t9 593 336t3 559 816t6 032 872t648t
dbo.t5t33 629 512t3 915 928t3 915 904t24t0t
dbo.t6t28 855 332t3 672 736t3 672 656t32t48t
dbo.t7t29 948 498t3 377 496t3 377 440t24t32t
dbo.t8t15 166 195t2 323 832t1 560 456t762 088t1 288t
dbo.t9t3 653 482t2 110 936t1 552 256t482 112t76 568t
dbo.t10t5 967 885t1 763 224t714 144t1 047 400t1 680t
dbo.t11t4 697 864t1 389 288t776 816t610 584t1 888t
dbo.t12t1 336 671t1 331 928t1 147 384t183 576t968t


Меня терзают смутные сомнения что многие индексы и не нужны в некоторых таблицах. Похоже у Вас "федерация" - вьюха в которой select * from t1 union all select * from t2 union all .......
если так, то по структуре t1, t2, ... t12 должны быть одинаковыми (ну по логике по крайней мере), а если сравнить размер индексов и данных в процентном соотношении у таблиц t1 и скажем t4 то явно видно то, что на этих таблицах разные индексы.
Может посмотреть в сторону удаления неиспользуемых индексов? на приведения к единой структуре таблиц участвующих в федерации?
10 июн 13, 14:51    [14415355]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31984
Алексей Куренков
Меня терзают смутные сомнения что многие индексы и не нужны в некоторых таблицах. Похоже у Вас "федерация" - вьюха в которой select * from t1 union all select * from t2 union all .......
если так, то по структуре t1, t2, ... t12 должны быть одинаковыми (ну по логике по крайней мере), а если сравнить размер индексов и данных в процентном соотношении у таблиц t1 и скажем t4 то явно видно то, что на этих таблицах разные индексы.
Может посмотреть в сторону удаления неиспользуемых индексов? на приведения к единой структуре таблиц участвующих в федерации?
Вот я про это и говорил ТС: "без знания модели вы не сможете принимать решения"...

В общем, нету кнопки "уменьшить базу в два раза" :-)
10 июн 13, 14:55    [14415380]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Алексей Куренков,
Нет, это не федерация.
т1 - продажи ботвы
Т2 - остатки ботвы на складах
Т3 - документы нагенеренные продажами

Остальное - всяческие справочники.


alexeyvg, дельный совет, спасибо.

Следующий вопрос. Если я таки определюсь что можно удалять, и удалю - какие действия потом надо будет предпринять, чтобы "систеема" поняла что место точно свободно?



ps
Небольшой офтопик, чтобы повеселить честную компанию. У нас тут нет тестового сервака, от слова вообще =)
10 июн 13, 14:59    [14415419]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
pps
У меня есть знание модели. Не всё так плохо...
10 июн 13, 15:00    [14415436]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
"С точки зрения бизнеса понятно, что дешевле выделить место на дисках, но это уж вам решать."
Выделяторы места мне пишут, что увы и ах нет мест, непонятно когда будет, и не могли бы вы оценить можно ли что-либо сделать с БД, пока мы решаем вопрос закупок.

Собственно тут весь топик не про то, как нажать кнопку "сделать все и хорошо", а как выиграть время до того, как диски купят поставят.
10 июн 13, 15:02    [14415465]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Алексей Куренков
Member [заблокирован]

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

Я не настаиваю на мнении, но на Вашем бы месте, я бы проапгрейдил SQL Server до 2008R2 (а может и сразу до 2012 - апгрейд так по максимуму), естественно предварительно сделав бэкапы баз данных, также заскриптовал бы все джобы, линкованные сервера, логины (логины скриптовать можно например так). Далее, после восстановления на новом SQL Server всех рабочих БД, применил бы постраничную компрессию к таблицам большим (ну или хотябы построчную). Всю эту "лабуду" можно сделать в нерабочее время за один выходной день, оффлайн сервера можно согласовать с руководством.
В любом случае этот вариант можно сделать самому без закупки железа. Вопрос лицензии MSSQL открыт остается, при желании можно "временно" стянуть с торента.
Или как пишут коллеги, понимание более глубоко структуры, удаление неиспользуемых данных и т.п. 2й вариант может и более правильный, но по времени с ним зависнуть можно намного дольше.
10 июн 13, 15:10    [14415544]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Ведущая международная корпорация просто не может взять и купить новый эскуэль сервер. :D Они это решение рожать будут от полугода. Это при том, что я смогу убедить бизнес в том, что на это надо тратить деньги (что не очень важно) и усилия. И о пиратской версии речи быть в принципе не может.


Приходится крутиться с тем что есть. А есть сервак и права SA на него.
10 июн 13, 15:16    [14415609]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Алексей Куренков
я бы проапгрейдил SQL Server до 2008R2 (а может и сразу до 2012 - апгрейд так по максимуму)
этот вариант можно сделать самому без закупки железа. Вопрос лицензии MSSQL открыт остается, при желании можно "временно" стянуть с торента.

Офигеть. На своей работе вы тоже так вот запросто устанавливаете софт на ХХ миллионов рублей? А работодатель в курсе таких подстав?
10 июн 13, 15:18    [14415628]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли "ужать" базу?  [new]
Алексей Куренков
Member [заблокирован]

Откуда: Москва
Сообщений: 567
Гость333,

Несколько лет назад, когда работал в регионе не в дефолт сити, я так и поступал. А сейчас у работодателя премьер поддержка Microsoft - ставь что хочешь, если это нужно. В новом году будет аудит Microsoft и переоценка бюджета... ))))).
Да, я согласен, что, например дома, я использую на 99% пиратское ПО (Касперского только купил), и как бы меня это не особо и парит.... будут "претензии" от внешних аудиторов - снесу все - поставлю дома убунту бесплатную - фильмы идут, RDP Client есть, инет тоже - больше ничего и не нужно.

А сейчас, в частности когда вопрос я задаю руководству о приобретении системы мониторинга, мне отвечают - поставь или из бесплатных или с торента скачай то что тебе нужно ))))))))). И даже в дефолт сити в корпорациях многих нет заморочек не заплатить многомилионов за софт. Нафига платить если это есть бесплатно и не будет штрафов? )))))
10 июн 13, 15:53    [14415993]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить