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

Откуда: сМарса
Сообщений: 41
Не юзаю sql запросы потому есть некоторое непонимание сути произходящего.
Есть бд sql server 2014 которая обрабатывает запросы со скады верхнего уровня. Размер файла самой бд.mdf медленно но верно увеличивается, как установить причины увеличения размеров? и как это дело можно оптимизировать? (Изначально файл базы занимал пару ГБ)
Шинк данных и файлов журнала делаю периодически, спасает только от переполнения журналов, а вот с базой как быть?
нашел конкретно какая таблица забивает, это аналоговые сигналы (19ГБ) и дискреты (3 ГБ)

К сообщению приложен файл. Размер - 16Kb
9 ноя 21, 15:52    [22393702]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Oleg_SQL
Member

Откуда: от туда
Сообщений: 241
Sqululu,

Удивительная вещь...
Если базу сделать ReadOnly то она расти перестанет ))))
9 ноя 21, 15:59    [22393705]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 9155
Sqululu,

файлы всегда растут по одной причине - в них производится запись.
9 ноя 21, 16:08    [22393715]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
komrad
Member

Откуда:
Сообщений: 5910
Sqululu
с базой как быть?
нашел конкретно какая таблица забивает, это аналоговые сигналы (19ГБ) и дискреты (3 ГБ)


попробуйте компрессию
https://sqlespresso.com/2018/10/31/how-much-will-compression-really-gain-me/
9 ноя 21, 16:10    [22393718]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
SERG1257
Member

Откуда:
Сообщений: 2931
Sqululu
Есть бд sql server 2014
А на картинке версия 13.0.1601 - SQL2016 причем не патченный. После первого сервис пака в этой версии для Standard редакции открылось много вкусных фич.
Sqululu
и как это дело можно оптимизировать?
Давайте критерии оптимизации подскажем.
Sqululu
Шинк данных и файлов журнала делаю периодически
Не делайте шринк
9 ноя 21, 18:00    [22393779]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 910
Sqululu,

Ну раз нашел какие таблицы растут, то следующий шаг - выяснить, сколько времени эти данные должны храниться. После того как выяснишь, надо настроить scheduled job, который будет удалять ненужные данные.
9 ноя 21, 20:00    [22393843]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Sqululu
Member

Откуда: сМарса
Сообщений: 41
Oleg_SQL,

очень интересно, а как это сделать?
10 ноя 21, 07:57    [22393960]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Sqululu
Member

Откуда: сМарса
Сообщений: 41
flexgen,

Данные приходят с системы реального времени, больше месяца их держать смысла нету. а как это настроить? Автоудаление?
10 ноя 21, 08:01    [22393962]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Sqululu
Member

Откуда: сМарса
Сообщений: 41
SERG1257, почему не делать шринк? это же в рекомендациях по оптимизации скуля есть
10 ноя 21, 08:02    [22393963]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
aleks222
Member

Откуда:
Сообщений: 1846
Sqululu
почему не делать шринк?

Патаму, что MS SQL умеет использовать освободившееся место.
А хомячку лучше купит колесо - пущай бегает.

Sqululu
это же в рекомендациях по оптимизации скуля есть

Рекомендации не токмо читать, еще понимать надобно.
10 ноя 21, 08:14    [22393967]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32173
Sqululu
SERG1257, почему не делать шринк? это же в рекомендациях по оптимизации скуля есть
Это рекомендации для 1С-ников, угадал? Их обычно пишут не-специалисты по сиквелу :-)
10 ноя 21, 18:55    [22394376]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
SERG1257
Member

Откуда:
Сообщений: 2931
Еще раз - на что жалуетесь. Где болит?
Долго идет бакап (это не важно), долго будет восстановление из бакапа (а это уже серьезнее) или checkdb
Долго идет вставка/обработка или виснут запросы?
Кончается место на диске?

Sqululu
больше месяца их держать смысла нету
В этой базе или вообще. То бишь данные можно удалять или таки переносить в архив.
Кто автор приложения? Может есть какой нибудь штатный протестированный метод удаления без побочных эффектов.
Далее, если данные будут в блобах то просто удаление не освободит место.

Sqululu
почему не делать шринк?
Потому что сначала надо дать себе ответ - зачем я это делаю, какую проблему пытаюсь решить.
10 ноя 21, 20:27    [22394416]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Владимир Лазурко
Member

Откуда: Slovensko
Сообщений: 8098
aleks222
Патаму, что MS SQL умеет использовать освободившееся место.
умеет дефрагментировать записи в таблицах.
а потом уже ... хотя все арвно будут новые записи
вот и правда, зачем шринк?
10 ноя 21, 20:57    [22394429]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Sqululu
Member

Откуда: сМарса
Сообщений: 41
Владимир Лазурко
aleks222
Патаму, что MS SQL умеет использовать освободившееся место.
умеет дефрагментировать записи в таблицах.
а потом уже ... хотя все арвно будут новые записи
вот и правда, зачем шринк?


у меня как то была проблема с журналами, стали занимать много места на диске, шринк выручил очень
11 ноя 21, 07:56    [22394504]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Sqululu
Member

Откуда: сМарса
Сообщений: 41
alexeyvg
Sqululu
SERG1257, почему не делать шринк? это же в рекомендациях по оптимизации скуля есть
Это рекомендации для 1С-ников, угадал? Их обычно пишут не-специалисты по сиквелу :-)


нет, у мелкомягких в сапорте где то читал
11 ноя 21, 07:56    [22394505]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Sqululu
Member

Откуда: сМарса
Сообщений: 41
SERG1257,

Никогда не делал восстановления из бэкапа, но бэкапы базы делаю периодически (хотя всеравно снимаю образ системы, и бэкап бд как бы не критичен), с этим затруднений не возникало.
Дело в том, что при каждом снятии образа (акронис например) размер самого файла увеличивается, выяснял причину, оказалось что причина в самом файле бд. Хранить столько устаревших данных не требуется, потому нужно удалить старые записи из конкретных таблиц
11 ноя 21, 08:02    [22394506]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
SERG1257
Member

Откуда:
Сообщений: 2931
Sqululu
у меня как то была проблема с журналами, стали занимать много места на диске

переводите базу в простую модель восстановления

Sqululu
Никогда не делал восстановления из бэкапа
бакап шредингера

пишите скрипт по удалению не нужных строк (тестировать скрипт лучше на другой базе восстановленой из бакапа)
Запускайте скрипт либо из агента (на картинке он у вас отключен)
либо из любого другого шедулера
11 ноя 21, 08:34    [22394514]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Sqululu
Member

Откуда: сМарса
Сообщений: 41
SERG1257,

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

по поводу правильности производства бэкапа подскажите пож. тему из этого форума если есть (наверное все таки есть)

Сообщение было отредактировано: 11 ноя 21, 09:15
11 ноя 21, 09:12    [22394528]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Sqululu
Member

Откуда: сМарса
Сообщений: 41
DELETE FROM [SignalsAnalogs] where  '2018-01-01' > dateadd (month,-2,getdate() )


на восстановленной виртуалке применил вот это (нашел где то) удалились все записи, место освободилось, но как сделать так чтобы записи за последние 2 месяца не удалялись(не понял условия) ?
11 ноя 21, 09:25    [22394530]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Oleg_SQL
Member

Откуда: от туда
Сообщений: 241
Sqululu,

надеюсь вы работаете не на стратегическом объекте?
11 ноя 21, 09:27    [22394532]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Oleg_SQL
Member

Откуда: от туда
Сообщений: 241
Sqululu
DELETE FROM [SignalsAnalogs] where  '2018-01-01' > dateadd (month,-2,getdate() )


на восстановленной виртуалке применил вот это (нашел где то) удалились все записи, место освободилось, но как сделать так чтобы записи за последние 2 месяца не удалялись(не понял условия) ?



А какая дата у вас на виртуалке установлена? ))
GetDate() что возвращает?

Удалить все, что старее 2-х месяцев:
DELETE FROM [SignalsAnalogs] where  [Название поля с датой ИЗ ТАБЛИЦЫ] < dateadd (month,-2,getdate() )
11 ноя 21, 09:49    [22394538]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Sqululu
Member

Откуда: сМарса
Сообщений: 41
Oleg_SQL
Sqululu,

надеюсь вы работаете не на стратегическом объекте?


я тоже сначала об это задумывался в серьёз но потом товарищ майор прогнал эти мысли из головы (ногами)
- шутка
не совсем
11 ноя 21, 14:24    [22394640]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Sqululu
Member

Откуда: сМарса
Сообщений: 41
Oleg_SQL
Sqululu
DELETE FROM [SignalsAnalogs] where  '2018-01-01' > dateadd (month,-2,getdate() )


на восстановленной виртуалке применил вот это (нашел где то) удалились все записи, место освободилось, но как сделать так чтобы записи за последние 2 месяца не удалялись(не понял условия) ?



А какая дата у вас на виртуалке установлена? ))
GetDate() что возвращает?

Удалить все, что старее 2-х месяцев:
DELETE FROM [SignalsAnalogs] where  [Название поля с датой ИЗ ТАБЛИЦЫ] < dateadd (month,-2,getdate() )


- образ накатил
- сам низнаю что
- а формат даты нужно в квадратных скобках указывать? не опострофы чтоли? там название что то вроде 2021-09-01 16:34:41 167, не очень понятно каким образом указывать в дате?

К сообщению приложен файл. Размер - 31Kb
11 ноя 21, 14:35    [22394645]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3104
Sqululu
Oleg_SQL
пропущено...



А какая дата у вас на виртуалке установлена? ))
GetDate() что возвращает?

Удалить все, что старее 2-х месяцев:
DELETE FROM [SignalsAnalogs] where  [Название поля с датой ИЗ ТАБЛИЦЫ] < dateadd (month,-2,getdate() )


- образ накатил
- сам низнаю что
- а формат даты нужно в квадратных скобках указывать? не опострофы чтоли? там название что то вроде 2021-09-01 16:34:41 167, не очень понятно каким образом указывать в дате?

не нужно указывать дату, а нужно указать поле, где эта дата хранится
DELETE FROM [SignalsAnalogs] where  [RegTime] < dateadd (month,-2,getdate() )

и для начала посчитайте кол-во сколько записей. При большом кол-ве, будет долго отвисать и придется удалять пачками
примерно так
while 1=1
begin
	DELETE top (10000) FROM [SignalsAnalogs] where  [RegTime] < dateadd (month,-2,getdate() )
	if @@rowcount = 0 
		break
end
11 ноя 21, 15:28    [22394675]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
SERG1257
Member

Откуда:
Сообщений: 2931
Sqululu
перевожу в простую. потом шринк и обратно в полную,
Не надо обратно в полную переводить. Это для трусливых, которые так хотят восстановить на любую дату, что готовы регуляно бакапить лог.
11 ноя 21, 20:13    [22394810]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Sqululu
Member

Откуда: сМарса
Сообщений: 41
обратил внимание, что при удалении всех записей в той же папке Data, очень сильно вырос файл логов .ldf. Возможно ли удаление записей без автоматического логгирования? как вообще это можно отключить?
12 ноя 21, 10:00    [22394928]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
Sqululu
Member

Откуда: сМарса
Сообщений: 41
SERG1257
Sqululu
перевожу в простую. потом шринк и обратно в полную,
Не надо обратно в полную переводить. Это для трусливых, которые так хотят восстановить на любую дату, что готовы регуляно бакапить лог.


а в чем разница между ними? функционально
12 ноя 21, 13:26    [22395041]     Ответить | Цитировать Сообщить модератору
 Re: переполнение бд.mdf  [new]
SERG1257
Member

Откуда:
Сообщений: 2931
Sqululu
а в чем разница между ними?
Отсюда и до обеда
https://docs.microsoft.com/ru-ru/sql/relational-databases/backup-restore/recovery-models-sql-server?view=sql-server-ver15
12 ноя 21, 17:25    [22395227]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Microsoft SQL Server Ответить