Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Перестроение кластерного индекса  [new]
beaver06
Member

Откуда:
Сообщений: 681
Добрый день!
Подскажите, пожалуйста, что произойдет при отмене операции alter index ... rebuild?
Например, если происходит престроении большого кластерного индекса в течении 2-х часов и я в момент перестроения делаю отмену операции. Что призойдет?

Не совсем понятно из этой фразы...
автор
При перестроении индекса происходит удаление старого индекса и создание нового
13 янв 12, 14:32    [11899615]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение кластерного индекса  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Ну, а вы как думаете? Всё поломаетцо и сервер выйдет из строя?
13 янв 12, 15:03    [11899906]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение кластерного индекса  [new]
--------------------------------
Guest
будет еще 2 часа на отмену транзакции :)
13 янв 12, 15:06    [11899943]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение кластерного индекса  [new]
beaver06
Member

Откуда:
Сообщений: 681
Спасибо, так и думал.
Хотел убедиться.

А при reorganize что произойдет при отмене: останется на исходном значении или в состоянии в момент отмены?
Думаю второе...
13 янв 12, 15:18    [11900059]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение кластерного индекса  [new]
beaver06
Member

Откуда:
Сообщений: 681
--------------------------------
будет еще 2 часа на отмену транзакции :)


Т.е. индекс восстановится? Т.е. индекс не будет безвозвратно удален?
13 янв 12, 15:48    [11900384]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение кластерного индекса  [new]
Glory
Member

Откуда:
Сообщений: 104751
When you drop or rebuild large indexes, or drop or truncate large tables, the SQL Server 2005 Database Engine defers the actual page deallocations, and their associated locks, until after a transaction commits. This implementation supports both autocommit and explicit transactions in a multiuser environment, and applies to large tables and indexes that use more than 128 extents.

The Database Engine avoids the allocation locks that are required to drop large objects by splitting the process in two separate phases: logical and physical.

- In the logical phase, the existing allocation units used by the table or index are marked for deallocation and locked until the transaction commits. With a clustered index that is dropped, the data rows are copied and then moved to new allocation units created to the store either a rebuilt clustered index, or a heap. (In the case of an index rebuild, the data rows are sorted also.) When there is a rollback, only this logical phase needs to be rolled back.

- The physical phase occurs after the transaction commits. The allocation units marked for deallocation are physically dropped in batches. These drops are handled inside short transactions that occur in the background, and do not require lots of locks.
13 янв 12, 15:52    [11900434]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение кластерного индекса  [new]
АСИД
Guest
beaver06
--------------------------------
будет еще 2 часа на отмену транзакции :)


Т.е. индекс восстановится? Т.е. индекс не будет безвозвратно удален?

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



про ACID почитайте.
13 янв 12, 15:53    [11900456]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение кластерного индекса  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31981
beaver06
--------------------------------
будет еще 2 часа на отмену транзакции :)


Т.е. индекс восстановится? Т.е. индекс не будет безвозвратно удален?
Восстановится, только отмена операции может занять больше времени, чем сама операция.
13 янв 12, 15:56    [11900484]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение кластерного индекса  [new]
Glory
Member

Откуда:
Сообщений: 104751
BOL - Dropping and Rebuilding Large Objects
13 янв 12, 15:57    [11900501]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение кластерного индекса  [new]
beaver06
Member

Откуда:
Сообщений: 681
Glory
BOL - Dropping and Rebuilding Large Objects


А если индекс маленький? Т.е. перестроение идет несколько минут.
13 янв 12, 17:17    [11901240]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение кластерного индекса  [new]
Glory
Member

Откуда:
Сообщений: 104751
beaver06
А если индекс маленький? Т.е. перестроение идет несколько минут.

Размер индекса определяется не в минутах, а в экстентах, как сказано в цитате
Надо полагать, что такие индексы перестраиваются в обычной транзакции.
13 янв 12, 17:50    [11901542]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить