Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / переполнение бд.mdf / 25 сообщений из 28, страница 1 из 2
09.11.2021, 15:52
    #40110348
Sqululu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Не юзаю sql запросы потому есть некоторое непонимание сути произходящего.
Есть бд sql server 2014 которая обрабатывает запросы со скады верхнего уровня. Размер файла самой бд.mdf медленно но верно увеличивается, как установить причины увеличения размеров? и как это дело можно оптимизировать? (Изначально файл базы занимал пару ГБ)
Шинк данных и файлов журнала делаю периодически, спасает только от переполнения журналов, а вот с базой как быть?
нашел конкретно какая таблица забивает, это аналоговые сигналы (19ГБ) и дискреты (3 ГБ)
...
Рейтинг: 0 / 0
09.11.2021, 15:59
    #40110351
Oleg_SQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Sqululu,

Удивительная вещь...
Если базу сделать ReadOnly то она расти перестанет ))))
...
Рейтинг: 0 / 0
09.11.2021, 16:08
    #40110360
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Sqululu,

файлы всегда растут по одной причине - в них производится запись.
...
Рейтинг: 0 / 0
09.11.2021, 16:10
    #40110361
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Sqululu
с базой как быть?
нашел конкретно какая таблица забивает, это аналоговые сигналы (19ГБ) и дискреты (3 ГБ)


попробуйте компрессию
https://sqlespresso.com/2018/10/31/how-much-will-compression-really-gain-me/
...
Рейтинг: 0 / 0
09.11.2021, 18:00
    #40110409
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Sqululu Есть бд sql server 2014А на картинке версия 13.0.1601 - SQL2016 причем не патченный. После первого сервис пака в этой версии для Standard редакции открылось много вкусных фич.
Sqululu и как это дело можно оптимизировать?Давайте критерии оптимизации подскажем.
Sqululu Шинк данных и файлов журнала делаю периодическиНе делайте шринк
...
Рейтинг: 0 / 0
09.11.2021, 20:00
    #40110448
flexgen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Sqululu,

Ну раз нашел какие таблицы растут, то следующий шаг - выяснить, сколько времени эти данные должны храниться. После того как выяснишь, надо настроить scheduled job, который будет удалять ненужные данные.
...
Рейтинг: 0 / 0
10.11.2021, 07:57
    #40110513
Sqululu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Oleg_SQL,

очень интересно, а как это сделать?
...
Рейтинг: 0 / 0
10.11.2021, 08:01
    #40110514
Sqululu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
flexgen,

Данные приходят с системы реального времени, больше месяца их держать смысла нету. а как это настроить? Автоудаление?
...
Рейтинг: 0 / 0
10.11.2021, 08:02
    #40110515
Sqululu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
SERG1257, почему не делать шринк? это же в рекомендациях по оптимизации скуля есть
...
Рейтинг: 0 / 0
10.11.2021, 08:14
    #40110519
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Sqululu
почему не делать шринк?

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

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

Рекомендации не токмо читать, еще понимать надобно.
...
Рейтинг: 0 / 0
10.11.2021, 18:55
    #40110842
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Sqululu
SERG1257, почему не делать шринк? это же в рекомендациях по оптимизации скуля есть
Это рекомендации для 1С-ников, угадал? Их обычно пишут не-специалисты по сиквелу :-)
...
Рейтинг: 0 / 0
10.11.2021, 20:27
    #40110873
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Еще раз - на что жалуетесь. Где болит?
Долго идет бакап (это не важно), долго будет восстановление из бакапа (а это уже серьезнее) или checkdb
Долго идет вставка/обработка или виснут запросы?
Кончается место на диске?

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

Sqululu почему не делать шринк?Потому что сначала надо дать себе ответ - зачем я это делаю, какую проблему пытаюсь решить.
...
Рейтинг: 0 / 0
10.11.2021, 20:57
    #40110885
Владимир Лазурко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
aleks222
Патаму, что MS SQL умеет использовать освободившееся место.
умеет дефрагментировать записи в таблицах.
а потом уже ... хотя все арвно будут новые записи
вот и правда, зачем шринк?
...
Рейтинг: 0 / 0
11.11.2021, 07:56
    #40110926
Sqululu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Владимир Лазурко
aleks222
Патаму, что MS SQL умеет использовать освободившееся место.
умеет дефрагментировать записи в таблицах.
а потом уже ... хотя все арвно будут новые записи
вот и правда, зачем шринк?


у меня как то была проблема с журналами, стали занимать много места на диске, шринк выручил очень
...
Рейтинг: 0 / 0
11.11.2021, 07:56
    #40110927
Sqululu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
alexeyvg
Sqululu
SERG1257, почему не делать шринк? это же в рекомендациях по оптимизации скуля есть
Это рекомендации для 1С-ников, угадал? Их обычно пишут не-специалисты по сиквелу :-)


нет, у мелкомягких в сапорте где то читал
...
Рейтинг: 0 / 0
11.11.2021, 08:02
    #40110928
Sqululu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
SERG1257,

Никогда не делал восстановления из бэкапа, но бэкапы базы делаю периодически (хотя всеравно снимаю образ системы, и бэкап бд как бы не критичен), с этим затруднений не возникало.
Дело в том, что при каждом снятии образа (акронис например) размер самого файла увеличивается, выяснял причину, оказалось что причина в самом файле бд. Хранить столько устаревших данных не требуется, потому нужно удалить старые записи из конкретных таблиц
...
Рейтинг: 0 / 0
11.11.2021, 08:34
    #40110933
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Sqululu у меня как то была проблема с журналами, стали занимать много места на диске
переводите базу в простую модель восстановления

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

пишите скрипт по удалению не нужных строк (тестировать скрипт лучше на другой базе восстановленой из бакапа)
Запускайте скрипт либо из агента (на картинке он у вас отключен)
либо из любого другого шедулера
...
Рейтинг: 0 / 0
11.11.2021, 09:12
    #40110944
Sqululu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
SERG1257,

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

по поводу правильности производства бэкапа подскажите пож. тему из этого форума если есть (наверное все таки есть)
...
Рейтинг: 0 / 0
11.11.2021, 09:25
    #40110946
Sqululu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Код: sql
1.
DELETE FROM [SignalsAnalogs] where  '2018-01-01' > dateadd (month,-2,getdate() )



на восстановленной виртуалке применил вот это (нашел где то) удалились все записи, место освободилось, но как сделать так чтобы записи за последние 2 месяца не удалялись(не понял условия) ?
...
Рейтинг: 0 / 0
11.11.2021, 09:27
    #40110947
Oleg_SQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Sqululu,

надеюсь вы работаете не на стратегическом объекте?
...
Рейтинг: 0 / 0
11.11.2021, 09:49
    #40110951
Oleg_SQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Sqululu
Код: sql
1.
DELETE FROM [SignalsAnalogs] where  '2018-01-01' > dateadd (month,-2,getdate() )



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



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

Удалить все, что старее 2-х месяцев:
Код: sql
1.
DELETE FROM [SignalsAnalogs] where  [Название поля с датой ИЗ ТАБЛИЦЫ] < dateadd (month,-2,getdate() )
...
Рейтинг: 0 / 0
11.11.2021, 14:24
    #40111017
Sqululu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Oleg_SQL
Sqululu,

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


я тоже сначала об это задумывался в серьёз но потом товарищ майор прогнал эти мысли из головы (ногами)
- шутка
не совсем
...
Рейтинг: 0 / 0
11.11.2021, 14:35
    #40111021
Sqululu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Oleg_SQL
Sqululu
Код: sql
1.
DELETE FROM [SignalsAnalogs] where  '2018-01-01' > dateadd (month,-2,getdate() )



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



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

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



- образ накатил
- сам низнаю что
- а формат даты нужно в квадратных скобках указывать? не опострофы чтоли? там название что то вроде 2021-09-01 16:34:41 167, не очень понятно каким образом указывать в дате?
...
Рейтинг: 0 / 0
11.11.2021, 15:28
    #40111047
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Sqululu
Oleg_SQL
пропущено...



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

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



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

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


и для начала посчитайте кол-во сколько записей. При большом кол-ве, будет долго отвисать и придется удалять пачками
примерно так
Код: sql
1.
2.
3.
4.
5.
6.
while 1=1
begin
	DELETE top (10000) FROM [SignalsAnalogs] where  [RegTime] < dateadd (month,-2,getdate() )
	if @@rowcount = 0 
		break
end
...
Рейтинг: 0 / 0
11.11.2021, 20:13
    #40111149
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переполнение бд.mdf
Squluluперевожу в простую. потом шринк и обратно в полную,Не надо обратно в полную переводить. Это для трусливых, которые так хотят восстановить на любую дату, что готовы регуляно бакапить лог.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / переполнение бд.mdf / 25 сообщений из 28, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]