Wartość wydajności prowadnic COMB

Jimmy Nilsson omawia swoją koncepcję przewodnika COMBtutaj. Koncepcja ta jest popularna w NHibernate, między innymi, ze względu na jej rzekomą wartość wydajności w stosunku do standardowych GUID, które są zazwyczaj znacznie bardziej losowe.

Jednak w testach wydaje się, że tak nie jest. Czy czegoś mi brakuje?

Przypadek testowy:

Mam tabelę o nazwie temp (nie tabelę tymczasową, tylko tabelę o nazwie „temp”) z 55,000 wierszy. Mam nową tabelę o nazwie Kody i chcę skopiować wszystkie 585 000 wartości kodu z tabeli tymczasowej do tabeli kodów. Test SQL, który wykonałem, był:

set statistics time on;

truncate table codes;
DBCC DBREINDEX ('codes', '', 90);

insert into codes (codeid, codevalue)
select newid(), codevalue from temp

truncate table codes;
DBCC DBREINDEX ('codes', '', 90);

insert into codes (codeid, codevalue)
select CAST(CAST(NEWID() AS BINARY(10)) + CAST(GETDATE() AS BINARY(6)) AS UNIQUEIDENTIFIER), codevalue from temp

Wydajność przy użyciu standardowych wartości GUID:

Czasy wykonania SQL Server: czas procesora = 17250 ms, czas, który upłynął = 15735 ms.

(Dotyczy 585000 wierszy)

Wydajność z wartościami GUID COMB:

Czasy wykonania SQL Server: czas procesora = 17500 ms, czas, który upłynął = 16419 ms.

(Dotyczy 585000 wierszy)

czego mi brakuje? wartości GUID COMB spowodowały nieco dłuższe czasy, prawdopodobnie z powodu dodatkowych konwersji. Pomyślałem, że chodzi o skrócenie czasu wstawiania przez pół-uporządkowanie GUIDS przy użyciu daty dla ostatnich 6 bajtów, ale przyrost wydajności wydaje się nieistniejący.

questionAnswers(3)

yourAnswerToTheQuestion