Предполагая, что столбец id
является ключом кластеризованного индекса, и предполагая, что под uniqueidentity
вы подразумеваете uniqueidentifier
:
- вам нужен тип
uniqueidentifier
? Зачем?
- Какие еще альтернативы вы рассматривали?
- Заполняете ли вы данные с помощью последовательных идентификаторов GUID или нет?
GUID - это заведомо неудачный выбор для кластерных ключей. См. GUID как ПЕРВИЧНЫЕ КЛЮЧИ и / или ключ кластеризации для более подробного обсуждения:
Но GUID, который не является последовательным -
как тот, который имеет свои ценности
генерируется в клиенте (с использованием .NET)
ИЛИ, сгенерированный функцией newid ()
(в SQL Server) может быть ужасно плохо
выбор - в первую очередь из-за
фрагментация, которую он создает в
базовый стол, но и из-за его
размер. Это излишне широкий (это 4
в разы шире, чем основанная на Int идентичность
- который может дать вам 2 миллиарда (на самом деле, 4 миллиарда) уникальных строк). А также,
если вам нужно более 2 миллиардов
всегда можно пойти с большой буквы (8 байт
int) и получить 2 ^ 63-1 строки
Также читайте Дисковое пространство дешево ... Не в этом дело! в качестве продолжения.
Кроме этого, вам необходимо выполнить домашнее задание и опубликовать необходимые детали для такого вопроса: точное определение таблицы и индекса, распространенный шаблон доступа к данным (по ключу, по диапазону, порядку сортировки фильтров, присоединяется и т. д.)
Вы уже проделали какую-либо работу по выявлению проблем? Если нет, начните с Ожидания и очереди , проверенной методики выявления узких мест в производительности. Как только вы измерите и найдете места, которые нуждаются в улучшении, мы можем посоветовать, как улучшить.