Задать вопрос
@avatar87

MS SQL как обновлять схему с минимальной остановкой сервиса?

В Azure лежит база с производительностью 100 dtu в которой имеется таблица с количеством строк ~100млн. Требуется изменить схему этой таблицы. Остановка сервиса и обновление схемы в лоб занимает ~2 часов. Как можно уменьшить время обновления схемы? Какие приемы используют для обновления схемы на лету?
  • Вопрос задан
  • 184 просмотра
Подписаться 2 Средний Комментировать
Решения вопроса 1
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
Что говорит поддержка AZURE?

обновление схемы в лоб занимает ~2 часов
Добавление поля через ALTER TABLEADD занимает мало времени. Поэтому быстрее добавить поле и перенести данные, чем пересоздать таблицу с переносом данных. То есть
ALTER TABLE [Table] ADD [ColumnTemp] DECIMAL (21,8)
GO
UPDATE [Table] SET [ColumnTemp] = [Column]
GO
ALTER TABLE [Table] DROP COLUMN [Column]
GO
ALTER TABLE [Table] ADD [Column] DECIMAL (21,8)
GO
UPDATE [Table] SET [Column] = [ColumnTemp]
GO
ALTER TABLE [Table] DROP COLUMN [ColumnTemp]
GO
Должно быть быстрее.
Или
ALTER TABLE [Table] ADD [ColumnTemp] DECIMAL (21,8)
GO
UPDATE [Table] SET [ColumnTemp] = [Column]
GO
ALTER TABLE [Table] DROP COLUMN [Column]
GO
EXEC sp_rename '[Table].[ColumnTemp]' '[Column]' 'COLUMN'
GO
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы