Хорошо, настало время подключиться. Я бы сказал, что сгенерированные GUID на стороне клиента для сохранения в базе данных - это лучший способ сделать что-то - при условии, что вы используете GUID в качестве своих PK, что я рекомендую только в одном сценарий: отключенная среда.
Когда вы используете отключенную модель для распространения данных (например, приложения для КПК / мобильных телефонов, приложения для ноутбуков, предназначенные для сценариев с ограниченными возможностями подключения и т. Д.), Лучшим способом сделать это являются GUID, создаваемые PK на стороне клиента.
Для любого другого сценария вам, вероятно, лучше использовать автоматические инкрементные идентификаторы PK.
Почему? Ну, пара причин. Во-первых, вы действительно получаете значительное повышение производительности за счет использования кластерного PK-индекса с охватом строк. PK GUID и кластеризованный индекс не очень хорошо сочетаются друг с другом - даже с NEWSEQUENTIALID, который, между прочим, я думаю, совершенно не учитывает GUID. Во-вторых, если ваша ситуация не вынуждает вас (то есть вы должны использовать отключенную модель), вы действительно хотите сохранить все транзакции и одновременно вставлять как можно больше взаимосвязанных данных.