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 :

Compression de données + shrinkfile


Sujet :

Administration SQL Server

  1. #1
    Membre émérite

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 817
    Billets dans le blog
    2
    Par défaut Compression de données + shrinkfile
    Bonjour a tous
    Dans le but de gérer bien mes espaces disques je viens d'activer la compression du donné de type page sur un de mon gros table , suivi par une opération de suppression massive du données après j'ai fait une opération d'organisation d'index afin d'assurer une bonne défragmentation d'index
    ces opérations sont fait avec sucés ensuite j'ai procéder a faire un shrinkfile avec l'option truncatonly tout ça dans le but de récupérer plus d'espace ,j'était surpris que l'opération est fini et j'ai pas gagner même un 1MB malgré que je peuvent gagner plus de 10GO
    comment dans ce cas je doit procéder surtout qu'il faut récupérer plus d'espace ???
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Il vaut mieux passer par un SHRINKFILE dans ce cas et pas un SHRINKDATABASE comme stipulé sur l'image.

    ++

  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
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    SHRINK ne récupère que les pages vides.

    Tant que vous n'avez pas procédé à une défragmentation logique de vos index et tables, les espaces morts sont disséminés dans les pages. Or comme le SHRINK supprime des pages, cela n'a pratiquement aucun effet.

    Commencez donc par défragmenter tous vos index par un ALTER INDEX REBUILD ou bien ALTER TABLE REBUILD.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre émérite

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 817
    Billets dans le blog
    2
    Par défaut
    merci pour vos réponse et vos conseil

    sur le même piste j'ai une deuxième question ,j'ai appliquer la stratégie du compression de donné sur une de mes bases (compression du page + colonne) tout a était passer mais après j'ai eu une réclamation du production sur

    une dégradation de performance, en analysant le serveur j'ai remarquer une augmentation de consommation du CPU (voir imprime écran ) j'ai utiliser ce script pour mesurer la cons somation du CPU par Database

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    ;WITH 
     
      DB_CPU_STAT AS 
      ( 
        SELECT    D.database_id 
            , D.name AS database_name 
            , SUM(total_worker_time) / 1000 AS total_CPU_time_ms 
        FROM    sys.dm_exec_query_stats AS QS 
        CROSS APPLY  ( 
              SELECT  CONVERT(int, value) AS database_id  
              FROM  sys.dm_exec_plan_attributes(QS.plan_handle) 
              WHERE  attribute = N'dbid' 
            ) AS DB 
        INNER JOIN  sys.databases AS D 
              ON DB.database_id = D.database_id 
        GROUP BY  D.database_id, D.name 
      ) 
    SELECT  database_name 
      , total_CPU_time_ms / 1000 AS total_CPU_time_s 
      , CAST(total_CPU_time_ms * 1.0 / SUM(total_CPU_time_ms) OVER() * 100.0 AS decimal(5, 2)) AS [CPU_%] 
    FROM  DB_CPU_STAT 
    WHERE  database_id > 4 -- system databases 
    AND  database_id <> 32767 -- ResourceDB 
    ORDER  BY total_CPU_time_ms DESC
    j'était surpris que seul la base ligne6(ou j'ai appliquer la stratégie du compression ) consomme 33% du ressource CPU

    Alors comment je peuvent mesurer le besoin en ressource CPU sur ce serveur si je veux appliquer cette stratégie sur tout mes bases (11 bases)

    autre point exit'il une méthode pour retour en arriéré ??

    merci
    Images attachées Images attachées   

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    En matière informatique rien n'est gratuit ! Si vous compressez vos données vous allez gagner beaucoup sur les lectures par balayage (scan), très peu sur les lectures par recherche (seek) et perdre énormément sur toutes les écritures car il faut décompresser, modifier et recompresser chaque page avec génération quais systématique de nombreux "split" de page (dans une page pleine il n'est pas possible de rajouter de l'info, alors il faut créer une nouvelle page et déporter la moitié des lignes).

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre émérite

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 817
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    En matière informatique rien n'est gratuit ! Si vous compressez vos données vous allez gagner beaucoup sur les lectures par balayage (scan), très peu sur les lectures par recherche (seek) et perdre énormément sur toutes les écritures car il faut décompresser, modifier et recompresser chaque page avec génération quais systématique de nombreux "split" de page (dans une page pleine il n'est pas possible de rajouter de l'info, alors il faut créer une nouvelle page et déporter la moitié des lignes).

    A +
    bonjour

    malgré que j'ai fait un rebuild de mes indexes et l'opération a été fait avec sucé mais aucun gain avec le shrinkfile au contraire j'ai perdu plus d'espace
    Images attachées Images attachées  

  7. #7
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bis

    Il vaut mieux passer par un SHRINKFILE dans ce cas et pas un SHRINKDATABASE comme stipulé sur l'image.

    ++

  8. #8
    Membre émérite

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 817
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Bis

    Il vaut mieux passer par un SHRINKFILE dans ce cas et pas un SHRINKDATABASE comme stipulé sur l'image.

    ++
    mais j'ai fait un shrinkfile et non pas un shrinkdatabase comme c'est déjà mentionner

    l'imprime écran est juste pour vous monter la quantité d'espace qui peuvent être récupérer
    Images attachées Images attachées  

  9. #9
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Ok dans ce cas il faut que tu donnes des informations cohérentes .. tu fais un shrinkfile mais tu donnes l'espace libre globale par base de données.

    Donne nous l'espace utilisé par fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    USE ligne6;
    GO
     
    select 
    	name, 
    	type_desc,
    	size / 128 as size_mb,
    	cast(FILEPROPERTY(name, 'SpaceUsed') * 100. / size as decimal(15,2)) as percent_used,
    	cast((1 - (FILEPROPERTY(name, 'SpaceUsed') * 1. / size)) * 100 as decimal(15,2)) as percent_free
    from sys.database_files
    ++

  10. #10
    Membre émérite

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 817
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Ok dans ce cas il faut que tu donnes des informations cohérentes .. tu fais un shrinkfile mais tu donnes l'espace libre globale par base de données.

    Donne nous l'espace utilisé par fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    USE ligne6;
    GO
     
    select 
    	name, 
    	type_desc,
    	size / 128 as size_mb,
    	cast(FILEPROPERTY(name, 'SpaceUsed') * 100. / size as decimal(15,2)) as percent_used,
    	cast((1 - (FILEPROPERTY(name, 'SpaceUsed') * 1. / size)) * 100 as decimal(15,2)) as percent_free
    from sys.database_files
    ++
    Ci joint la résultat
    Images attachées Images attachées  

  11. #11
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Ok dans ton cas il faudrait essayer sans l'option TRUNCATEONLY car avec cette dernière si tu as une allocation faite à la fin du fichier tu ne pourras pas aller au delà.
    Essaye ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBCC SHRINKFILE(ligne6, 35160)
    Attention car l'opération peut prendre un peu de temps en fonction de ce que tu auras. Essaye de faire cela dans une période creuse d'activité

    ++

  12. #12
    Membre émérite

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 817
    Billets dans le blog
    2
    Par défaut
    Super l'espace a été bien récupérer merci bien

Discussions similaires

  1. [Algo] Compression de données
    Par GyZmoO dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 10/03/2007, 12h18
  2. Compresser les données avant insertion ?
    Par GregPeck dans le forum Outils
    Réponses: 2
    Dernier message: 07/08/2006, 16h09
  3. Compression de données
    Par mzt.insat dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 13/03/2005, 15h01
  4. Compression de données au format Zip avant sauvegarde
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/09/2004, 16h40
  5. compression de données du point de vue algorithmique
    Par GoldenEye dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 26/06/2002, 15h51

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