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 :

[SQL2K] Pb de taille de table et de ligne


Sujet :

MS SQL Server

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 285
    Points : 139
    Points
    139
    Par défaut [SQL2K] Pb de taille de table et de ligne
    Bonjour,

    J'ai un petit souci de taille de table.

    D'après la fonction : Sp_spaceused (merci la FAQ), ma table fait une taille de 9856 KB pour 203191 lignes.

    Un petit produit en croix me donne une ligne 50 octets ...

    Et là je suis un peu surpris. Mes lignes ne sont composés que de deux UIDs (16 bits) et d'un bigint (8 bits). Donc je devrais avoir des lignes d'environ 5 octets ?

    Je comprends pas bien donc si quelqu'un a une idée ... je suis preneur !

    Bonne journée

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    Sp_spaceused te renvoie AUSSI l'espace utilisé par les index de ta table ET l'espace ALLOUE.

    exemple: si ta table a déjà eu 1 000 000 lignes et que tu n'as pas fais de SHRINKFILE sql serveur garde l'espace où il a rangé tes 1000000 lignes (ne permet pas au système d'exploitation d'utiliser cet espace) et idem pour l'index.

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 285
    Points : 139
    Points
    139
    Par défaut
    Dans cette table, je n'ai jamais eu plus 204 000 lignes donc je ne pense pas que le problème vient de là ...

    De plus, je n'ai pas forcément le pb sur d'autres tables.

    J'ai une table de structure a peu près identique (un UID en plus) mais là la taille d'une ligne correspond bien ... Bon, dans la table, il y a 12 millions d'enregistrement ...

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 285
    Points : 139
    Points
    139
    Par défaut
    Plus d'infos :-) !

    J'ai fait un test sur une table qui contient 12 millions d'enregistrement. La structure est la suivant :
    BIGINT, UID, UID, UID, BIGINT.

    Avec la même requête que tout à l'heure, je me rends compte que la table fait 900 Mo soit par ligne 8 octets ... Dans ce cas, on tombe plus ou moins bien sur la somme de 8 + 16 + 16 + 16 + 8 = 64 bits = 8 octets ...

    Je suis un peu perdu ...

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 285
    Points : 139
    Points
    139
    Par défaut
    Bon on va le dire : je suis un !

    Je pensais qu'un uniqueidentifier était stocké sur 16 bits ... en fait, il semble que ce soit 16 octets ... mon chiffre devient presque normale pour la première table ...

    16 + 16 + 8 = 40 + 4 d'entête = 44 octets ... on est plus proche des 50 ...


    Maintenant, reste à comprendre pourquoi une table beaucoup plus grosse semble être en rapport plus petits !

    Désolé !

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

Discussions similaires

  1. [SQL2K] delete cascade d'une table sur elle même
    Par StormimOn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/04/2006, 16h28
  2. Réponses: 12
    Dernier message: 20/12/2005, 10h54
  3. [Access 2000] Taille des tables
    Par Marco_SAP dans le forum Access
    Réponses: 15
    Dernier message: 08/09/2005, 16h00
  4. Taille des Tables InnoDB
    Par Mehdi Feki dans le forum Outils
    Réponses: 2
    Dernier message: 29/08/2005, 10h21
  5. SQL 2000 - Liste + taille des tables et index
    Par Fox dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/03/2004, 15h59

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