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

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

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


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

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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



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

надеюсь вы работаете не на стратегическом объекте?
...
Рейтинг: 0 / 0
переполнение бд.mdf
    #40110951
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() )
...
Рейтинг: 0 / 0
переполнение бд.mdf
    #40111017
Sqululu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Oleg_SQL
Sqululu,

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


я тоже сначала об это задумывался в серьёз но потом товарищ майор прогнал эти мысли из головы (ногами)
- шутка
не совсем
...
Рейтинг: 0 / 0
переполнение бд.mdf
    #40111021
Sqululu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
переполнение бд.mdf
    #40111047
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
переполнение бд.mdf
    #40111149
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Squluluперевожу в простую. потом шринк и обратно в полную,Не надо обратно в полную переводить. Это для трусливых, которые так хотят восстановить на любую дату, что готовы регуляно бакапить лог.
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / переполнение бд.mdf
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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