Каковы рекомендации по использованию GUID в качестве первичного ключа, особенно в отношении производительности?

У меня есть приложение, которое использует GUID в качестве первичного ключа почти во всех таблицах, и я читал, что при использовании GUID в качестве первичного ключа возникают проблемы с производительностью. Честно говоря, я не видел никаких проблем, но я собираюсь запустить новое приложение, и я все еще хочу использовать GUID в качестве первичных ключей, но я думал об использовании составного первичного ключа (GUID и, возможно, другое поле.)

Я использую GUID, потому что им удобно и легко управлять, когда у вас есть разные среды, такие как «производственная», «тестовая» и «разработка» баз данных, а также для переноса данных между базами данных.

Я буду использовать Entity Framework 4.3 и хочу назначить Guid в коде приложения, прежде чем вставлять его в базу данных. (т. е. я не хочу, чтобы SQL генерировал Guid ).

Как лучше всего создавать первичные ключи на основе GUID -, чтобы избежать предполагаемого снижения производительности, связанного с этим подходом?

311
задан abatishchev 12 August 2014 в 18:20
поделиться