Раздел Switch говорит, что индекс должен включать секционированный столбец

Оператор ALTER TABLE SWITCH завершился неудачно. Таблица 'dbo.test' разделена, а индекс 'IX_test' не разделен. "

Когда я запускаю switch partition, я получаю эту ошибку. Чтобы устранить эту ошибку, в определение индекса IX_test должен быть включен секционированный столбец. Но если мы включим в индекс секционированный столбец, снизится ли это производительность?

Пример: у нас есть таблица X, у которой есть индекс по столбцам A, B и C, и она разделена на столбец D. Мы создаем еще одну таблицу с именем X1 с той же схемой, что и X. Мы будем использовать ее для операции переключения разделов между ними. (X и X1).

Поскольку индекс не находится в столбце D (он находится в A, B, C), я получаю указанную выше ошибку. Можно ли добавить в индекс секционированный столбец (т. е. D), как показано ниже?

CREATE NONCLUSTERED INDEX IX_T_MSB_Pseudo ON dbo.T_MSB_Pseudo
(
    A, B, C
)
INCLUDE
(
    D
)
ON PRIMARY

Это снизит производительность? Есть ли другие альтернативы решению этой проблемы?


person user3759612    schedule 12.12.2014    source источник
comment
Пожалуйста, отредактируйте для удобства чтения.   -  person gbn    schedule 12.12.2014


Ответы (1)


ПЕРЕКЛЮЧЕНИЕ разделов требует, чтобы коммутируемые таблицы были в значительной степени * идентичны во всех отношениях
Так что сделайте их такими.

Дело в том, что разделение переключает его, чтобы иметь возможность поменять местами несколько указателей для обмена данными между ними без какой-либо фактической обработки, проверок или перемещения данных. Итак, есть правила.

Из MSDN Эффективная передача данных с помощью переключения разделов, 2 ключевых момента

Разделы должны находиться в одном столбце

Некластеризованные индексы должны быть определены и должны быть идентичными.

person gbn    schedule 12.12.2014
comment
Но включение секционированных столбцов повлияет на фактическую производительность или цель создания некластеризованного indewx .. - person user3759612; 12.12.2014
comment
Почему это будет? Либо вы хотите переключение разделов, либо нет - person gbn; 12.12.2014
comment
Точно. А без переключения разделов вопрос - зачем вообще использовать разделение? Не шутка - разделы не для скорости запросов. Они предназначены для обслуживания данных. - person TomTom; 12.12.2014