Какой тип индекса создать? - PullRequest
0 голосов
/ 17 января 2020

У меня есть база данных, которая содержит таблицу, разделенную на пять файловых групп на основе поля TransactionType.

Структура таблицы:

ID              --> BIGINT
Account         --> BIGINT
Amount          --> DECIMAL
TransactionType --> INT
TransactionDate --> Date

Моя таблица содержит также следующие индексы:

PK_Table1       --> Clustered, primary key  --> ID, TransactionType
IX_Account      --> Nonclustered            --> Account
IX_Type         --> Nonclustered            --> TransactionType 
IX_Date         --> NonClustered            --> TransactionDate
IX_Amount       --> Nonclustered            --> Amount

У меня вопрос: какой индекс я должен построить как выровненный и какой индекс я должен оставить как не выровненный?

1 Ответ

0 голосов
/ 17 января 2020

Согласно Microsoft, выровненный индекс - это индекс, построенный на той же схеме секционирования, что и соответствующая ему таблица. Когда таблица и ее индексы выровнены, SQL Сервер может быстро и эффективно переключать разделы, сохраняя при этом структуру разделов как таблицы, так и ее индексов.

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

  1. Аргументы функций секционирования имеют один и тот же тип данных.
  2. Они определяют такое же количество разделов.
  3. Они определяют одинаковые граничные значения для разделов.

Несовмещенный индекс - это индекс, разделенный независимо от соответствующей таблицы. То есть индекс имеет другую схему разбиения или размещается в отдельной файловой группе из базовой таблицы. Проектирование невыровненного секционированного индекса может быть полезно в следующих случаях:

  1. Базовая таблица не была секционирована.
  2. Ключ индекса уникален и не содержит секционирования.
    столбец таблицы.
  3. Вы хотите, чтобы базовая таблица участвовала в совместно расположенных соединениях с большим количеством таблиц, использующих разные столбцы соединений.

Итак, ответ на ваш вопрос: - Сделайте IX_Type выровненным индексом, потому что он основан на ключ разделения. - Сделать остальные индексы невыровненными.

...