У нас есть таблица с 8 миллионами строк, и нам нужно добавить в нее столбец с последовательным идентификатором. Используется для хранилищ данных.
Из тестирования мы знаем, что если мы удалим все индексы, включая индекс первичного ключа, добавление нового столбца последовательного идентификатора будет примерно в 10 раз быстрее. Я до сих пор не понимаю, почему удаление индексов поможет добавить столбец идентификаторов.
Вот SQL, который добавляет столбец идентификаторов:
ALTER TABLE MyTable ADD MyTableSeqId BIGINT IDENTITY(1,1)
Однако у рассматриваемой таблицы есть зависимости, поэтому я не могу отбросить индекс первичного ключа, пока не уберу все ограничения FK. В результате добавляем идентификационный столбец.
- Существуют ли другие способы повышения скорости при добавлении столбца идентификаторов, чтобы время простоя клиента было минимальным?
или
- Есть ли способ добавить столбец идентификаторов без блокировки таблицы, чтобы к таблице можно было получить доступ или, по крайней мере, сделать запрос?
База данных SQL Server 2005 Standard Edition.