Valor de rendimiento de las guías COMB

Jimmy Nilsson discute su concepto de guía COMB.aquí. Este concepto es popular en NHibernate, entre otros círculos, por su supuesto valor de rendimiento sobre los GUID estándar, que suelen ser mucho más aleatorios.

Sin embargo, en las pruebas, este no parece ser el caso. ¿Me estoy perdiendo de algo?

Caso de prueba:

Tengo una tabla llamada temp (no una tabla temporal, solo una tabla llamada "temp") con 585,000 filas. Tengo una nueva tabla llamada Códigos y deseo copiar los 585,000 valores de código de la tabla temporal a la tabla de códigos. La prueba SQL que ejecuté fue:

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

Rendimiento con valores estándar de GUID:

Tiempos de ejecución de SQL Server: tiempo de CPU = 17250 ms, tiempo transcurrido = 15735 ms.

(585000 fila (s) afectadas)

Rendimiento con valores COMB GUID:

Tiempos de ejecución de SQL Server: tiempo de CPU = 17500 ms, tiempo transcurrido = 16419 ms.

(585000 fila (s) afectadas)

¿Qué me estoy perdiendo? Los valores de COMB GUID resultaron en tiempos ligeramente más largos, probablemente debido a las conversiones adicionales. Pensé que el punto era reducir el tiempo de inserción haciendo un pedido parcial a los GUIDES usando la fecha de los últimos 6 bytes, pero la ganancia de rendimiento parece no existir.

Respuestas a la pregunta(3)

Su respuesta a la pregunta