Выгрузка-загрузка большой базы в dt файл

1. lgg 20 03.05.24 13:14 Сейчас в теме
Добрый день, коллеги.
Имеется большая база (более 700Гб) на MS SQL. Подтормаживает.
Хочу выгрузить эту базу в dt файл и потом загрузить. Ожидаю, что при этом размер базы уменьшится и, возможно, увеличится производительность. При этом не очень понимаю сколько времени может занять такая процедура (в моем распоряжении 2 выходных).

Хотелось бы получить ответ от тех, кто имеет подобный опыт.
Спасибо.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. nomad_irk 76 03.05.24 13:31 Сейчас в теме
(1)Бесполезное занятие, ИМХО
user1671936; Natoriys; Vladimir-R; DENSKR; +4 Ответить
4. o4karek 03.05.24 13:40 Сейчас в теме
(1) Для начала стоит понять причину "подтормаживания". А потом уже развлекаться разными странными действиями
Fox-trot; +1 Ответить
5. lefthander 03.05.24 14:30 Сейчас в теме
(1)
Ожидаю, что при этом размер базы уменьшится
А почему Вы этого ожидаете?
Смотря сколько места на сервере и какова разрядность сервера, так то выгрузка не должна занимать много времени 2-3 часа может чуть дольше. Но думаю не сильно поможет расшевелить базу.
15. paulwist 06.05.24 08:24 Сейчас в теме
(1)
(более 700Гб) на MS SQL.


Модель восстановления какая, full?

Что вернёт

SEL ECT [name], DATABASEPROPERTYEX([name],'recovery') AS Recovery_model
FR OM sysdatabases
WHERE name not in ('master','model','tempdb','msdb') 
ORDER BY Recovery_model, name
16. lgg 20 06.05.24 09:38 Сейчас в теме
(15)
модель восстановления простая, иначе лог займет все что найдет и больше никто работать не сможет
17. paulwist 06.05.24 12:18 Сейчас в теме
(16)
модель восстановления простая, иначе лог займет все что найдет и больше никто работать не сможет


Это так, если не делать архив лога, ну это к слову.

Саму БД пробовали шринковать?

Что вернёт

use СюдаНаписатьИмяБД

SEL ECT 
    DB_NAME(database_id) AS ИмяБазыДанных,
    file_id,
    name AS ИмяФайла,
    type_desc,
    size * 8. / 1024 AS ТекущийРазмер_MB
	,
    size * 8. / 1024 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT) * 8. / 1024 AS СвободноеПространство_MB
FR OM 
    sys.master_files
WHERE 
    database_id = DB_ID();
Показать
18. lgg 20 06.05.24 13:31 Сейчас в теме
(17) Шринковала
но я это делаю при помощи SQL management studio
особых результатов нет
19. paulwist 06.05.24 14:38 Сейчас в теме
(18)
но я это делаю при помощи SQL management studio


Так запрос, что вернёт, если его исполнить в SQL management studio??

use СюдаНаписатьИмяБД

SEL ECT 
    DB_NAME(database_id) AS ИмяБазыДанных,
    file_id,
    name AS ИмяФайла,
    type_desc,
    size * 8. / 1024 AS ТекущийРазмер_MB
    ,
    size * 8. / 1024 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT) * 8. / 1024 AS СвободноеПространство_MB
FR OM 
    sys.master_files
WHERE 
    database_id = DB_ID(); 
Показать
2. wladimirpav 2 03.05.24 13:26 Сейчас в теме
(1) Скорее всего вообще в dt не выгрузится
12. lgg 20 04.05.24 22:52 Сейчас в теме
(2) выгрузилась.
Время выгрузки 3 ч, загрузилась за 6ч.
20. RustIG 1690 14.05.24 10:02 Сейчас в теме
6. GeraltSnow 174 03.05.24 17:02 Сейчас в теме
Подтормаживает

Это очень расплывчатое утверждение

Ожидаю, что при этом размер базы уменьшится

Не уменьшится, так только на файловой базе бывает. Скульная база может сжаться только в результате шринка или загрузки бэкапа этой базы в новый файл.

возможно, увеличится производительность.

Маловероятно

в моем распоряжении 2 выходных

Лучше потратить их на изучение регламентых операций по обслуживанию баз и методик замера производительности и нагрузки
user1671936; DENSKR; +2 Ответить
7. VmvLer 03.05.24 17:09 Сейчас в теме
(2) выгрузка в один поток, загрузка по всем камням.

если ссд быстрые и объемные, то терабайтную за пару суток выгрузит
8. MACTEP1C 03.05.24 21:10 Сейчас в теме
База где-то на 1,5 Тб выгружалась в dt часов за 5, загружалась примерно за 7. Повышения производительности данная операция не приносит. Уменьшения размера тоже добиться не удалось.
13. lgg 20 04.05.24 22:56 Сейчас в теме
(8)Спасибо, что поделились.
Сделала. Выгрузка 3ч, загрузка 6ч.
Размер уменьшился на 100Г, производительность тоже от того, что базу перекантовала заметно не увеличилась. Зато перенесла на более производительный сервер. Может и полегчает немного.
9. karamazoff 101 03.05.24 22:01 Сейчас в теме +1 $m
У меня конечно поменьше было около 100 гб, включены изменения, есть расширения с данными, база на постгрешке, база выгружалась в dt, но обратно не загружалась (в базу загружены не все данные). Запросом в постгрес посмотрел размеры таблиц (как в скуле не знаю, работаю с постгресом), обнаружилось, что из 100 гб 60 занимает история изменений (которую кто-то включил), а 30 логи и информация об ошибках в РС в расширении CRM Битрикса. После очистки этих таблиц база стала весить 8 гб и выгружается/загружается в любых вариантах. Посмотрите размеры таблиц, возможно, как и у меня, большие объемы окажутся мусорными
user1671936; config; XAKEP; unknown181538; lgg; +5 Ответить
14. lgg 20 04.05.24 23:02 Сейчас в теме
(9)Спасибо. Это очень хороший совет.
Истории изменений в этой базе у меня нет, Битрикса тоже. Ранее подрезала РС СписанныеПартии. На размер это повлияло, на производительность нет.
10. DENSKR 16 04.05.24 20:33 Сейчас в теме
Меня подтормаживает - цитирую:
Подтормаживает
11. unknown181538 156 04.05.24 21:09 Сейчас в теме
(0) У меня около 150 Г выгружалась база.
1,5 ч выгрузка
40 мин загрузка. (на более мощном сервере)
21. Natoriys 14.05.24 10:53 Сейчас в теме
Если хочется производительности я бы начал с :
-надо настроить sql
-сам сервер
-понять что там за железки вообще может вы на 5400 дисках с 10мб сетью сидите (но как правило дело не в железе), может у вас свитч на котором сервак висит помирает. Хотя уверен админ скажет что у него все ок=).
-разнести базу (tempdb на отдельный шустрый диск, можно заморочиться и тяжелые таблицы вынести так же на шустрые диски)
-обязательно настроить регламенты на sql обновление статистики-индексы и тд
-ну и самое главное смотрите код-запросы, раз база 700гб, есть мнение что там успело поработать не мало народу. Вычисляйте где тупит и анализируйте (хотя бы через Замеры производительности и оптимизируйте)
-Apdex в помощь.

ну вот на вскидку что пришло в голову (информацию на каждый пункт и инструкции можно найти в интернете или на этом портале)
22. lgg 20 14.05.24 11:37 Сейчас в теме
(21) Спасибо. Советы дельные. Все это давно сделано. Разве что tempdb у нас на том же диск, что и база. Есть оч. тяжелая таблица итогов - заказы не закрыты с 2016г. Собираюсь этот регистр основательно подрезать. Других идей пока нет.
23. Natoriys 14.05.24 13:57 Сейчас в теме
(22) а в чем притормаживания проявляются ? Долго проводится что-то? Блокировки может ? Или просто само по себе лагает все ? Анализировали ЖР ?
У меня были случаи что у людей все проводилось долго и блокировки лезли. Оказалось что один из сотрудников перепроводил реализации (выделили ему отдельное окно для этого всего).
Так же был случай когда конкретный пользователь жаловался на тормоза (была проблема с патчкордом и гнездом в свитче).
Насчет большого объема вопрос, вы файлы случайно не храните в базе ? Если да, то можно использовать хранение в томах. Тут могу посоветовать проанализировать таблицы и сопоставить их с 1с, что бы понять что у вас в топ10 входит
24. lgg 20 14.05.24 14:43 Сейчас в теме
(23) В базе одновременно боле 100 пользователей + обмены со внешними системами, ...
Идут блокировки. Уже более месяца (ранее тоже случались, но не часто).
Таблицы по объему анализировала. на 1 мете таблица итогов регистра ЗаказыПокупателей (более 140 Гб) На втором регистр Продажи, далее субконто....
Делаю только дефрагментацию индексов и обновление статистики, очистку процедурного кэша - каждый день. Вроде как доктор прописал.
Реиндексацию давно не запускала - не знаю как долго будет выполняться. Может от этого тор
моза включились?
25. Natoriys 14.05.24 14:58 Сейчас в теме
Насчет обменов можно попробовать составить график по времени (запуск и продолжительность) удобнее и нагляднее в диаграмме Ганта будет.
Посмотрите возможно есть пересечения.
Проанализируйте, возможно где-то можно интервалы увеличить, или наоборот уменьшить.
Может быть что-то вообще в ночь перенести можно, а что-то может и не актуально уже стало и можно отключить.
user1671936; lgg; config; +3 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот