powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Замена кластерного индекса. Необходим ли rebuild остальных индексов
7 сообщений из 7, страница 1 из 1
Замена кластерного индекса. Необходим ли rebuild остальных индексов
    #40062030
Шамиль Фаридович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или после замены clx все остальные индексы сами перестроятся автоматически?
...
Рейтинг: 0 / 0
Замена кластерного индекса. Необходим ли rebuild остальных индексов
    #40062035
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шамиль Фаридович
Или после замены clx все остальные индексы сами перестроятся автоматически?


смотря что подразумевать под заменой

https://bornsql.ca/blog/rebuilding-clustered-index-also-rebuild-non-clustered-indexes/

https://www.mssqltips.com/sqlservertip/1362/efficiently-rebuild-sql-server-clustered-indexes-with-dropexisting/
...
Рейтинг: 0 / 0
Замена кластерного индекса. Необходим ли rebuild остальных индексов
    #40062042
Шамиль Фаридович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad,
я имел в виду пересоздание.

A non-clustered index is rebuilt if the clustered index is dropped and recreated. Without a clustered index, the non-clustered indexes will have to refer to the row identifier (RID) in the underlying heap instead.

Это и есть ответ? Сами перестроятся?
...
Рейтинг: 0 / 0
Замена кластерного индекса. Необходим ли rebuild остальных индексов
    #40062048
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шамиль Фаридович,

да, но перестроятся два раза - сначала когда вы удалите, потом - когда создадите новый,
поэтому лучше их грохнуть до начала процесса
...
Рейтинг: 0 / 0
Замена кластерного индекса. Необходим ли rebuild остальных индексов
    #40062430
Шамиль Фаридович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оказывается при применении опции DROP_EXISTING пересоздание кластерного индекса может вовсе не вызвать перестроения некластерных:
https://docs.microsoft.com/ru-ru/sql/t-sql/statements/create-index-transact-sql?view=sql-server-ver15#drop_existing-clause

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

Правда не совсем понятно, что вообще меняется при такой операции, разве что fillfactor)
...
Рейтинг: 0 / 0
Замена кластерного индекса. Необходим ли rebuild остальных индексов
    #40062472
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шамиль Фаридович
Правда не совсем понятно, что вообще меняется при такой операции, разве что fillfactor)
Физическое месторасположение индекса может меняться (файловая группа).
...
Рейтинг: 0 / 0
Замена кластерного индекса. Необходим ли rebuild остальных индексов
    #40062487
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о чем спор, товарищи?
если меняете **ключ** кластерного,
который, очевидно, присутствует на листовом уровне любого некластерного,
то конечно же перестроение некластерных гарантировано.

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

про DROP_EXISTING:

я его юзаю для перестроения некластерных, когда мне надо поменять список INCLUDE.
таким образом избегаю сортировки.
а в применении к кластерному, где и без того все поля "INCLUDED",
пожалуй, единственное применение указал Гавриленко:
если кластерный перестраивается на новой FG,
то да, ключ же не меняется, DROP_EXISTING позволит не переходить в состояние "куча" и некластерные не будут перестроены
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Замена кластерного индекса. Необходим ли rebuild остальных индексов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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