|
|
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
Столкнулся с такой проблемой, везде пишется что ALTER INDEX REBUILD ONLINE = ON эта та-же операция что и ALTER INDEX REBUILD ONLINE = OFF только позволяет иметь доступность к индексу таблице ну и в дата файле будет на момент работы занимать двойной размер. Но не где не сказано что и журнал транзакций забьет в 5,5 раз больше чем размер индекса. то есть REORGANIZE в этом случае даже выигрыше, так как на сильно фрагментированном индексе под 70% он журнал транзакций забил где-то на 2,2 от размера самого индекса. Я это где-то в документации пропустил или это какой-то баг? Тестировал на Microsoft SQL Server Enterprise 13.0.5426.0 Microsoft SQL Server Enterprise 13.0.5026.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 11:56 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
VicSO, а что, на оффлайн операции прирост журнала меньше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:05 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
Владислав Колосов, Да в офлайн режиме равный размеру индекса+- чучуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:06 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
VicSO, я так подозреваю объект в момент ребилда под нагрузкой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:06 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
VicSO, ну, не знаю, для меня допустим объем журналов в половину объёма базы. Фактически же меньше трети. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:07 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
VicSOНо не где не сказано что и журнал транзакций забьет в 5,5 раз больше чем размер индекса. ... Я это где-то в документации пропустил или это какой-то баг? никакой это не баг, это плата за онлайновость. оффлайновый ребилд минимально логируется в симпл и балк_логгед, "эффективно" т.е. постранично логируется в полной модели. а онлайновый ребилд пишет в лог построчно, конечно он лог закакает в любой модели ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:08 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
VicSO, Никакого бага нет Из-за онлайновости, ALTER INDEX REBUILD ONLINE = ON выполняется дольше (может сильно дольше), и т.к. это един транзакция, записи в логе (все, а не только этого процесса) с момента ее старта не могут быть удалены. REORGANIZE же - это не единая транзакция, а следовательно не блокирует очистку лога. В SQLServer 2017 для ALTER INDEX REBUILD ONLINE = ON появилась опция resumable. По-мимо возобновляемости, она делает REBUILD неединой транзакцией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:10 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
TaPaK, Нет нагрузки нету. Yasha123, Ну тогда онлайн не выгодный в принципе сильно фрагментированном индексе под 70% REORGANIZE отъел всего 2 раза больше. раз онлайн отъедает 5 раза больше, тем более REORGANIZE можно отменить в любой момент без потери результата, чего не скажешь о ONLINE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:12 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
VicSO, не выгоден, если у вас не 24/7 требования доступности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:13 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
VicSOНу тогда онлайн не выгодный в принципе сильно фрагментированном индексе под 70% REORGANIZE отъел всего 2 раза больше. раз онлайн отъедает 5 раза больше, тем более REORGANIZE можно отменить в любой момент без потери результата, чего не скажешь о ONLINE 1. REORGANIZE - очень (очень, очень) долгая операция. 2. Возможности REORGANIZE по уменьшению физической (внутренней) фрагментации сильно ограничены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:15 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
не баг, а фича (как уже сказали для тех кто 24/7) во время обслуживания индексов запускайте бэкап лога почаще (если у вас Фулл модель) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:16 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
VicSOTaPaK, Нет нагрузки нету. Yasha123, Ну тогда онлайн не выгодный в принципе сильно фрагментированном индексе под 70% REORGANIZE отъел всего 2 раза больше. раз онлайн отъедает 5 раза больше, тем более REORGANIZE можно отменить в любой момент без потери результата, чего не скажешь о ONLINE да вам msLex уже объяснил, никакие не 5 раз. это из-за единой транзакции лог не может быть очищен, и в ваш лог, пока ребилдилось, еще кто-то поднавалил. сам же ребилд больше, чем 2 х размер индекса, не навалит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:16 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
msLex, В том то и дело, что отъедает в 5 раз больше, тогда смысл операции этой не понятен. причем если делать DATA_COMPRESSION = PAGE , DATA_COMPRESSION = NONE то объём отъедаемый адекватен. при сжатие получилось 0.8 при распаковки 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:16 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовVicSO, не выгоден, если у вас не 24/7 требования доступности. при REORGANIZE данные также остаются доступны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:16 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
Yasha123, В этот момент записей нет, база в тесте создана мной, и к ней кроме как данная операция не применяется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:18 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
VicSOmsLex, В том то и дело, что отъедает в 5 раз больше, тогда смысл операции этой не понятен. причем если делать DATA_COMPRESSION = PAGE , DATA_COMPRESSION = NONE то объём отъедаемый адекватен. при сжатие получилось 0.8 при распаковки 1.3 Если вы все же поймете, что Лог в 5 раз больше != rebuild записал в лог в 5 раз то все остальное встанет на свои места само. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:19 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
VicSOYasha123, В этот момент записей нет, база в тесте создана мной, и к ней кроме как данная операция не применяется. модель восстановления какая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:20 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
VicSOВ этот момент записей нет, база в тесте создана мной, и к ней кроме как данная операция не применяется. сейчас что-нибудь небольшое отребилдю, где только я на сервере. статистику вывешу, дайте 10 минут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:24 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
Yasha123VicSOВ этот момент записей нет, база в тесте создана мной, и к ней кроме как данная операция не применяется. сейчас что-нибудь небольшое отребилдю, где только я на сервере. статистику вывешу, дайте 10 минут. вполне что-то мелкое может дать x5. Но в жизни все индексы строятся онлайн и при таком варианте места б на лог не хватало бы никогда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:36 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
msLex, FULL а иначе вопрос не стоял, попались 2 индекса больших и в итоге база в тала. индексы были 50гб, и лога на 500гб просто не хватило. каждый час лог транзакции снимется и размер обычно от 300-до 1024 мегабайт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:37 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:39 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
TaPaK, Вот я тоже думал что требуется ток дополнительное пространство, но не в 5 раз больше чем сам индекс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 12:44 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
VicSOTaPaK, Вот я тоже думал что требуется ток дополнительное пространство, но не в 5 раз больше чем сам индекс. да никакие не 5 раз, просто кроме вас в лог еще кто-то писал. мое репро: таблицу фрагментирую на 50%, вставив сперва 10000 страниц с четным номером, потом 10000 с нечетным, 1 запись = 1 страница. фрагментированная таблица 300Мб, после ребилда 156Мб. онлайновый ребилд записал в лог 214 Мб, больше, чем объем перестроенного индекса, но все же меньше, чем объем перестроенного х 2 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 13:07 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
Yasha123, Ну значит либо баг какой-то либо настройки. А по по больше размер можете индекс создать на 10гб и попробовать тоже самое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 13:56 |
|
||
|
Проблема с ALTER INDEX REBUILD ONLINE = ON
|
|||
|---|---|---|---|
|
#18+
Yasha123, Сделал по другому, сделал свою базу и восстановил туда бэкап --несколько попыток. BACKUP LOG [TEST] TO DISK = N'Nul:' WITH NOFORMAT, NOINIT, NAME = N'TEST', SKIP, NOREWIND, NOUNLOAD, STATS = 10 ALTER INDEX [PK_TanksVar] ON [dbo].[TanksVar] REBUILD WITH ( ONLINE = ON ) select sum([Log Record Fixed Length] + [Log Record Length]) from fn_dblog(null, null) --505973580 BACKUP LOG [TEST] TO DISK = N'Nul:' WITH NOFORMAT, NOINIT, NAME = N'TEST', SKIP, NOREWIND, NOUNLOAD, STATS = 10 ALTER INDEX [PK_TanksVar] ON [dbo].[TanksVar] REBUILD WITH ( ONLINE = ON) select sum([Log Record Fixed Length] + [Log Record Length]) from fn_dblog(null, null) --512260764 BACKUP LOG [TEST] TO DISK = N'Nul:' WITH NOFORMAT, NOINIT, NAME = N'TEST', SKIP, NOREWIND, NOUNLOAD, STATS = 10 ALTER INDEX [PK_TanksVar] ON [dbo].[TanksVar] REBUILD WITH ( ONLINE = OFF ) select sum([Log Record Fixed Length] + [Log Record Length]) from fn_dblog(null, null) --70999674 BACKUP LOG [TEST] TO DISK = N'Nul:' WITH NOFORMAT, NOINIT, NAME = N'TEST', SKIP, NOREWIND, NOUNLOAD, STATS = 10 ALTER INDEX [PK_TanksVar] ON [dbo].[TanksVar] REBUILD WITH ( ONLINE = OFF ) select sum([Log Record Fixed Length] + [Log Record Length]) from fn_dblog(null, null) --70985806 Как видим разница 512260764/70985806=7,216 раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2019, 07:52 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39881460&tid=1687061]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
181ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 227ms |
| total: | 546ms |

| 0 / 0 |
