OVH Cloud OVH Cloud

Compréhension des résultats de sp_spaceused

3 réponses
Avatar
thierry
Bonjour,

le résultat d'un
sp_spaceused sur une
base me donne les
informations
suivantes :

records 14M
Reserved space : 3Go
Data Space : 0.5 Go
Index Space : 1.5 Go
Unused space : 0.95
Go

Malgré la
compression de la
base je n'arrive pas
à libérer
le unused space.
Or, en faisant un
dts de type copie
des tables dans une
nouvelle
base, cet espace a
bien disparu.

Quelqu'un saurait il
ce que contient cet
espace inutilisé
et si la seule
solution pour le
supprimer est de
transférer les
données dans une
nouvelle base ?

Merci d'avance pour
votre aide
Thierry

3 réponses

Avatar
Med Bouchenafa
Cela est aussi un comportement normal
Tu peux gagner de l'espace par une défragmentation
Voir DBCC INDEXDEFRAG dans l'Aide En Ligne

--
Bien cordialement
Med Bouchenafa

"thierry" a écrit dans le message de news:
425e30f6$0$6547$
Bonjour,

le r?ultat d'un
sp_spaceused sur une
base me donne les
informations
suivantes :

records 14M
Reserved space : 3Go
Data Space : 0.5 Go
Index Space : 1.5 Go
Unused space : 0.95
Go

Malgr?la
compression de la
base je n'arrive pas
?lib?er
le unused space.
Or, en faisant un
dts de type copie
des tables dans une
nouvelle
base, cet espace a
bien disparu.

Quelqu'un saurait il
ce que contient cet
espace inutilis?
et si la seule
solution pour le
supprimer est de
transf?er les
donn?s dans une
nouvelle base ?

Merci d'avance pour
votre aide
Thierry


Avatar
thierry
Par contre ce qui est bizarre ,

c'est que la base dont les données ont été transférées
avait les caractèristiques suivantes :

records 14M
Reserved space : 3Go
Data Space : 0.5 Go
Index Space : 1.5 Go
Unused space : 0.95 Go

et la base nouvellement crée et alimentée par un dts de type copie
a les caractèristiques suivantes :

records 14M
Reserved space : 1.5Go
Data Space : 1.5 Go
Index Space : 0 Go
Unused space : 0 Go

C'est bizarre, comment expliquer que d'une base à l'autre
on passe de 0.5Go à 1.5Go ?

De plus, lorsque l'on passe par un dts de ce type, il semblerait
que les indexs ne soient pas conservés.
Connaissez vous une méthode pour garder les indexs ?

Merci d'avance
Thierry
Avatar
Med Bouchenafa
L'unité d'allocation d'espace pour une table dans SQL server est l'extend
qui vaut 8 pages soit 64 Ko.
Ce qui signifie que chaque fois que SQL Server doit allouer de l'espace, il
met à disposition de la table 8 pages ou 64 Ko.

Le "reserved space" est le total de pages (Page Data +Pages Index) alloué à
la table.
Dans le premier cas de ton exemple, SQL Server a alloué 3Go pour les données
et les index mais seuls 2 Go sont réellement utilisés.
Il y a environ 1Go qui n'est pas utilisé.
Dans le second cas, SQL Server a alloué un espace de 1.5Go et l'a occupé
complètement . Ce qui est normal au regard de l'opération que tu fais.
Les pages sont remplies au fur et à mesure qu'elles sont allouées durant le
transfert DTS.

Le "Data Space" donne l'espace occupé par :
les données (lindex cluster est reporté ici aussi)
les entrées des données text ou image

Dans ton cas, il est possible que tu avais un index cluster dans la base A
et pas dans la base B

Pour copier les index, clefs primaires et autres options, il est preferable
d'utiliser la tache DTS "Copie d'objet SQL"


--
Bien cordialement
Med Bouchenafa

"thierry" a écrit dans le message de news:
425e35d5$0$16582$
Par contre ce qui est bizarre ,

c'est que la base dont les données ont été transférées
avait les caractèristiques suivantes :

records 14M
Reserved space : 3Go
Data Space : 0.5 Go
Index Space : 1.5 Go
Unused space : 0.95 Go

et la base nouvellement crée et alimentée par un dts de type copie
a les caractèristiques suivantes :

records 14M
Reserved space : 1.5Go
Data Space : 1.5 Go
Index Space : 0 Go
Unused space : 0 Go

C'est bizarre, comment expliquer que d'une base à l'autre
on passe de 0.5Go à 1.5Go ?

De plus, lorsque l'on passe par un dts de ce type, il semblerait
que les indexs ne soient pas conservés.
Connaissez vous une méthode pour garder les indexs ?

Merci d'avance
Thierry