powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Альтернатива Rebuild для большого кластерного индекса
23 сообщений из 23, страница 1 из 1
Альтернатива Rebuild для большого кластерного индекса
    #40068985
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочется сделать дефрагментацию кластерного индекса, но это требует свободного места равное таблице . Таблица большая - не хочется под это расширять файловую группу так как потом можно ее не сжать из-за некрасивого расположения блоков

Как понимаю можно сделать экспорт +truncate+ импорт через BCP на сетевой диск с сортировкой как в кластерном индексе.
Тут вроде все хорошо только BCP формат хранения в два раза больше чем на SQL, даже в режиме Native

Думаю воспользоваться опцией SORT_IN_TEMPDB которая вроде работает для кластерных индексов.
Вопрос - tempdb файл возможно ли расположить на сетевом диске, если не хватит HDD? Понятно что сетевой диск через сеть 10G может хуже работать чем Raid , но главное что бы не хуже BCP варианта
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40068994
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Женицца тебе, барин, надо.
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40069034
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222,

+1
или ребилд по секциям
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40069053
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой-то предпраздничный пятничный бред.

Нет места для обслуживания базы -- не надо её обслуживать. Потому что база без обслуживания лучше, чем база без данных, или вовсе сдохший сервер из-за tempdb.
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40069393
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич
Какой-то предпраздничный пятничный бред.

Нет места для обслуживания базы -- не надо её обслуживать. Потому что база без обслуживания лучше, чем база без данных, или вовсе сдохший сервер из-за tempdb.


По кластерному индексу большая фрагментация больше 70%, она понятно из за чего - вставки удаления и при ребилде существенно экономится место, особенно для исторических данных. Дальнейший пятничный поток сознания я не уловил - как из за tempdb сдохнет сервер, жду трезвых комментов
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40069394
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик
aleks222,

+1
или ребилд по секциям

Ребилд по секциям запомню на будущее, когда буду секционировать данные таблицы
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40069401
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76
Критик
aleks222,

+1
или ребилд по секциям

Ребилд по секциям запомню на будущее, когда буду секционировать данные таблицы


Я думаю необходимость ребилда индекса является следствием ваших вставок и удалений. Замените их на правильно написанный MERGE и очень быстро увидите как необходимость ребилда спадет
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40069417
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
selis76
пропущено...

Ребилд по секциям запомню на будущее, когда буду секционировать данные таблицы


Я думаю необходимость ребилда индекса является следствием ваших вставок и удалений. Замените их на правильно написанный MERGE и очень быстро увидите как необходимость ребилда спадет

К сожалению 1С не позволяет :) делать Merge , ну и потом там таблица (регистр сведений) содержит версии операций, старые версии удаляются для экономии места. Т.е. update нет . А как уменьшить фрагментацию при таких вводных пока не знаю
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40069419
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76
Гавриленко Сергей Алексеевич
Какой-то предпраздничный пятничный бред.

Нет места для обслуживания базы -- не надо её обслуживать. Потому что база без обслуживания лучше, чем база без данных, или вовсе сдохший сервер из-за tempdb.


По кластерному индексу большая фрагментация больше 70%, она понятно из за чего - вставки удаления и при ребилде существенно экономится место, особенно для исторических данных. Дальнейший пятничный поток сознания я не уловил - как из за tempdb сдохнет сервер, жду трезвых комментов
Ну положите tempdb на сетевой диск (если вообще сумеете), а потом дерните сетевой шнурок.
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40069451
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76
По кластерному индексу большая фрагментация больше 70%
Логическая или физическая?

Если логическая, то, в принципе, можно не обращать внимания
Если физическая, то можно reorganize сделать.
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40069456
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич
Ну положите tempdb на сетевой диск (если вообще сумеете), а потом дерните сетевой шнурок.


+ можно создать базу на сетке и залить/выгрузить таблицу туда/оттуда
если уж очень хочется
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40069473
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76
Как понимаю можно сделать экспорт +truncate+ импорт через BCP на сетевой диск с сортировкой как в кластерном индексе.
Тут вроде все хорошо только BCP формат хранения в два раза больше чем на SQL, даже в режиме Native
Можно писать файл на сжатый диск, или писать поочерёдно в файлы, и сжимать 7z.
Вообще странно, почему "BCP формат хранения в два раза больше чем на SQL", по моему, BCP даже выигрывает.
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40069510
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76,

и как часто вы этим собираетесь заниматься? То, что до первой потери данных - это очевидно.
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40069616
Фотография leonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76,
Мы РС Версии объектов вынесли в отдельную базу на другой сервер. История вся есть, база не распухает. Обращение к старым данным через вебсервис.
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40070342
Как вариант можно попробовать делать "ребилд" - переливка данных из старой таблицы в новую учитывая сортировку CL
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40070455
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Syrovatchenko,

ТС пишет, что для этого нет места.
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40070735
alexeyvg, я конечно прошу прощения но переливать можно и по 1Мб и все норм будет. Плюс если уж прям места нет... ужать tempdb например, шринки в других базах поделать, почитстить разные левые логи и файлы xEvent что засирают диск... я сказал было бы желание. Тем более мы всего не знаем что там у ТС.
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40071492
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
selis76,

и как часто вы этим собираетесь заниматься? То, что до первой потери данных - это очевидно.


Раз в год, когда база сворачивается.
Бэкапы естественно есть. Под потерей данных что подразумевается ? Отстуствие роллбэка при работе с кластерным индексом или возможные сетевые эффекты
В целом я посмотрел - самый большой dataspace (не indexspace) 300 гб для SORT_IN_TEMPDB tempdb места хватит, попробую на тесте
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40071535
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76,

расположение данных в сети рано или поздно приводит к их потере.
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40071542
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Альтернативой Rebuild всегда было REORGANIZE - не быстро но с 7 мая бы точно закончила.
Другой вопрос что вы хотите этим добится?
Показать красивые циферки в sys.dm_db_index_physical_stats
Можете замерить производительность и разницу после этого мероприятия?
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40071640
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257
Альтернативой Rebuild всегда было REORGANIZE - не быстро но с 7 мая бы точно закончила.
Другой вопрос что вы хотите этим добится?
Показать красивые циферки в sys.dm_db_index_physical_stats
Можете замерить производительность и разницу после этого мероприятия?


Меня интересует только увеличить свободное место в файловых группах. На других таблицах которые поменьше я достигал хороший эффект. С Reorganize не экспериментировал, попробую на тесте у меня есть возможность административных действий в выходные в монопольном режиме.
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40071656
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selis76
С Reorganize не экспериментировал, попробую на тесте у меня есть возможность административных действий в выходные в монопольном режиме.
Reorganize порождает множество коротких транзакций.
Поэтому на большой таблице, для предотвращения роста ЖТ, нужно выполнять либо в простой модели, либо в прецессе чаще делать бекапы ЖТ.
...
Рейтинг: 0 / 0
Альтернатива Rebuild для большого кластерного индекса
    #40072584
selis76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я попробовал sort_in_tempdb
на 2008 и 2019 работает хорошо. Что интересно файлы tempdb не раздуваются на размер данных таблиц, я предполагал из описания
https://docs.microsoft.com/en-us/sql/relational-databases/indexes/sort-in-tempdb-option-for-indexes?view=sql-server-ver15

microsoft"When you create a clustered index on a table that does not have nonclustered indexes, you must have available as free space:

If SORT_IN_TEMPDB is set to ON, there must be sufficient free space in tempdb to store the sort runs. These include the data rows of the table. There must be sufficient free space in the destination filegroup to store the final index structure. This includes the data rows of the table and the index B-tree. You may have to adjust the estimate for factors such as having a large key size or a fill factor with a low value."
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Альтернатива Rebuild для большого кластерного индекса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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