Dois-je utiliser int32 ou int64 pour les clés primaires dans ma base de données SQL Server?

Lors de la création d'une nouvelle base de données dans SQL Server, dois-je utiliser des clés primaires int32 ou int64?

Est le int32 plus vite?

Je pense que la raison que je ne voudrais pas aller avec int32, c'est que n'est-il pas la limite supérieure du int32 de type de données de limiter le nombre total de transactions sur un tableau à 2 147 483 647? Je n'ai pas l'intention de stocker beaucoup de données là-dedans, mais si j'ai constamment besoin de créer de nouveaux dossiers, puis supprimez ceux qui étaient rassis? de nombreuses transactions plus tard, n'aurais-je pas exécuter de clés? Est-il une méthode qui prend en charge ce déjà? Ou devrais-je simplement utiliser le type de données long.

Je ne pense pas qu'il y est un impact sur les performances si vous avez un int64 (BigInt) colonne comme clé primaire, au lieu de int32 (Int).
Vous disposez de 4 milliards de lignes. Vient de (re)démarrer l'identité de la graine au négatif de 2 milliards de dollars.
bien SÛR il y a un impact sur les performances! Rapide un énorme, même, si cette colonne est la clé primaire (et donc par défaut la clé de cluster) de votre table SQL Server. Le clusters est inclus dans chaque et tous les index non cluster sur la même table et, par conséquent, il est stocké à quelques reprises et d'avoir 8 octets vs 4 octets peut faire tout à fait une différence lorsque vous traitez avec des centaines de millions de lignes....
si vous avez un très grand nombre de lignes (en millions de dollars et plus), et potentiellement beaucoup de non-cluster indices sur une table alors oui, ce serait vraiment une bonne idée pour voir si vous pouvez vous déplacer d'un int au lieu de bigint
l'impact sur le temps de réponse est ceci: si vos besoins en matière de données de plus d'espace (sur le disque), il s'étale sur plus de 8k pages dans SQL Server, donc, pour une requête donnée pour être convaincu, SQL Server doit charger plus de pages --> a un impact direct sur les I/O à partir de votre disque subssystem.

OriginalL'auteur oledu.com | 2013-02-02