2017-02-01 2 views
0

J'ajoute une colonne à une table avec le type/longueur de données varchar (500). J'ajoute ensuite 3 enregistrements à cette table. Deux enregistrements ont une valeur de longueur 5 dans la nouvelle colonne et le troisième une valeur de longueur 500. En supposant que toutes les autres colonnes ont les mêmes valeurs pour les trois enregistrements, occupent-ils tous le même espace sur le disque ou la troisième rangée occuper plus d'espace? Si le premier, quel est le mal à définir N dans varchar (N) à un nombre très élevé sur tous les types de champs de chaîne où, à un moment donné, il pourrait être nécessaire d'utiliser tout N? Je pourrais comprendre être prudent avec la définition de N si une valeur voyous utilisé N caractères et l'effet était une augmentation significative de l'allocation de stockage pour tous les autres enregistrements de la table. Mais si cela n'affecte que le seul enregistrement, quel est le mal à fixer N très haut? Tout ce que je lis en ligne dit être prudent en réglant N, mais j'ai du mal à voir pourquoi.L'enregistrement varchar de longueur maximale a-t-il un impact sur le stockage pour les autres enregistrements comportant moins de caractères dans le champ?

+0

[cette réponse] (http://dba.stackexchange.com/a/162117/361) peut vous aider – Lamak

+0

Copie possible de [varchar (max) partout?] (Http://stackoverflow.com/q/) 2091284/1048425) ou [existe-t-il un avantage à varchar (500) sur varchar (8000)?] (Http://stackoverflow.com/q/2009694/1048425), ou [Largeur de colonne SQL Server VARCHAR] (http://dba.stackexchange.com/q/11614/7257), ou [Différence entre varchar (5) et varchar (5000)?] (http://stackoverflow.com/q/9033000/1048425) ou [Utiliserait varchar (5000) est mauvais comparé à varchar (255)?] (Http://dba.stackexchange.com/q/162113/7257) – GarethD

Répondre

0

Varchar est idéal pour économiser de l'espace car il ne stocke pas d'espaces vides.

C'est la chute vient quand vous commencez à exécuter beaucoup de UPDATEs sur le champ de Varchar. Les mises à jour peuvent déclencher des fractionnements de page et entraîner un stockage moins efficace en raison d'un manque de pages.

Ainsi, plus la variation de taille est importante, plus l'impact potentiel d'une transaction UPDATE sur plusieurs enregistrements est important.