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 :

inside the data


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 19
    Points
    19
    Par défaut inside the data
    selon l'organisation de donné sur MS sql, on a des extends contenant 8 pages chacun, et que à travert les inserts, update, delete, il y'a des pages qui se vident dans des extends. cela conduit au fait qu'on peu avoir une base de donnée de taille M alors sa taille reel ne vaux que N.

    alors ma question est de savoir, comment peu on faire le dianostique de c'est pages vides. et quel est le(s) traitement(s) possible.

    merci d'avance

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    pour vérifier la fragmentation de tes tables, index, ..., tu as
    Tu as un article de TechNet sur le sujet : Microsoft SQL Server 2000 Index Defragmentation Best Practices

    Un code de défragmentation dans la FAQ : http://sqlserver.developpez.com/faq/?page=performance

    La défragmentation est une chose que tu peux automatiser dans un plan de maintenance.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  3. #3
    Invité
    Invité(e)
    Par défaut
    Un peut déjà t'aider à analyser le phénomène.
    Ensuite un rebuild du CLUSTERED INDEX peut remédier partiellement au problème.
    Enfin, tu peux aussi jouer sur le fillfactor des index.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par kuzco
    Un peut déjà t'aider à analyser le phénomène.
    Ensuite un rebuild du CLUSTERED INDEX peut remédier partiellement au problème.
    Enfin, tu peux aussi jouer sur le fillfactor des index.


    dbcc showcontig est la commande qui permet de voir l'état de fragmentation des index et non des données.

    dans ma question je parle bien des données et non des index

    merci

  5. #5
    Invité
    Invité(e)
    Par défaut
    Je crois qu'il n'est pas possible de jouer dessus.
    Les clustered index trient physiquement les lignes d'une table. En le reconstruisant, tu amélioreras cette "fragmentation".

  6. #6
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    si ton index est ordonné, ce sont les données. Le dernier niveau d'un index ordonné est physiquement l'enregistrement. En défragmentant l'index ordonné, tu défragmente tes données.

    Il est conseillé d'avoir un index ordonné sur toute table importante.

    EDIT : ah, pardon Cuzco, tu as déjà dis ça, j'avais pas bien lu.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par kuzco
    Je crois qu'il n'est pas possible de jouer dessus.
    Les clustered index trient physiquement les lignes d'une table. En le reconstruisant, tu amélioreras cette "fragmentation".

    ok je vous remercie

    mais est ce que un DBCC shrinkdatabase ne pourrait pas suprimer ou réaffecter ces pages vides

    merci encore

  8. #8
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    DBCC SHRINKDATABASE avec NOTRUNCATE ou sans, déplace les pages, mais ne les défragmente pas, il n'y a pas d'analyse logique de la table pour savoir où tes données doivent se trouver.

    Même si ça le faisait, comment organiser ces données en l'absence d'un index ordonné ? Mettre tous les extents qui comportent des pages d'une même table un peu ensemble, mais dans quel ordre ? Parce que si tu as une table de plusieurs millions de lignes, et que ton SELECT va devoir chercher la première et la dernière page de la table telle qu'elle a été posée en tas, c'est de ce point de vue, toujours un peu fragmenté...

    Donc il est conseillé d'avoir un index ordonné. Ensuite, pour défragmenter : DBCC DBREINDEX.

    Une façon de défragmenter sans index ordonné, c'est... d'en créer un, puis de le supprimer.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par foblar
    ok je vous remercie

    mais est ce que un DBCC shrinkdatabase ne pourrait pas suprimer ou réaffecter ces pages vides

    merci encore
    SHRINKDATABASE modifie la "fragmentation", sans que tu puisses la contrôler.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    merci à tous

  11. #11
    Invité
    Invité(e)
    Par défaut
    Pense au tag

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/11/2009, 15h11
  2. Length of the data to decrypt is invalid. Erreur
    Par tdk007 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/06/2008, 07h14
  3. Réponses: 2
    Dernier message: 27/05/2008, 08h42
  4. The data "null" is not legal for a JDOM attribute
    Par Smix007 dans le forum JDBC
    Réponses: 7
    Dernier message: 04/04/2008, 17h18
  5. Réponses: 1
    Dernier message: 12/11/2007, 15h48

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