Одной из альтернатив является использование так называемого суррогатного ключа (который также может быть назначен в качестве первичного ключа).
Например, добавление столбца идентификаторов, который можно использовать для уникальной идентификации каждой строки в таблице, то есть первичного ключа.
Понимают, что GUID используется для глобальной идентификации записи в SQL Server (что, возможно, не является корректной в отношении отношений, однако, в данном случае это нас не касается).
Столбец идентификации, теперь также первичный ключ, может / будет иметь кластеризованный индекс. Отдельный некластеризованный индекс затем может быть применен к составному ключу, описанному в исходном плакате.
Эта практика позволяет избежать проблемы частых расщеплений страниц в кластеризованном индексе (вставка в случайный первичный ключ GUID), а также создания меньшего и более эффективного кластеризованного индекса, сохраняя при этом отношения, определенные в базе данных.
Определение суррогатного ключа: http://en.wikipedia.org/wiki/Surrogate_key