|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
SERG1257, авторНе понял насчет тестового сервера. не корректно выразился. На новом сервере, где установлен MS SQL Server 2019. База переедет со старого (на MS SQL Server 2012). авторСжимаете таблицу (торопится не надо). Помню, что нужно секционировать таблицы, но пока без этого. С каких таблиц лучше начать? Наиболее часто используемых? Больших? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 16:24 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
Для больших таблиц прогоните sp_estimate_data_compression_savings https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-estimate-data-compression-savings-transact-sql?view=sql-server-ver15 Посмотрите на разные типы сжатия. Может ROW будет ненамного хуже (и точно дешевле) У меня было пару случаев когда это имело смысл (большая таблицы с пустыми полями типа int и большая таблица с типом char(200)) Маленькие таблицы даже не рассматривайте - визгу много шерсти мало ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 17:14 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
SERG1257, при размере файла БД 830 ГБт, какие таблицы считать большими для исследования их функцией sp_estimate_data_compression_savings? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 09:16 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
SERG1257, авторСжимаете таблицу (торопится не надо). Не делаете shrink. Не делаете дефрагментацию. Я у себя отменил этот еженедельный джоб и никто не заметил разницы. Я правильно понял, сжимать по несколько таблиц за ночь без shrink'а (это я уже понял, что shrink крайняя мера) и без дефрагментации. И смотреть на работу пользователей? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 09:19 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
У меня нагруженная база 1С на 3 терабайта, по опыту пространство больше расходуется на фрагментацию поскольку кластерный (системный) код 1С много удаляет и вставляет заново особенно в итогах по регистрам. Перестроение кластерных индексов и обычных индексов помогает гораздо эффективнее. Освобожденное место можно использовать для новых данных. Ну а вообще в решении должна быть заложена процедура обрезания старых данных и свертки остатков. База не должна расти бесконечно ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 12:40 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
cad2206какие таблицы считать большими для исследования их функцией sp_estimate_data_compression_savings?Исследовать можно хоть все (это просто посмотреть, это бесплатно) Результаты (для PAGE и для ROW) в эксельку, сортируя по разнице между sample_size_with_current_compression_setting и sample_size_with_requested_compression_setting Уверен, что кандидатов будет не больше десятка. А дальше нужно будет принимать решение кто достоин, а кто нет. selis76, я человек простой, а вопрос сложный. Можешь пояснить свою мысль языком ЖЭКа. (или как говорят буржуи ELI5) Правильно ли я понял, что ты хочешь сказать что для твоей базы перестроение индексов действительно высвобождает место. Однако следом ты утверждаешь что плотно упакованный индекс, будет снова переразбит следующей операцией (особенно в итогах по регистрам.) Так может и не трогать эти итоги по регистрам. Ну будут некоторые страницы наполовину пусты. Стоит ли овчинка выделки? И как это относится к сабжу топика (сжатие aka компрессия данных). По поводу удаления старых данных это тоже оффтопик. Люди годами не могут почистить балкон (гараж, подвал), а тут данные удалить. А если понадобятся? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 17:19 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
to SERG1257, 1C это генератор таблиц и запросов на основе финансовых метаданных . Поэтому большинство информации имеет период и итоги тоже периодичны (по умолчанию месяц) . Даже в регистрах накопления агрегаты тоже порождают много операций удаления и вставки А это прямой путь к фрагментации. Конечно ребилд оптимизирует данные в прошлых периодах, но в новых периодах все начинается сначала. Играться с наполнением экстентов можно уже после того как все хорошо с фрагментацией. Пример как 1С генерит SQL код можно увидеть тут https://infostart.ru/1c/articles/184361/ Структура таблиц и индексов 1С официально выложена https://its.1c.ru/db/metod8dev/content/1798/hdoc https://its.1c.ru/db/metod8dev/content/1590/hdoc ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 20:08 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
Добрый день, знатоки. Продолжаю свои эксперименты, не ругайтесь, это лишь эксперименты на тестовых базах, для моего понимания. Создал этапы в плане обслуживания: 1. Создание полной резервной копии в модели восстановления "Полная" 2. SHRINKDATABASE Код: sql 1.
3. Перевод базы в модель восстановления "Простая" Код: sql 1. 2.
4. Дефрагментация индексов 5. Перевод базы в модель восстановления "Полная" Код: sql 1. 2.
6. Обновление статистики Если я правильно понимаю, то в модели восстановления "Простая", лог журнала не растет. Но уже на этапе дефрагментации заметил, лог вырос, примерно до размера самой базы (после шринка). Объясните пожалуйста, почему вырос лог? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 09:42 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
cad2206 Если я правильно понимаю, то в модели восстановления "Простая", лог журнала не растет. Не правильно поняли. В простой модели, лог автоматически усекается (освобождается место внутри файлов лога) по завершению транзакций. cad2206 Перевод базы в модель восстановления "Полная" Код: sql 1. 2.
Просто для понимания. После перевода базы в FULL, реальный переход на FULL модель восстановления произойдет только после 1-го полного бекапа. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 10:14 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
cad2206 Добрый день, знатоки. 2. SHRINKDATABASE забудьте эту команду ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 10:19 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
msLex, Так отчего вырос лог (именно файл лога, очень сильно вырос )? Понимаю, что при SHRINKDATABASE данные в БД фрагментируются полностью. Затем выполняю дефрагментацию для всех индексов. Если завершенной транзакцией считать каждое выполнение: Код: sql 1.
при дефрагментации, в модели восстановления "Простая", то лог будет усекаться внутри файла и сам файл расти не будет. А тут вырос сам файл лога. Что в моем случае тогда считается завершенной транзакцией? авторПросто для понимания. После перевода базы в FULL, реальный переход на FULL модель восстановления произойдет только после 1-го полного бекапа. Это я понимаю. felix_ff, авторзабудьте эту команду забуду, как только разберусь во всем ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 11:22 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
msLex, Так отчего вырос лог (именно файл лога, очень сильно вырос )? Понимаю, что при SHRINKDATABASE данные в БД фрагментируются полностью. Затем выполняю дефрагментацию для всех индексов. Если завершенной транзакцией считать каждое выполнение: Код: sql 1.
при дефрагментации, в модели восстановления "Простая", то лог будет усекаться внутри файла и сам файл расти не будет. А тут вырос сам файл лога. Что в моем случае тогда считается завершенной транзакцией? авторПросто для понимания. После перевода базы в FULL, реальный переход на FULL модель восстановления произойдет только после 1-го полного бекапа. Это я понимаю. felix_ff, авторзабудьте эту команду забуду, как только разберусь во всем ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 11:44 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
cad2206, Код: sql 1.
- логируемая операция, чего вы удивляетесь что у вас файл лога расти не будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 13:34 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
felix_ff, спасибо, я понимаю что она журналируемая. Но для большего понимания хочется усвоить: 1. В модели восстановления "Простая", журнал усекается внутри файла журнала при подтверждении транзакции. Ок. Что считать подтвержденной транзакцией? Выполнение ALTER INDEX [IndexName] ON [TableName] REBUILD считается подтвержденной транзакцией? В моем случае таких вызовов на каждый индекс, при переиндексации, за 400. 2. В зависимости от понимания первого пункта, как предотвратить переполнение журнала (диска, выделенного под журнал)? Переиндексировать в модели восстановления "Полная" и бекапить журнал раз в 15 мин? Файл журнала вырос почти на 400ГБ, при размере БД в 220ГБ. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 13:46 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
cad2206 felix_ff, спасибо, я понимаю что она журналируемая. Но для большего понимания хочется усвоить: 1. В модели восстановления "Простая", журнал усекается внутри файла журнала при подтверждении транзакции. Ок. Что считать подтвержденной транзакцией? Выполнение ALTER INDEX [IndexName] ON [TableName] REBUILD считается подтвержденной транзакцией? В моем случае таких вызовов на каждый индекс, при переиндексации, за 400. 2. В зависимости от понимания первого пункта, как предотвратить переполнение журнала (диска, выделенного под журнал)? Переиндексировать в модели восстановления "Полная" и бекапить журнал раз в 15 мин? Файл журнала вырос почти на 400ГБ, при размере БД в 220ГБ. 1. @@trancount = 0 2. Так ты ничо и не понял. Увы. Даже донкихот не боролся с ростом журнала транзакций переключением мельниц на полные обороты. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 14:16 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
Ах да, "как предотвратить?" Завязывай с реиндексированием. Надежно. Просто. Эффективно. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 14:18 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
aleks222, авторТак ты ничо и не понял Ну объясни доступно. Где что я не понимаю? На каких этапах что происходит? Уважаемые знатоки, мне придется один раз сделать шринк, кто бы что не говорил, но придется. ОДИН РАЗ! На рабочей базе, когда пойму все особенности и отлажу на тестовых базах. А после шринка придется сделать дефрагментацию, как минимум один раз (т.к. после шринка все данные фрагментированы очень сильно). Поэтому и прошу помощи разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 15:01 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
cad2206, вы с какой проблемой пытаетесь бороться? shrink файлов базы данных (замечу не файлов лога) нужен только в одном случае: когда у вас к примеру файл базы данных заполнил весь объем свободного дискового пространства и дальше файлы бд в том числе файлы лога расти не могут, а руководство жопится и денег на новые диски не дает. вы берете чистите (delete/truncate) какой то большой объем архивных данных за N-лет который уже никогда никому не понадобится, у вас высвобождается место которое можно вернуть операционной системе, тем самым позволив файлу лога расти что бы не стопорить бд, вот только в этом случае шринк файлов данных оправдан. в других ситуациях: а) файл бд должен быть всегда 300ГБ и ни капельки больше, б) о мой бог наш файл разово разросся нужно его ужать сейчас же с) прочая хрень шринк вообще ни разу не оправдан, вы только тем самым насилуете базу/диски. дайте файлам данных спокойно расти. даже если вы очистили архивные данные, не возвращайте место операционной системе, пусть оно будет зарезервировано для базы на новые данные, это место будет в последствии полезно переиспользовано без относительно дорогостоящих операций увеличения файла данных. Но для большего понимания хочется усвоить: 1. В модели восстановления "Простая", журнал усекается внутри файла журнала при подтверждении транзакции. не верно, в простой модели восстановления усечение происходит после достижения контрольной точки дополнительно надо понимать что есть факторы препятствующие усечению журнала (откладывающие его) ознакомьтесь: https://docs.microsoft.com/en-us/sql/relational-databases/logs/the-transaction-log-sql-server?view=sql-server-ver15#FactorsThatDelayTruncation ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 16:02 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
felix_ff, авторshrink файлов базы данных (замечу не файлов лога) нужен только в одном случае: когда у вас к примеру файл базы данных заполнил весь объем свободного дискового пространства и дальше файлы бд в том числе файлы лога расти не могут, а руководство жопится и денег на новые диски не дает именно! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 16:08 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
felix_ff, авторвы с какой проблемой пытаетесь бороться? сейчас уже не проблема, а желание понять. Например, почему вырос файл журнала, при дефрагментации в модели восстановления "Простая". ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 16:19 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
авторНапример, почему вырос файл журнала, при дефрагментации в модели восстановления "Простая".Файл журнала будет размером с самую большую транзацию. Если у вас есть хотя бы одна большая таблица, то файл будет огромным вне зависимости от модели. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 16:22 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
L_argo, авторФайл журнала будет размером с самую большую транзацию Что мне понимать под транзакцией в моем случае? авторЕсли у вас есть хотя бы одна большая таблица, то файл будет огромным вне зависимости от модели на тестовой базе самая большая таблица занимает 24ГБт. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 16:39 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
felix_ff, авторне верно, в простой модели восстановления усечение происходит после достижения контрольной точки Из документации https://docs.microsoft.com/ru-ru/sql/relational-databases/logs/database-checkpoints-sql-server?view=sql-server-ver15: в простой модели восстановления автоматическая контрольная точка становится в очередь, если журнал заполняется на 70 процентов. Верный ли от сюда вывод, что журнал будет усекаться при достижении его размера в 70% от размера самого файла журнала? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 17:22 |
|
Поэтапное сжатие БД MS SQL Server
|
|||
---|---|---|---|
#18+
cad2206 Верный ли от сюда вывод, что журнал будет усекаться при достижении его размера в 70% от размера самого файла журнала? Кто на ком стоял? ЗЫ. Прирожденный управдом. Этот тредстартер. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2021, 17:58 |
|
|
start [/forum/topic.php?fid=46&msg=40116421&tid=1684055]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
333ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 462ms |
0 / 0 |