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 :

Base de données qui n'arrête pas d'augmenter malgré l'espace libre


Sujet :

Administration SQL Server

  1. #21
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    Oui c'est restitué en millisecondes par le script. Lorsqu'on récupère les données d'un fichier de trace la durée est un microsecondes (d'où la division par mille dans le script).

    Dans ton cas 237s correspondrait à peu près à 4min30 ... ca paraît beaucoup mais pas impossible vu de loin. C'est un fichier de log ou de données et la taille de l'autogrow dans ton cas ?

    A+

  2. #22
    Membre expérimenté
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Points : 1 736
    Points
    1 736
    Par défaut
    Je ne retrouve pas mon exemple, mais j'en ai un autre.

    336000

    log : 1118MB et autogrowth par 100 MB.

    Pourtant, IFI est activé sur tous mes serveurs. Mais je ne sais plus si après il fallait un reboot quand je le mettais.
    Ce que nous avons fait pour nous-même meurt avec nous, ce que nous avons fait pour les autres et le monde est immortel. Albert Pike

    http://www.datacrossroad.be

  3. #23
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    Citation Envoyé par janlouk Voir le message
    Je ne retrouve pas mon exemple, mais j'en ai un autre.

    336000

    log : 1118MB et autogrowth par 100 MB.

    Pourtant, IFI est activé sur tous mes serveurs. Mais je ne sais plus si après il fallait un reboot quand je le mettais.
    336 secondes donc ? Et ca te fait ca pour une base en particulier ou tu as d'autres exemples ?

    Pour IFI, cela ne concerne que les fichiers de données et pas le JT.

    ++

  4. #24
    Membre expérimenté
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Points : 1 736
    Points
    1 736
    Par défaut
    Un exemple, pour la même DB (en mode FULL), résultat pour le log :

    Data : 6476 MB : Autogrowth 250 MB
    Log : 325 MB

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    103000	2016-01-11 06:11:48.763	2016-01-11 06:11:48.867
    103000	2016-01-11 06:11:46.397	2016-01-11 06:11:46.500
    76000	2016-01-11 06:11:43.727	2016-01-11 06:11:43.803
    116000	2016-01-11 06:11:40.690	2016-01-11 06:11:40.807
    103000	2016-01-11 06:11:37.867	2016-01-11 06:11:37.970
    93000	2016-01-11 06:11:34.783	2016-01-11 06:11:34.877
    113000	2016-01-11 06:11:31.657	2016-01-11 06:11:31.770
    103000	2016-01-11 06:11:28.387	2016-01-11 06:11:28.490
    Je ne comprends pas comment et pourquoi, la durée pour le premier est de 103 secondes. Mais que si on regarde le début et la fin, c'est 104 millisecondes ?

    Car je suis pas fou, l'affichage c'est Année-Mois-Jour Heure-Minute-Seconde-Milliseconde non ?
    Ce que nous avons fait pour nous-même meurt avec nous, ce que nous avons fait pour les autres et le monde est immortel. Albert Pike

    http://www.datacrossroad.be

  5. #25
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    Si tu prends duration brut alors ca ferait 103000/1000 = 103ms

    Possible que la confusion vienne des scripts utilisés:

    --> Dans le script que j'ai posté la durée est en us:

    DECLARE @path NVARCHAR(260);

    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
    SELECT 
       @path = REVERSE(SUBSTRING(REVERSE([path]), 
       CHARINDEX('\', REVERSE([path])), 260)) + N'log.trc'
    FROM    sys.traces
    WHERE   is_default = 1;
     
    SELECT 
       DatabaseName,
       [FileName],
       SPID,
       Duration,
       StartTime,
       EndTime,
       FileType = CASE EventClass 
           WHEN 92 THEN 'Data'
           WHEN 93 THEN 'Log'
       END
    FROM sys.fn_trace_gettable(@path, DEFAULT)
    WHERE
       EventClass IN (92,93)
    ORDER BY
       StartTime DESC;

    en revanche, dans le script que tu as posté la durée est en ms

    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
    25
    26
    27
    28
    29
    30
    DECLARE @path NVARCHAR(1000)
    SELECT @path = Substring(PATH, 1, Len(PATH) - Charindex('\', Reverse(PATH))) +
                          '\log.trc'
    FROM   sys.traces
    WHERE  id = 1
    SELECT databasename,
           e.name   AS eventname,
           cat.name AS [CategoryName],
           starttime,
           e.category_id,
           loginname,
           loginsid,
           spid,
           hostname,
           applicationname,
           servername,
           textdata,
           objectname,
           eventclass,
           eventsubclass,
              (IntegerData*8.0/1024) as ChangeInSizeMb,
              Duration/1000 as DurationInMs
    FROM   ::fn_trace_gettable(@path, 0)
           INNER JOIN sys.trace_events e
             ON eventclass = trace_event_id
           INNER JOIN sys.trace_categories AS cat
             ON e.category_id = cat.category_id
    WHERE  e.name IN( 'Data File Auto Grow', 'Log File Auto Grow' )
    ORDER  BY starttime DESC
    Lequel as-tu utilisé?

    ++

  6. #26
    Membre expérimenté
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Points : 1 736
    Points
    1 736
    Par défaut
    Le tien

    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
    25
    26
    27
    28
    DECLARE @path NVARCHAR(260);
     
    SELECT 
       @path = REVERSE(SUBSTRING(REVERSE([path]), 
       CHARINDEX('\', REVERSE([path])), 260)) + N'log.trc'
    FROM    sys.traces
    WHERE   is_default = 1;
     
    SELECT 
       DatabaseName,
       [FileName],
       SPID,
       Duration,
       StartTime,
       EndTime,
       FileType = CASE EventClass 
           WHEN 92 THEN 'Data'
           WHEN 93 THEN 'Log'
       END,
       ApplicationName,
       HostName,
       LoginName
    FROM sys.fn_trace_gettable(@path, DEFAULT)
    WHERE
       EventClass IN (92,93)
    ORDER BY
       FileType,DatabaseName,StartTime DESC
    GO
    Ce que nous avons fait pour nous-même meurt avec nous, ce que nous avons fait pour les autres et le monde est immortel. Albert Pike

    http://www.datacrossroad.be

  7. #27
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    Alors dans ce cas la durée est en us. La division par mille donne donc bien le résultat escompté

    ++

  8. #28
    Membre expérimenté
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Points : 1 736
    Points
    1 736
    Par défaut
    Bon, alors je comprends encore moins

    Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    93000	2016-01-11 06:11:34.783	2016-01-11 06:11:34.877
    Si 93000 millisecondes = 93 secondes.

    Que 2016-01-11 06:11:34.783 = 2016(Année)-01(Mois)-11(Jour) 06(Heure)-11(Minute)-34(Seconde)-783(Milliseconde)

    Ne devrais-je pas avoir plutot : 2016-01-11 06:11:34.783 2016-01-11 06:13:07.783 ?

    Donc 93 secondes en plus de l'heure du début ?

    Car là quand je lis les chiffres, moi je comprends que cela a durée 93 millisecondes et pas 93000 milliseconde ou 93 secondes

    Pfff c'est peut-être parce que c'est lundi matin

    Sorry, mais je ne connais pas dans ce cas-ci, la différence pour le formatage US, c'est surement pour ça.
    Ce que nous avons fait pour nous-même meurt avec nous, ce que nous avons fait pour les autres et le monde est immortel. Albert Pike

    http://www.datacrossroad.be

  9. #29
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    Dans l'hypothèse où tu utilises ma version de script alors la durée est en us donc 93000 / 1000 = 93ms

    Si je prends ta ligne :

    2016-01-11 06:11:34.783 2016-01-11 06:11:34.877 --> 877 - 783 = 94ms

    Est-ce que cela te semble correct ?

    ++

  10. #30
    Membre expérimenté
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Points : 1 736
    Points
    1 736
    Par défaut
    Maintenant oui, mais pour moi ça faisait 93000 millisecondes = 93 secondes.

    Donc quand mes fichiers augmentent, c'est heureusement super rapide et pas avec des durées de 4 minutes comme je le pensais.

    Mais je vais quand même investiguer en profondeur et essayer de réduire les augmentations.
    Ce que nous avons fait pour nous-même meurt avec nous, ce que nous avons fait pour les autres et le monde est immortel. Albert Pike

    http://www.datacrossroad.be

  11. #31
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Pourquoi voulez vous faire un SHRINK une base qui n'a que 3/4 giga de libre?
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  12. #32
    Membre expérimenté
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Points : 1 736
    Points
    1 736
    Par défaut
    Citation Envoyé par iberserk Voir le message
    Pourquoi voulez vous faire un SHRINK une base qui n'a que 3/4 giga de libre?
    En fait, il ne veut pas faire de shrink pour 4GB, mais après le purge, soit quand il y aura 70 GB de libre si je l'ai bien compris.
    Ce que nous avons fait pour nous-même meurt avec nous, ce que nous avons fait pour les autres et le monde est immortel. Albert Pike

    http://www.datacrossroad.be

Discussions similaires

  1. Accès base de données qui marche pas
    Par Hole_geek dans le forum JSF
    Réponses: 6
    Dernier message: 26/06/2012, 17h21
  2. [MySQL] Script php avec insertion dans base de données qui s'arrête tout seul
    Par tofito dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 04/12/2008, 22h39
  3. Réponses: 4
    Dernier message: 08/03/2007, 22h00
  4. Ma base de données Oracle ne démarre pas.
    Par hery233 dans le forum Oracle
    Réponses: 4
    Dernier message: 20/11/2006, 15h46
  5. [MySQL] Ajout de données qui ne fonctionne pas
    Par paterson dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 01/05/2006, 21h28

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