Как производительность guids сравнивается со строками в sql - PullRequest
1 голос
/ 21 июля 2010

Для первичных ключей в большой таблице данных SQL Server 2008 я могу выбрать использование направляющих или строки примерно одинакового размера.

С точки зрения производительности, как guid (16 байтов) сравнивается со строкой из примерно 16 символов при выполнении объединений, выборок и т. Д. Насколько лучше SQL обрабатывает guid, поскольку внутренне они представлены в виде числа?

1 Ответ

2 голосов
/ 21 июля 2010

Краткий ответ на ваш вопрос - в идеале, не использовать ни тот, ни другой.

Если вы можете использовать клавишу int / bigint (как я предложил в моем ответе на ваш связанный вопрос ), вам следует.

Если вам не требуется функциональность для неразрушающего объединения копий этого набора данных, хранящихся в более чем одном экземпляре SQL Server, использование первичного ключа GUID значительно увеличивает затраты на обслуживание индекса. Эта статья содержит разумное обсуждение вопроса.

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

...