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

Administration SQL Server Discussion :

Copie table avec tailles très différentes (mystère)


Sujet :

Administration SQL Server

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 26
    Points : 16
    Points
    16
    Par défaut Copie table avec tailles très différentes (mystère)
    Bonjour à tous,

    Je reviens vers vous car je constate un vraie mystère. Voilà ce que j'ai:
    - j'ai une table qui a 134856441 enregistrement et fait 7Go (compression=Page)

    J'ai recréer la table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CREATE TABLE ...
    alter table <MATABLE> REBUILD PARTITION = ALL WITH (DATA_COMPRESSION =  Page)
    Puis injecté les données dedans, et up, la nouvelle table fait 34,7Go

    Déjà, j'ai fait une première analyse et voilà ce que je constate.
    - Select full scan sur la première table (7Go): l'utilisation CPU monte jusqu'à 90% et disque monte de 5% et la requête dure 10secondes
    - J'ai ré-exécute la même requête sur la nouvelle tables (34,7Go): l'utilisation CPU monte vers 5% et l'utilisation disque 15% et la requête dure 1m30

    la requête est du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select datepart(year, <col_date>), count(*) ... group by datepart(year, <col_date>)
    lorsque je re-compresse la nouvelle table, sa taille redevient 7Go et elle se comporte exactement comme la toute première (l'originale).

    Alors là, si quelqu'un peut m'explique ce qui c'est passé ? est-ce que la compression avant insertion ne s'applique pas aux nouvelles données injecté?

    Par avance merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Points : 674
    Points
    674
    Par défaut
    Bonjour,

    Petite question avez vous recopié les index(s) de la table aussi ?

    La compression est effective qu'après l'avoir activé sur votre nouvelle table, ce qui explique qu'après l'activation vous soyez arrivé a un comportement similaire (passage de 34 go a 7 go et temps d'execution similaire) ...

    Avez vous analysé le plan d'exec ?

    Pour l'usage du CPU : Avez vous beaucoup de données similaires dans vos tables ?

    Si oui la compression est approprié et fait gagné du temps a vos recherches ...

    Voici une explication (en anglais) :

    https://www.mssqltips.com/sqlservert...in-sql-server/

    Bonne lecture
    MCSA SQL SERVER |MCT | MVP Data Platform

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Merci bien à toi julien94320,

    Les deux tables n'ont pas encore d'index

    Et pour la compression, je l'ai activer dès la création de la table destination, on voit bien dans la propriété de la table qu'elle est compresser de type Page, mais je ne sais pas si c'est vraiment le cas ou pas (en réalité).

    Il y a pas mal de données similaire dans la table

    Je vais bien lire ton article, merci bien à toi

    a+

  4. #4
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Ah, le comportement de sql server sur les tables compresser (l'utilisation de CPU) et bien clair maintenant

    Très bon article Julien, merci

Discussions similaires

  1. Comment lire deux fois la meme table avec une clé différente
    Par Denis_67 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 09/12/2013, 12h25
  2. Export de plusieurs tables avec des query différents
    Par debdba dans le forum Import/Export
    Réponses: 8
    Dernier message: 24/05/2012, 12h22
  3. union de 2 tables avec des colonnes différentes
    Par belgariel dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/06/2010, 15h53
  4. Chargement d'une table avec de très nombreux champs
    Par Davou dans le forum Débuter
    Réponses: 4
    Dernier message: 04/07/2007, 16h59
  5. [Requête] Union de 2 tables avec des colonnes différentes
    Par ceuce dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/05/2007, 18h04

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