J'ai un tableau qui, à mon avis, serait mieux s'il utilisait différents types de données pour plusieurs de ses colonnes. Je souhaite concevoir des tests pour déterminer le gain d'espace disque si ces colonnes sont remplacées par de meilleurs types de données. Comment puis-je déterminer l'espace disque occupé par une table dans ASE 15.0 ?
Réponses
Trop de publicités?-
Utilisez
sp_spaceused, table, 1
. Cela rapporte la table et chaque index séparément. En fournissant ledata
l'espace utilisé par lerowtotal
vous donnera une valeur pour la longueur réelle de la ligne (sans compter la fragmentation, qui est basée sur le schéma de verrouillage et l'activité). -
Utilisez
sp_help table_name
. Vous obtiendrez ainsi une autre valeur, la longueur prévue ou moyenne des rangs. À l'aide des informations fournies, faites l'arithmétique simple avec les longueurs de colonnes, puis estimez ce qu'elles seront en fonction des changements de type de données que vous envisagez. -
Notez que les colonnes de longueur variable nécessitent 4 octets supplémentaires chacune.
- Si une colonne est Nullable, elle est stockée comme Var Len.
-
Maintenant, créez la nouvelle table (même temporairement), avec les mêmes colonnes, avec les nouveaux Datatypes, et répétez (2). Cela confirmera vos estimations.
-
sp_estspace
a un objectif différent.
1> sp_spaceused TableName
2> go
name rowtotal reserved data index_size unused
-------------------- ----------- --------------- --------------- --------------- ---------------
TableName 5530288 5975116 KB 5537552 KB 392292 KB 45272 KB
Je ne connais rien qui puisse vous donner une ventilation par colonne. L'utilisation de sp_help sur la table vous donne une liste de toutes les colonnes et leur longueur. Je pense que cela indique la quantité de stockage que la colonne pourrait utiliser.
Il existe des méthodes pour estimer la taille des tables à l'aide de sp_estspace, mais je ne les ai jamais essayées.