Добавить столбец идентификаторов в существующую таблицу, которая всегда меняется - PullRequest
1 голос
/ 28 января 2011

У меня есть существующая таблица с 15 миллионами строк. Я хочу добавить идентификационный столбец и сделать его первичным ключом. Проблема в том, что эта таблица всегда перемещается (вставляет, обновляет, удаляет). Можно ли добавить столбец идентичности с этим? Или я должен остановить процессы backgroud (это утомительная задача), которая обновляет эту таблицу?

Спасибо Викрам

1 Ответ

1 голос
/ 28 января 2011

Учитывая, что у вас есть 15 миллионов строк, выполнение инструкции ALTER TABLE может занять несколько нетривиальное время.

Поскольку SQL Server не предоставляет табличных подсказок для ALTER TABLE, его довольно безопасно предположить.тот SQL Server берет блокировку таблицы, когда он выполняет инструкцию ALTER TABLE.

В течение этого времени ни одному другому процессу не будет разрешено выбирать, вставлять, обновлять или удалять, поэтому вам не нужно беспокоиться о состоянии гонки с каким-либо другим процессом.

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

...