Azure SQL - создать индекс, БД должна быть в автономном режиме? - PullRequest
0 голосов
/ 22 октября 2018

Новое в Azure SQL.Простой пример, чтобы задать вопрос.Настольные Автомобили.Хотите добавить некластеризованный индекс в таблицу Cars.Занимает много времени, скажем, 30 минут во время промежуточного развертывания.

При обновлении производственного Azure SQL, можем ли мы оставить базу данных в оперативном режиме при создании индекса таблицы?В течение этого времени, пока создается таблица, могут ли приложения отправлять вставки / обновления в эту таблицу?

Или нам нужно отключить рабочую БД на 30 для создания этого индекса?

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Можно рассмотреть возможность использования функции создания возобновляемого онлайнового индекса для распределения времени, необходимого для создания индекса, на многие часы, назначая одну или две минуты (или Х секунд) каждые Х минут для создания индекса.Для получения дополнительной информации, пожалуйста, прочитайте этот ресурс.

ALTER INDEX test_idx on test_table PAUSE  

ALTER INDEX test_idx on test_table RESUME 
0 голосов
/ 22 октября 2018

CREATE INDEX не «переводит базу данных в автономный режим», но обычно она блокирует все операции с таблицей Cars до тех пор, пока она не завершится.

В базе данных SQL Azure у вас есть возможность выполнить ONLINE операции создания индекса,который разрешит одновременный доступ к таблице во время построения индекса.См. Выполнение операций с индексами в режиме онлайн :

CREATE INDEX ... ON ... WITH (ONLINE = ON);

Кроме того, 30 минут очень много для CREATE INDEX.Я бы расследовал, если бы время не было потрачено почти полностью, будучи заблокированным.

...