Question

Y at-il un moyen de savoir à quel point l'espace (sur le disque) une ligne dans ma base de données prend?

J'aimerais le voir pour SQL Server CE, mais à défaut de SQL Server 2008 fonctionne (je stocke sur les mêmes données dans les deux).

La raison pour laquelle je demande est que j'ai une colonne image dans le CE SQL Server db (il est un varbinary [max] dans le SQL 2008 db) et je dois savoir maintenant de nombreuses lignes que je peux stocker avant que je max sur la la mémoire de mon appareil.

Était-ce utile?

La solution

Peut-être pas 100% ce que vous vouliez, mais si vous voulez savoir combien la taille d'une image prend juste faire

SELECT [RaportID]
                      ,DATALENGTH([RaportPlik]) AS 'FileSize'
                      ,[RaportOpis]
                      ,[RaportDataOd]
                      ,[RaportDataDo]
FROM [Database]

Tout autre comptage supplémentaire que vous devez vous faire (comme dans la prévision, etc.).

Autres conseils

A varbinary colonne (max) pourrait contenir jusqu'à 2 Go de données par lui-même pour chaque ligne. Pour une utilisation estimée à partir des données existantes, vous pourriez peut-être faire une analyse en utilisant la fonction DATALENGTH pour travailler ce que l'espace un typique de vos images prend, et extrapoler à partir de là.

Vous ne pouvez faire des suppositions difficiles - il n'y a pas de réponse exacte à la question « combien de lignes je peux stocker avant max la mémoire de mon appareil » depuis vous n'avez pas l'usage exclusif de l'appareil - autres programmes prennent trop de ressources, et vous ne pouvez savoir combien de stockage est disponible à l'heure actuelle, pas à un moment donné à l'avenir. En outre, vos images sont probablement compressées et prennent donc des quantités variables de RAM.

Pour deviner fins, tout simplement la taille de l'image est une bonne approximation de la taille de la ligne; la tête de la structure de ligne est négligeable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top