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 :

Task State : Suspended ? [2005]


Sujet :

Administration SQL Server

  1. #1
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut Task State : Suspended ?
    Hello,

    Aujourd'hui, je dois faire un delete dans une table contenant des transactions caisses (car il avait des erreurs dans la DB de notre maison mère) pour pouvoir réimporter les données corrigées.

    Si j'ai bien pu faire un "backup" des données erronées dans une autres tables via une requête SELECT...INTO...FROM...WHERE... qui a pris 2 secondes à s'exécuter, lorsque j'execute la requête DELETE, elle s'exécute "sans fin" (jusqu'à présent).

    Par curiosité, je vais voir dans l'activity monitor de SSMS et là, je constate que mon process est en état SUSPENDED. N'y connaissant rien du tout à tout cela, j'ignore ce que je dois faire. J'ai bien été voir ce que signifiait le wait type PAGEIOLATCH_EX mais c'est du chinois pour moi :-/

    Que puis-je faire pour débloquer cette situation ???
    Kropernic

  2. #2
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Bonjour,

    Votre requête attend qu'un verrou soit relâché (sur la table ou sur l'index). Assurez-vous que personne n'a de transaction ouverte sur cet(te) table(index).

    Cordialement,

    Arkhena
    A bove ante, ab asino retro, a stulto undique caveto

  3. #3
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Ah, les verrous... Première fois que j'ai ce genre de problème...

    Et je me rends compte aussi que j'ai oublié de mettre la pièce jointe dans mon message d'ouverture. Je la mets donc ici.

    Comment puis-je détecter "où se trouve" le verrou afin de dévérouiller ?

    EDIT : Etes-vous certain qu'il s'agit d'un problème de verrou ? Car d'après l'activity monitor, je suis le seul avec un process sur la DB concernée... Ou bien les verrous restent-ils même une fois le process terminé ? Je navigue complètement dans le noir
    Images attachées Images attachées  
    Kropernic

  4. #4
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Oups effectivement, j'avais complètement obturé le PAGEIOLATCH...

    Dans ce cas-là, la tâche est en attente d'IO. Votre base tempdb est-elle sur le même disque physique que votre base Tickets ?

    La doc sql server indique qu'il est possible que votre disque soit défectueux :
    Long waits may indicate problems with the disk subsystem.
    (cf http://msdn.microsoft.com/en-us/libr...aspx#WaitTypes)

    Rapprochez vous de l'équipe d'infrastructure, de stockage ou système si l'une d'elle existe ou regardez les compteurs Avg. Disk Sec/Read et Avg. Disk Sec/Write.
    • Inférieur à 10 ms -> très bon
    • Entre 10 et 20 ms -> OK
    • Entre 20 et 50 ms -> Lent
    • Plus de 50 ms -> Gros problèmes


    Si vos valeurs sont bonnes, il faudra envisager de séparer les fichiers de log des fichiers de données sur des disques distincts et également séparer la base tempdb des autres.

    Cordialement,

    Arkhena
    A bove ante, ab asino retro, a stulto undique caveto

  5. #5
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par Arkhena Voir le message
    Oups effectivement, j'avais complètement obturé le PAGEIOLATCH...

    Dans ce cas-là, la tâche est en attente d'IO. Votre base tempdb est-elle sur le même disque physique que votre base Tickets ?
    Non, la base tempdb est sur le disque C (disque où a été installé SQL SERVER) et la db est sur le disque D (et le log et les indexes sur le disque F)

    Citation Envoyé par Arkhena Voir le message
    La doc sql server indique qu'il est possible que votre disque soit défectueux :
    (cf http://msdn.microsoft.com/en-us/libr...aspx#WaitTypes)

    Rapprochez vous de l'équipe d'infrastructure, de stockage ou système si l'une d'elle existe ou regardez les compteurs Avg. Disk Sec/Read et Avg. Disk Sec/Write.
    • Inférieur à 10 ms -> très bon
    • Entre 10 et 20 ms -> OK
    • Entre 20 et 50 ms -> Lent
    • Plus de 50 ms -> Gros problèmes
    Où trouver ces compteurs ?

    Citation Envoyé par Arkhena Voir le message
    Si vos valeurs sont bonnes, il faudra envisager de séparer les fichiers de log des fichiers de données sur des disques distincts et également séparer la base tempdb des autres.
    C'est déjà fait mis à part index et log qui sont sur le même disque (faute de place suffisante sur le serveur parait-il)
    Kropernic

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 741
    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 : 21 741
    Points : 52 454
    Points
    52 454
    Billets dans le blog
    5
    Par défaut
    C, D et F sont-ils des disques PHYSIQUEMENT distincts ? ou bien des partitions ???

    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/ * * * * *

  7. #7
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    De ce que j'en sais, ce sont des disques physiquement distincts mais je me renseigne !!!
    Kropernic

  8. #8
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Je parle bien de disques physiques différents, non de disques logiques. Edit : Les messages se sont croisés

    On peut trouver les compteurs de performances dans le moniteur des performances quise trouve là : %systemroot%\system32\Perfmon.exe.
    A bove ante, ab asino retro, a stulto undique caveto

  9. #9
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Il a mis le temps mais il a fini par s'exécuter...

    Je ne laisse pas tomber pour autant, je vais tacher de trouver les compteurs avec perfmon et je reviens vous dire quoi !!!

    Etre DBA sans avoir la formation qui va avec, ce n'est décidément pas de tout repos ^^
    Kropernic

  10. #10
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    J'ai bien trouvé perfmon.exe et découvre l'utilitaire.

    Je sens que je vais encore apprendre plein de trucs passionnant !

    Sur quel disque dois-je vérifier le compteur ?

    J'imagine tous tant qu'à faire... J'imagine aussi qu'il faut que le serveur soit en train de faire quelque chose (ça tombe bien, j'ai l'importation des nouvelles données à faire...)

    Suis-je sur le bon chemin ?
    Kropernic

  11. #11
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Citation Envoyé par Kropernic Voir le message
    Etre DBA sans avoir la formation qui va avec, ce n'est décidément pas de tout repos ^^
    Oui, c'est vrai que c'est un métier.

    Par contre, il faut vraiment choisir sa formation avec précautions car il m'est arrivé (et c'est arrivé à plusieurs de mes collègues) de passer 1 semaine en formation et de n'y avoir rien appris...
    A bove ante, ab asino retro, a stulto undique caveto

  12. #12
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Citation Envoyé par Kropernic Voir le message
    J'ai bien trouvé perfmon.exe et découvre l'utilitaire.

    Je sens que je vais encore apprendre plein de trucs passionnant !

    Sur quel disque dois-je vérifier le compteur ?

    J'imagine tous tant qu'à faire... J'imagine aussi qu'il faut que le serveur soit en train de faire quelque chose (ça tombe bien, j'ai l'importation des nouvelles données à faire...)

    Suis-je sur le bon chemin ?
    Dans un premier temps, je mettrai les compteurs sur le disque sur lequel se trouve la base qui pose problème (a priori Tickets).

    Et oui, il vaut mieux regarder quand il fait quelque chose.
    A bove ante, ab asino retro, a stulto undique caveto

  13. #13
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par Arkhena Voir le message
    Oui, c'est vrai que c'est un métier.

    Par contre, il faut vraiment choisir sa formation avec précautions car il m'est arrivé (et c'est arrivé à plusieurs de mes collègues) de passer 1 semaine en formation et de n'y avoir rien appris...
    A ce niveau-là, j'ai demandé un devis de formation à sqlpro que j'ai soigneusement déposé sur le bureau de mon chef pour quand il reviendra de congé lundi prochain ^^. Je pense qu'une formation venant de quelqu'un avec un niveau tel que celui de sqlpro ne peut être qu'enrichissante
    Kropernic

  14. #14
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 741
    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 : 21 741
    Points : 52 454
    Points
    52 454
    Billets dans le blog
    5
    Par défaut
    ça dépend des jours.... ! J'ai des ragnagnas comme tout le monde !!! ;-)

    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/ * * * * *

  15. #15
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    ça dépend des jours.... ! J'ai des ragnagnas comme tout le monde !!! ;-)
    Moi qui croyais que c'était réservé aux filles!
    A bove ante, ab asino retro, a stulto undique caveto

  16. #16
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Voilà un print screen des compteurs pendant l'important des nouvelles données.

    C'est grave docteur ?

    N.B. : C'est donc apparemment le disque F qui a des fameux pics. Mais vu qu'il y a les logs et les indexes, ça parait logique...

    P.S. : Je dois encore me renseigner si ce sont des disques logiques ou physiques. Je sais que physiquement, il y a une chiée de disque car tout est en raid mais est-ce qu'il faut un controlleur raid par disque ? Ce genre de détail m'échappe complètement...

    EDIT : Ajout d'un second print screen du perfmon pris quelques minutes après la fin du processus d'importation des nouvelles données.
    Images attachées Images attachées   
    Kropernic

  17. #17
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Voilà plus d'info sur les disques :

    Si j'ai compris, il y a un controlleur raid avec 3 disques logiques qui sont eux constitués de plusieurs disques physiques.

    Voir la pièce jointe pour plus de détails.

    Du coup, les disques C, D et F sont-ils logiques ou physiques ? Perso, je ne sais pas quoi répondre vu que c'est un mélange des deux j'ai l'impression
    Images attachées Images attachées  
    Kropernic

  18. #18
    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
    Il faudrait avoir la correspondante logique et physique de ton stockage et des partitions.

    Est-ce que tu peux nous donner un aperçu de tes attentes SQL :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    use master
    GO
    declare @lastrestart datetime
    select @lastrestart =create_date from sys.databases where database_id=2
    select @lastrestart 'Date Dernier Redémarrage' ,DATEDIFF(dd, @lastrestart, GETDATE()) 'Uptime'
    GO
     
    WITH Waits AS
        (SELECT
            wait_type,
            wait_time_ms / 1000.0 AS WaitS,
            (wait_time_ms - signal_wait_time_ms) / 1000.0 AS ResourceS,
            signal_wait_time_ms / 1000.0 AS SignalS,
            waiting_tasks_count AS WaitCount,
            100.0 * wait_time_ms / SUM (wait_time_ms) OVER() AS Percentage,
            ROW_NUMBER() OVER(ORDER BY wait_time_ms DESC) AS RowNum
        FROM sys.dm_os_wait_stats
        WHERE wait_type NOT IN (
            'CLR_SEMAPHORE', 'LAZYWRITER_SLEEP', 'RESOURCE_QUEUE', 'SLEEP_TASK',
            'SLEEP_SYSTEMTASK', 'SQLTRACE_BUFFER_FLUSH', 'WAITFOR', 'LOGMGR_QUEUE',
            'CHECKPOINT_QUEUE', 'REQUEST_FOR_DEADLOCK_SEARCH', 'XE_TIMER_EVENT', 'BROKER_TO_FLUSH',
            'BROKER_TASK_STOP', 'CLR_MANUAL_EVENT', 'CLR_AUTO_EVENT', 'DISPATCHER_QUEUE_SEMAPHORE',
            'FT_IFTS_SCHEDULER_IDLE_WAIT', 'XE_DISPATCHER_WAIT', 'XE_DISPATCHER_JOIN', 'BROKER_EVENTHANDLER',
            'TRACEWRITE', 'FT_IFTSHC_MUTEX', 'SQLTRACE_INCREMENTAL_FLUSH_SLEEP',
            'BROKER_RECEIVE_WAITFOR', 'ONDEMAND_TASK_QUEUE', 'DBMIRROR_EVENTS_QUEUE',
            'DBMIRRORING_CMD', 'BROKER_TRANSMITTER', 'SQLTRACE_WAIT_ENTRIES',
            'SLEEP_BPOOL_FLUSH', 'SQLTRACE_LOCK')
        )
    SELECT
        W1.wait_type AS WaitType,
        CAST (W1.WaitS AS DECIMAL(14, 2)) AS Wait_S,
        CAST (W1.ResourceS AS DECIMAL(14, 2)) AS Resource_S,
        CAST (W1.SignalS AS DECIMAL(14, 2)) AS Signal_S,
        W1.WaitCount AS WaitCount,
        CAST (W1.Percentage AS DECIMAL(4, 2)) AS Percentage,
        CAST ((W1.WaitS / W1.WaitCount) AS DECIMAL (14, 4)) AS AvgWait_S,
        CAST ((W1.ResourceS / W1.WaitCount) AS DECIMAL (14, 4)) AS AvgRes_S,
        CAST ((W1.SignalS / W1.WaitCount) AS DECIMAL (14, 4)) AS AvgSig_S
    FROM Waits AS W1
        INNER JOIN Waits AS W2 ON W2.RowNum <= W1.RowNum
    GROUP BY W1.RowNum, W1.wait_type, W1.WaitS, W1.ResourceS, W1.SignalS, W1.WaitCount, W1.Percentage
    HAVING SUM (W2.Percentage) - W1.Percentage < 95; -- percentage threshold
    GO
    ++

  19. #19
    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
    Il faudrait aussi avoir la ddl de ta table + les index qui existent sur cette table + éventuellement le plan d'exécution estimé de ton DELETE.

    ....

    et également des statistiques IO des fichiers de bases de données :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    WITH io_file_stats 
    AS 
    ( 
        SELECT 
            d.name AS database_name, 
            f.name AS [file_name], 
            f.physical_name, 
            f.type_desc, 
            vf.num_of_reads, 
            vf.num_of_writes, 
            CAST(vf.num_of_bytes_read * 1. / (vf.num_of_reads + 1) / 1024 AS DECIMAL(18,2)) AS avg_kbytes_read, 
            CAST(vf.io_stall_read_ms * 1. / (vf.num_of_reads + 1) AS DECIMAL(18,2)) AS avg_stall_read_ms, 
            CAST(vf.num_of_bytes_written * 1. / (vf.num_of_writes + 1) / 1024  AS DECIMAL(18,2)) AS avg_kbytes_written, 
            CAST(vf.io_stall_write_ms * 1. / (vf.num_of_writes + 1) AS DECIMAL(18,2)) AS avg_stall_write_ms, 
            CAST(vf.num_of_reads * 1. / SUM(num_of_reads + 1) OVER() * 100 AS DECIMAL(5,2)) AS percent_reads, 
            CAST(vf.num_of_writes * 1. / SUM(num_of_writes + 1) OVER() *100 AS DECIMAL(5,2)) AS percent_writes 
        FROM sys.dm_io_virtual_file_stats(NULL, NULL) AS vf 
        INNER JOIN sys.databases AS d 
        ON d.database_id = vf.database_id 
        INNER JOIN sys.master_files AS f 
        ON f.file_id = vf.file_id 
         AND f.database_id = vf.database_id 
    ), 
    io_file_stats_rank 
    AS 
    ( 
    SELECT 
        *, 
        RANK() OVER (ORDER BY avg_kbytes_read DESC) AS rank_avg_kbytes_reads, 
        RANK() OVER (ORDER BY avg_stall_read_ms DESC) AS rank_avg_stall_read_ms, 
        RANK() OVER (ORDER BY avg_kbytes_written DESC) AS rank_avg_kbytes_written, 
        RANK() OVER (ORDER BY avg_stall_write_ms DESC) AS rank_avg_stall_write_ms, 
        RANK() OVER (ORDER BY percent_reads DESC) AS rank_percent_reads, 
        RANK() OVER (ORDER BY percent_writes DESC) AS rank_percent_writes 
    FROM io_file_stats 
    ) 
    SELECT 
        database_name, 
        [file_name], 
        physical_name, 
        type_desc, 
        num_of_reads, 
        num_of_writes, 
        avg_kbytes_read, 
        avg_stall_read_ms, 
        avg_kbytes_written, 
        avg_stall_write_ms, 
        CAST(percent_reads AS VARCHAR(5)) + ' %' AS percent_reads, 
        CAST(percent_writes AS VARCHAR(5)) + ' %' AS percent_writes
    FROM io_file_stats_rank 
    -- Choix du classement = 
    -- rank_avg_kbytes_reads 
    -- rank_avg_stall_read_ms 
    -- rank_avg_kbytes_written 
    -- rank_avg_stall_write_ms 
    -- rank_percent_reads 
    -- rank_percent_writes 
    --ORDER BY rank_percent_reads;
    ++

  20. #20
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Les disques sont en RAID quoi ? RAID5 ? RAID10 ?

    Je suppose que la baie de disque est partagée et est utilisée par d'autres bases de données et/ou applications... Il faudrait des stats d'écriture et de lecture directement sur la baie pour avoir le global et non pas seulement les écritures et lectures de cette machine...
    A bove ante, ab asino retro, a stulto undique caveto

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Task State Segment : champ limit
    Par FOX19881 dans le forum Programmation d'OS
    Réponses: 9
    Dernier message: 25/10/2010, 15h04
  2. [Threads] suspend and resume
    Par el3gans dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 19/09/2005, 21h56
  3. ActiveX et Appartement State initialisation
    Par roberto1 dans le forum MFC
    Réponses: 2
    Dernier message: 05/04/2005, 14h06
  4. Réponses: 4
    Dernier message: 14/01/2005, 20h41
  5. [State Event] Eléments Initial & Entry point
    Par Emerica dans le forum Autres Diagrammes
    Réponses: 2
    Dernier message: 12/11/2004, 15h50

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