Переміщення первинного ключа до групової групи (SQL Server 2012)


14

Як я можу перемістити кластерний первинний ключ до нової групи файлів? Я вже знайшов можливий "алгоритм", але він жахливо неефективний:

  1. Відкиньте некластеризовані індекси (вимагає їх вдатися та відновити)
  2. Випадання кластерного індексу (вимагає вживання всієї таблиці)
  3. Створення нового обмеження первинного ключа (величезна операція сортування)
  4. Створіть усі некластеризовані індекси (необхідне сортування та запис)

Чи є більш ефективний спосіб? Це жахливо неефективно і займе багато часу, оскільки на слабкому сервері стіл розміром 50 Гб.

Хіба не існує способу пропустити все це і просто зробити перебудову на новій файловій групі? Це не вимагає будь-якого сортування даних.

Відповіді:


24
CREATE UNIQUE CLUSTERED INDEX Your_PK_Name
    ON YourTable(YourColumnList)
WITH (DROP_EXISTING =  ON )
ON [YourOtherFileGroup]

Це зберігає логічну властивість ПК, незважаючи на те, що вона не згадується в синтаксисі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.