У меня есть очень большая таблица (800 ГБ), которая имеет поле DATETIME, которое является частью схемы раздела. Это поле называется tran_date. У меня проблема в том, что индексы не выровнены должным образом с разделом, и я не могу включить поле tran_date в PRIMARY KEY, потому что оно установлено в nullable.
Я могу отбросить все связи внешнего ключа, статистику и индексы, но не могу изменить столбец, поскольку схема раздела по-прежнему зависит от столбца tran_date.
В своем исследовании я нашел один способ убрать таблицу из раздела, который состоит в том, чтобы удалить кластеризованный индекс, а затем переписать кластеризованный индекс в файловую группу PRIMARY, что затем позволит мне изменить столбец, но для удаления этой операции требуется несколько часов, 13 часов для записи временного КЛАСТЕРНОГО ИНДЕКСА на ПЕРВИЧНОМ, а затем я должен удалить его, изменить таблицу и правильно переписать КЛАСТЕРНЫЙ ИНДЕКС, что занимает еще 13 часов. Кроме того, у меня есть несколько таблиц.
Когда я тестировал это развертывание в своей среде разработки с набором данных аналогичного размера, для его завершения потребовалось несколько дней, поэтому я пытаюсь найти способы сократить это время.
Если я смогу переместить таблицу с раздела без необходимости писать КЛАСТЕРНЫЙ ИНДЕКС на ПЕРВИЧНОМ, это значительно сократит время, необходимое для изменения столбца.