У меня есть несколько таблиц, единственными уникальными данными которых являются столбец uniqueidentifier (Guid). Поскольку указатели не являются последовательными (и они генерируются на стороне клиента, поэтому я не могу использовать newsequentialid()), я сделал непервичный, некластеризованный индекс в этом поле идентификатора, вместо того, чтобы давать таблицам кластерный первичный ключ.
Мне интересно, каковы последствия для этого подхода. Я видел, как некоторые люди предполагают, что таблицы должны иметь автоинкрементный ( "identity" ) int как кластерный первичный ключ, даже если он не имеет никакого значения, поскольку это означает, что сам механизм базы данных может использовать это значение для быстрого найдите строку вместо того, чтобы использовать закладку.
Моя база данных реплицируется с помощью репликации по множеству серверов, поэтому я уклонился от столбцов идентификаторов int, поскольку они немного волосатые, чтобы получить право на репликацию.
Каковы ваши мысли? Если таблицы имеют первичные ключи? Или это нормально, чтобы не иметь каких-либо кластеризованных индексов, если нет разумных столбцов для индексации этого пути?