SQL Server NUMERIC / DECIMAL précision vs stockage
Compte tenu de ce MSDN unis en matière de SQL Server 2008 R2 stockage NUMÉRIQUE/précision DÉCIMALE.
Précision de 1 à 9 est de 5 octets
Précision de 10 à 19 ans est de 9 octets
Donc, si mon analyse de cas exige logiquement un type de données, avec 2 décimales et une précision de 5 chiffres, il ne fait aucune réelle de la performance ou de stockage de différence si je le définir comme NUMÉRIQUE(5, 2) ou NUMÉRIQUE(9, 2).
L'un étant donné que je suis volontairement ignorer, c'est l'implicite de la vérification de la contrainte comme je l'avais plus, probablement, un véritable vérification de la contrainte sur la colonne de limiter la réelle plage de valeurs autorisées.
Cela fait-il une différence quand il s'agit de l'index, les performances de la requête ou de tout autre aspect du système?
source d'informationauteur Craig Nicholson | 2011-01-12
Vous devez vous connecter pour publier un commentaire.
Numérique(5, 2) les nombres jusqu'à et y compris 999.99. Si vous essayez d'insérer 1000.0-dedans, vous obtiendrez un dépassement de capacité arithmétique.
Numérique(9,2) permet à des nombres jusqu'à et y compris à 9 999 999.99
Garder à l'esprit que si vous prévoyez jamais la somme de cette valeur, de laisser un espace supplémentaire, sinon vous obtiendrez un dépassement de capacité ou vous aurez besoin de faire un cast explicite.
Ils prennent le même nombre d'octets. Car ils sont de la même taille de stockage, ils sont les mêmes dans la page de données, dans la mémoire, dans l'index, dans le réseau de transmission, etc.
C'est pour cette raison que j'ai l'habitude de travailler sur ce numéro de taille j'ai besoin de stocker (si vous utilisez numérique), puis augmenter la précision (et peut-être à l'échelle), de sorte que je suis juste en dessous du point où la taille de stockage augmente.
Donc, si j'ai besoin de stocker jusqu'à 99 millions de dollars, avec 4 chiffres après la virgule, ce serait numériques (12,4). Pour le stockage, je peux avoir un numérique (19,6) et de donner un certain espace de sécurité pour que lorsque l'utilisateur de l'entreprise annonce qu'ils ont vraiment besoin de stocker quelques milliards de dollars.