Во всех моих таблицах есть столбец rowversion
, который EF использует для проверки оптимистичного параллелизма. Должен ли я создать некластеризованный индекс для этого столбца для более быстрого поиска данных? Каждая таблица также имеет кластеризованный первичный ключ с именем Id
. Всякий раз при обновлении данных будет ли EF/SQL сначала пытаться найти строку на основе идентификатора, а затем запускать проверку версии строки?
Нужен ли столбцам rowversion/timestamp в SQL Server некластеризованный индекс при использовании EF code-first?
comment
Да. Все остальное не имело бы смысла.
- person Mitch Wheat   schedule 24.04.2014
comment
Для большей ясности: «да» на второй вопрос, «нет» на первый.
- person dean   schedule 24.04.2014
Ответы (1)
Ни один из ваших планов запросов не будет выполнять поиск по этому столбцу. Все записи выполняются путем фильтрации по столбцам первичного ключа, что вызывает поиск в индексе, предоставляющем первичный ключ. Индекс rowversion никогда не помогает.
Чтобы ответить на такие вопросы эмпирически, сравните планы выполнения с рассматриваемым индексом и без него.
person
usr
schedule
24.04.2014