Размер таблицы, где указатель начинает иметь смысл - PullRequest
0 голосов
/ 10 декабря 2010

У меня есть таблица календаря с примерно 2K строк. Это справочная таблица, которая будет использоваться во многих объединениях.

Столбцы

CalendarId (PK, Clustered)
DateTimeValue
IsWeekDay
IsWeekend
IsHoliday

У меня такой вопрос: я хочу иметь индекс для DateTimeValue.

Когда я должен создать этот индекс?

Другими словами, насколько большой должна быть таблица, прежде чем вы на нее поместите индекс?

Ответы [ 4 ]

3 голосов
/ 10 декабря 2010

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

Отсутствующий индекс в пустой таблице по-прежнему отсутствует индекс.

2 голосов
/ 10 декабря 2010

Всегда добавляйте индекс для начала.Таблица никогда не бывает слишком маленькой , чтобы иметь индекс.Индекс становится проблемой только в том случае, если у вас очень большая таблица, поскольку операции вставки / обновления / удаления могут замедляться.

2 голосов
/ 10 декабря 2010

Вы хотите убедиться, что у вас есть индекс на вещи, которые вам нужны, вы не хотите «ждать», пока это не станет проблемой… к этому моменту вы потратили впустую время.

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

Например, в зависимости от вашей работы, я думаю, вы могли бы «более эффективно» кластеризовать на DateTimeValue, так как я предполагаю, что у вас есть 1 запись в день.

1 голос
/ 10 декабря 2010

Я полагаю, что DateTimeValue будет естественным ключом в этой таблице?Он должен иметь уникальный индекс с самого начала.

Что касается других полей, маловероятно, что индексы IsWeekDay или IsWeekend будут использоваться оптимизатором, поскольку они имеют низкую селективность (IsWeekDay возвращает 71% строк).

Редактировать Также обратите внимание, что это в основном таблица только для чтения.Вы можете добавлять любые индексы, которые вам нравятся, так как они будут влиять на производительность записи только раз в несколько лет, если вы добавите в них данные за другие годы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...