|
Замена кластерного индекса. Необходим ли rebuild остальных индексов
|
|||
---|---|---|---|
#18+
Или после замены clx все остальные индексы сами перестроятся автоматически? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 13:36 |
|
Замена кластерного индекса. Необходим ли rebuild остальных индексов
|
|||
---|---|---|---|
#18+
Шамиль Фаридович Или после замены 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/ ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 13:41 |
|
Замена кластерного индекса. Необходим ли rebuild остальных индексов
|
|||
---|---|---|---|
#18+
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. Это и есть ответ? Сами перестроятся? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 13:54 |
|
Замена кластерного индекса. Необходим ли rebuild остальных индексов
|
|||
---|---|---|---|
#18+
Шамиль Фаридович, да, но перестроятся два раза - сначала когда вы удалите, потом - когда создадите новый, поэтому лучше их грохнуть до начала процесса ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 14:01 |
|
Замена кластерного индекса. Необходим ли rebuild остальных индексов
|
|||
---|---|---|---|
#18+
Оказывается при применении опции 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) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 14:09 |
|
Замена кластерного индекса. Необходим ли rebuild остальных индексов
|
|||
---|---|---|---|
#18+
Шамиль Фаридович Правда не совсем понятно, что вообще меняется при такой операции, разве что fillfactor) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 15:26 |
|
Замена кластерного индекса. Необходим ли rebuild остальных индексов
|
|||
---|---|---|---|
#18+
о чем спор, товарищи? если меняете **ключ** кластерного, который, очевидно, присутствует на листовом уровне любого некластерного, то конечно же перестроение некластерных гарантировано. как уже сказали, хочется ключ поменять, дропайте сперва все некластерные, затем сам кластерный, затем создайте его с новым ключом и создайте некластерные. в противном случае при дропе кластерного таблица превратится в кучу и все некластерные получат RID вместо кластерного ключа, а потом при создании кластерного еще раз будут перестроены, чтобы получить новый ключ кластерного на листовом уровне. про DROP_EXISTING: я его юзаю для перестроения некластерных, когда мне надо поменять список INCLUDE. таким образом избегаю сортировки. а в применении к кластерному, где и без того все поля "INCLUDED", пожалуй, единственное применение указал Гавриленко: если кластерный перестраивается на новой FG, то да, ключ же не меняется, DROP_EXISTING позволит не переходить в состояние "куча" и некластерные не будут перестроены ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 15:58 |
|
|
start [/forum/topic.php?fid=46&msg=40062430&tid=1684825]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 310ms |
total: | 465ms |
0 / 0 |