2010-10-04 5 views
1

Possible en double:
Size of varbinary field in SQL server 2005comment déterminer la taille de la ligne dans la base de données

Dans ma base de données de SQL2005, j'ai une table qui a une varbinary colonne (MAX).

Comment indiquer la taille des lignes? Ou comme alternative, dites la taille du champ varbinary dans chaque rangée?

+4

Voir la même question http://stackoverflow.com/questions/507785/size-of-varbinary-field-in-sql-server-2005 –

+0

Exemple avec lien dans ma réponse ici: http://stackoverflow.com/questions/3793022/comment-venir-à-limites-de-8060-octets-par-ligne-et-8000-par-varchar-nvarchar-valeur/3793265 # 3793265 – gbn

+0

merci pour les liens. Je cherchais évidemment les mauvais mots-clés. juste besoin d'un vote de plus pour fermer la question. – yamspog

Répondre

4

Il y a deux fonctions:

  • DATALENGTH renvoie la taille des données (octets)
  • LEN renvoie la taille des données (caractères).

Pour une colonne varbinary(max), vous devez utiliser DATALENGTH:

SELECT DATALENGTH(column) FROM Table; 

Les deux fonctions renvoient la valeur logique des données, qui est après tous les algorithmes de compression ont été appliqués et la colonne est complètement non compressé . Le nombre réel d'octets occupés sur disque ne peut pas être déterminé, car il est influencé par les différentes options de stockage, notamment par les options de compression (row compression, page compression, unicode compression) et par le paramètre large value types out of row pour la table.

+3

Alors ... est-il possible de déterminer la taille de la rangée entière, pas seulement celle d'une colonne (c'était aussi une sorte de question posée dans la question originale :) – rogerdpack

Questions connexes