Quel est le meilleur type de données à utiliser lors de la conservation des chaînes, comme un prénom? J'ai vu Varchar et Nvarchars à la fois utilisé. Quel est le meilleur? Est-ce qu'il importe? P>
J'ai aussi entendu dire que la meilleure longueur à utiliser est 255, mais je ne sais pas pourquoi. Y a-t-il une longueur spécifique qui est préférée pour les chaînes? P>
4 Réponses :
NVARCHAR stocke des données de caractères Unicode requises si vous envisagez de stocker des noms non-anglais. Si c'est une application Web, je recommande vivement d'utiliser NvarchaRar même si vous ne le faites pas plan em> sur être international. L'inconvénient est qu'elle consomme deux fois plus d'espace, 16 bits par caractère pour NvarchaRar et 8 bits par caractère pour Varchar. P>
Nvarchar signifie que vous pouvez enregistrer le caractère Unicode à l'intérieur. Il existe une limite de 2 Go pour le type Nvarchar. Si la longueur de champ est supérieure à 4000 caractères, une page de débordement est utilisée. Les champs plus petits signifie qu'une page peut contenir plus de lignes qui augmentent la performance de la requête. P>
Quel est le meilleur type de données à utiliser Lorsque vous stockez des cordes, comme un premier Nom? J'ai vu Varchar et Nvarchars les deux utilisés. Quel est le meilleur? Fait cela importe? P> blockQuote>
voir Quelle est la différence entre Nchar (10 ) et Varchar (10) dans MSSQL? P>
Si vous avez besoin de caractères non ASCII, vous devez utiliser
NCHAR code> /nvarchar code>. Si vous ne le faites pas, vous voudrez peut-être utiliserchar code> /varchar code> pour économiser de l'espace. P>Notez que ce problème est spécifique à MS SQL Server,
qui n'a pas de bon support pour UTF-8 S>. Dans d'autres implémentations SQL qui font, vous pouvez utiliser des chaînes Unicode sans exigences d'espace supplémentaire (pour l'anglais). P>EDIT: strong> Étant donné que cette réponse a été écrite à l'origine, SQL Server 2019 (15.x) a finalement introduit Support UTF-8 . Vous voudrez peut-être envisager l'utiliser comme codage de texte de base de données par défaut. P>
J'ai aussi entendu dire que la meilleure longueur à utiliser est 255, mais je ne sais pas pourquoi. p> blockQuote>
voir
y a-t-il une bonne raison pour laquelle Varcharate (255) est-il utilisé aussi souvent (par opposition à une autre longueur)? P> y a-t-il une longueur spécifique qui est préféré pour les cordes? p> blockQuote>
Si vos données ont une limite maximale bien définie (par exemple, 17 caractères pour un VIN), utilisez-le. P>
OTOH, si la limite est arbitraire, choisissez une taille maximale généreuse pour éviter de rejeter des données valides. SQL Server, vous voudrez peut-être envisager le Taille maximale de 900 octets de clés d'index . P>
Généralement, pour les petites chaînes utilisez Grandes chaînes besoin Pour des scénarios spéciaux lorsque votre ensemble de données n'utilise jamais les caractères Unicode, Si vous savez que la longueur maximale ( nvarchar (n) code>, qui prend en charge les caractères Unicode. La chaîne est compressé Lorsqu'il est utilisé avec une compression de ligne ou de page (au moins l'un d'entre eux est généralement souhaitable). P>
nvarchar (max) code>, quelle compression Unicode ne prend pas en charge. P>
varchar (n) code> et varchar (max) code> restreint le type de chaîne d'un octet par caractère. p>
n code>) est inférieure à 256, SQL Server n'a besoin que d'utiliser 1 octet pour stocker la longueur de la chaîne. Cela réduit l'espace de stockage d'environ une demi-pour cent comparé un type de chaîne dont la longueur maximale est de plus de 255. P>
Toute différence de performance lors de l'utilisation de Varchar ou de Nvarchar sur Char (256)?
@Matt: Si vous utilisez CHAR, votre colonne prendra toujours suffisamment d'espace pour le nombre de caractères spécifié. Cela peut vous donner un très léger avantage de vitesse, mais à moins que vous sachiez que vos données varient rarement de la longueur, vous finirez de gaspiller beaucoup d'espace. Préférable d'aller avec Varchar ou Nvarchar.