none
Desempeño de las GUID RRS feed

  • Pregunta

  • Buenas tardes, disculpen, alguien que me pueda sugerir (basado en su desempeño) si usar GUID o bigint como claves de mis tablas de un sistema?, deseo saber si es verdad que ya es igual usar un GUID que un bigint en desempeño de busqueda e insersión, ya que la tecnología ha tenido gran avance?. Gracias
    lunes, 27 de marzo de 2017 20:17

Respuestas

  • El Bigint es más compacto que el GUID (8 bytes frente a 16), por lo que te caben el doble de Bigints que de Guids en una página de datos. Esto hace que los índices con Bigint tengan un rendimiento ligeramente mayor que con Guids.

    Si usas un campo identity, como es siempre creciente, las inserciones sobre un índice clustered son más eficientes, porque los nuevos registros siempre se añaden al final y no hay que fragmentar el índice (aunque también hay formas de generar Guids crecientes para soslayar este problema).

    Aunque el desempeño es (en general) ligerísimamente mejor con Bigints, los Guids son ventajosos en caso de que necesites coordinar datos de varios orígenes (por ejemplo, introducidos en varios servidores, o relacionados entre varias tablas), ya que son únicos en cada una de las ubicaciones en las que se generan.

    lunes, 27 de marzo de 2017 21:55

Todas las respuestas

  • El Bigint es más compacto que el GUID (8 bytes frente a 16), por lo que te caben el doble de Bigints que de Guids en una página de datos. Esto hace que los índices con Bigint tengan un rendimiento ligeramente mayor que con Guids.

    Si usas un campo identity, como es siempre creciente, las inserciones sobre un índice clustered son más eficientes, porque los nuevos registros siempre se añaden al final y no hay que fragmentar el índice (aunque también hay formas de generar Guids crecientes para soslayar este problema).

    Aunque el desempeño es (en general) ligerísimamente mejor con Bigints, los Guids son ventajosos en caso de que necesites coordinar datos de varios orígenes (por ejemplo, introducidos en varios servidores, o relacionados entre varias tablas), ya que son únicos en cada una de las ubicaciones en las que se generan.

    lunes, 27 de marzo de 2017 21:55
  • gracias mil.

    lunes, 27 de marzo de 2017 22:58
  • Ten en cuenta que Bigint soporta un numero máximo enorme! (9,223,372,036,854,775,807). Necesitas tanto?

    Int soporta más de 2mil millones de números y ocupa la mitad del espacio. Revísalo bien:

    https://docs.microsoft.com/en-us/sql/t-sql/data-types/int-bigint-smallint-and-tinyint-transact-sql

    Saludos

    Alberto

    martes, 28 de marzo de 2017 2:42