Мы используем Guid для первичного ключа, который, как вы знаете, кластеризован по умолчанию.
При вставке новой строки в таблицу она вставляется на случайную страницу в таблице (потому что Guid-ы являются случайными). Это оказывает ощутимое влияние на производительность, поскольку БД постоянно разделяет страницы данных (фрагментация). Но главная причина, по которой я использую последовательный Guid, заключается в том, что я хочу, чтобы новые строки вставлялись как последняя строка в таблицу ... что поможет при отладке.
Я могу создать кластеризованный индекс для CreateDate, но наша БД генерируется автоматически, и в процессе разработки нам нужно сделать что-то дополнительное, чтобы облегчить это. Также CreateDate не является хорошим кандидатом для кластерного индекса.
Раньше я использовал Jimmy Nielsons COMB's , но мне было интересно, есть ли что-то в .NET Framework для этого. В SQL 2005 Microsoft представила newsequentialid () в качестве альтернативы newid (), поэтому я надеялся, что они сделали эквивалент .NET, потому что мы генерируем идентификатор в коде.
PS: Пожалуйста, не начинайте обсуждать, правильно это или нет, потому что GUID должен быть уникальным и т. Д.