Jimmy Nilsson habla sobre su concepto de GUI COMB here. Este concepto es popular en NHibernate, entre otros círculos, por su supuesto valor de rendimiento con respecto a los GUID estándar, que suelen ser mucho más aleatorios.Valor de rendimiento de las guías COMB
Sin embargo, en las pruebas, este no parece ser el caso. ¿Me estoy perdiendo de algo?
caso de prueba:
tengo una tabla llamada temperatura (no con una tabla temporal, sólo una tabla denominada "temp") con 585.000 filas en el mismo. 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 de SQL ejecuté era:
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 GUID:
de ejecución de SQL Server tiempos: CPU tiempo = 17250 ms, tiempo transcurrido = 15735 ms.
(585000 fila (s) affected)
rendimiento con valores GUID COMB:
de ejecución de SQL Server tiempos: CPU tiempo = 17500 ms, tiempo transcurrido = 16419 ms.
(585000 fila (s) affected)
¿Qué me falta? los valores de COMB GUID dieron como resultado tiempos levemente más largos, presumiblemente debido a las conversiones adicionales. Pensé que el objetivo era reducir el tiempo de inserción al hacer un semi ordenamiento de los GUIDS utilizando la fecha de los últimos 6 bytes, pero la ganancia de rendimiento parece inexistente.
que hizo mi o cualquier satisfaga la respuesta a su pregunta? – gbn
@Chris: ¿Es correcto GBN? – jgauffin