IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Problème taille d'une table sql server 2005


Sujet :

MS SQL Server

  1. #1
    Membre actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Points : 213
    Points
    213
    Par défaut Problème taille d'une table sql server 2005
    Bonjour,

    Je me permets de poster ici car après qq recherches je n'ai pas trouvé réponse a mon problème

    J'ai une table sous sql server 2005 avec les statistiques suivantes :

    NAME ROWS RESERVED DATA INDEX UNUSED
    XXXX 1578307 4993496 KB 4190312 KB 803040 KB 144 KB

    Stats obtenue grace a la commande EXEC sp_spaceused XXXX.

    Bien sur mes lignes ne font guère 3k, elles font aux alentours de 300/400 octets.

    Et si je lance la commande DBCC SHOWCONTIG 'XXXX', j'obtiens les valeurs suivantes :

    TABLE level scan performed.
    - Pages Scanned................................: 523789
    - Extents Scanned..............................: 65483
    - Extent Switches..............................: 65565
    - Avg. Pages per Extent........................: 8.0
    - Scan Density [Best Count:Actual Count].......: 99.86% [65474:65566]
    - Logical Scan Fragmentation ..................: 0.03%
    - Extent Scan Fragmentation ...................: 0.83%
    - Avg. Bytes Free per Page.....................: 7586.8
    - Avg. Page Density (full).....................: 6.27%

    En fait les page sont fragmentées, j'ai essayé un shrink et un cleantable et j'ai cherché après d'autres méthode, mais je n'arrive pas a comprimé mes données.

    Renommer la table, créer une nouvelle et copier chaque ligne n'est pas une solution envisageable. Ce serait irréalisable

    Merci de votre aide

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut Réindexation de l'index de cle primaire.
    la meilleure solution semble être de réindexer votre index cluster de clé primaire pour réorganiser votre table à votre convenance.

    lisez cela : http://www.developpez.net/forums/sho...d.php?t=488014

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 936
    Points : 51 753
    Points
    51 753
    Billets dans le blog
    6
    Par défaut
    il n'y a aucune fragmentation dans les données que vous nous fournissez !
    Vous interprétez visiblement mal les données que vous avez sous les yeux....

    Qu'est ce qui vous choque ?

    A +

  4. #4
    Membre actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Points : 213
    Points
    213
    Par défaut
    ce qui me choque je pourrais regarder la structure exacte de ma table mais il y a une dizaine d'int 5-6 char de moins de 20 caractère.

    Et que pour 1.5 millions d'enregistrement ma table prend 4go.

    Hors c'est impossible, elle devrais faire entre 500 et 750mb maximum.

    J'ai une perte de place au niveau de cette table.

    J'ai essayé de réindexer ma table déjà, j'avais lu ce tutoriel mais cela n'a pas corriger le problème.

  5. #5
    Membre actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Points : 213
    Points
    213
    Par défaut
    problème résolu ce matin,

    Je réobtiens des statistiqus de ce genre

    XXXX 1578307 333200 286968 46112 120

    qui me plaisent bcp mieux et 99.2% de fragmentation des index

    La commande que j'ai exécuté si d'autres personnes ont le problème est :

    USE XXXX

    DECLARE @TableName varchar(255)

    DECLARE TableCursor CURSOR FOR
    SELECT table_name FROM information_schema.tables
    WHERE table_type = 'base table'

    OPEN TableCursor

    FETCH NEXT FROM TableCursor INTO @TableName
    WHILE @@FETCH_STATUS = 0
    BEGIN
    DBCC DBREINDEX(@TableName,' ',90)
    FETCH NEXT FROM TableCursor INTO @TableName
    END

    CLOSE TableCursor

    DEALLOCATE TableCursor

    ma base de donnée est passé de 8go a 640mb, restera a voir si il faut le réexécuter a interval régulier

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 936
    Points : 51 753
    Points
    51 753
    Billets dans le blog
    6
    Par défaut
    Oui, il faut prévoir une maintenance d'index régulière....

    Tâche de DBA.

    A +

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Vxi3] Problème avec une table SQL SERVER 2005
    Par ahmed_amine dans le forum Designer
    Réponses: 2
    Dernier message: 14/06/2011, 19h10
  2. problème d'ouverture d'une table sql server 2005
    Par WX500 dans le forum Administration
    Réponses: 2
    Dernier message: 03/05/2011, 17h36
  3. Comment récuperer un champs XML d'une table SQL Server 2005
    Par myannick dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 31/07/2009, 19h09
  4. Problème de connexion à une base SQL Server 2005
    Par tatayecorp dans le forum ASP
    Réponses: 2
    Dernier message: 19/04/2008, 01h28
  5. [VBA]Inséré un dataset dans une table sql Server 2005
    Par Yotho dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/05/2007, 18h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo