Question

  

Possible en double:    Avantages et inconvénients des clés de la base de données GUID / UUID

Y a-t-il des circonstances où il est essentiel d'utiliser les clés primaires GUIDs dans un SQL Server 2005/8 DB. Par exemple, est l'utilisation de la force Sync Framework MS cela, ou la réplication de données?

Était-ce utile?

La solution

Vous utilisez GUIDs comme une clé si vous avez besoin de plusieurs bases de données de synchronisation via la réplication.

Une autre raison d'utiliser GUIDs est si vous voulez créer des lignes sur certains clients à distance, par exemple une application WinForms et ensuite soumettre celles au serveur via des services Web, etc.

Si vous le faites, je vous suggère fortement que vous assurez-vous que vous spécifiez votre propre index cluster basé sur un int incrémentiel automatique qui n'est pas unique. Il peut être une surcharge considérable insérer des lignes dans une table où l'index cluster est un guid.

Mise à jour: Voici un exemple de la façon de mettre en place une table comme ceci:

CREATE TABLE [dbo].[myTable](
[intId] [int] IDENTITY(1,1) NOT NULL,
[realGuidId] [uniqueidentifier] NOT NULL,
[someData] [varchar](50) NULL,
    CONSTRAINT [PK_myTable] UNIQUE NONCLUSTERED 
    (
   [realGuidId] ASC
    )
)

CREATE CLUSTERED INDEX [IX_myTable] ON [dbo].[myTable] 
(
[intId] ASC
)

Vous insérer dans la table comme normale par exemple:.

INSERT INTO myTable VALUES(NEWID(), 'Some useful data goes here')

Mise à jour: J'ai écouté un épisode de dotnetrocks vraiment bien qui parle de ce vaut la peine d'écouter - Afficher # 447

Autres conseils

J'utilise comme GUIDs clés primaires, parce que je ne veux pas avoir des clés primaires composites quand je suis d'applications avec des bases de données distribuées et une base de données centrale qui est synchronisé avec les données de tous ceux distribués. Avec GUIDs Je suis sûr que (presque *) Je ne vais pas avoir un conflit (violation contrainte) quand je tire les données de tous les blocs de données dans une centrale.

* il est hautement improbable ayant le même GUID généré en deux endroits différents, mais pas impossible.

Lorsque la base de données n'est pas centralisée ou une partie de la collection est effectuée à distance.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top