Projet SQL Tools WPF : I/O Activité
Bon je continue dans ma série ” Malette Renault du parfait petit consultant itinérant ”
Je viens de finir l’écran présentant l’activité globale des bases de données :
Depuis le dernier démmarrage de SQL SERVER, je récupère le nombre de Mo qu’a généré en Read et en Write la base de données, puis le nombre total de Reads et le nombre total de Writes :
Voici en substance le script utilisé :
Declare @OneMo float = cast ((1024 * 1024) as float);
SELECT vfs.sample_ms as EllapsedTimeMs
, db_name(vfs.database_id) as DatabaseName
, vfs.database_id
, sum(vfs.num_of_bytes_read / @OneMo) as [ReadsMo]
, sum(vfs.num_of_reads) as [Reads]
, sum(vfs.num_of_bytes_written / @OneMo) as [WritesMo]
, sum(vfs.num_of_writes) as [Writes]
, sum(vfs.num_of_bytes_read + num_of_bytes_written) / @OneMo as [TotalIoMo]
, sum(vfs.num_of_writes + num_of_reads) as [TotalIo]
From sys.dm_io_virtual_file_stats(null, null) vfs
Where vfs.file_id <> (Select mf.file_id from sys.master_files mf where mf.type = 1 and mf.database_id = vfs.database_id)
And vfs.database_id > 4
Group by vfs.sample_ms, vfs.database_id
Order By DatabaseName asc
En en couleur, ça donne ça :
On peut voir par exemple que la première base génère pas mal de trafic : 750 Mo de Reads pour 206 Mo de Writes.
Ce qui est remarquable c’est qu’il y a peu de Reads en comparaison des Writes : 3577 Reads pour 22255 Writes
On peut donc conclure que les Select qui sont fait sont peu nombreux mais ramènent un volume de données important à contrario des opérations CUD (Create Update Delete) qui eux génèrent bcp de trafics sur peu de volume de données.
D’une manière générale, ça c’est bien ! Les opérations CUD doivent toujours être rapides, pour éviter au maximum les Locks…
Pour la deuxième base : Peu de Writes, Beaucoup de Reads : Normal, c’est mon blog et quelques internautes égarés viennent (beaucoup :)) lire, alors que je fais en comparaison, peu d’opérations CUD !
Enfin, pour la dernière base, on peut remarquer qu’il n’y a que des Reads, pratiquement pas de Writes : Normal c’est base de données est en lecture seulement (sauf exception)
Ah tiens, allons quand même vérifier comment est réparti la taille des fichiers sur cette dernière :
Ah, peu d’espace libre sur le seul FileGroup PRIMARY : Normal, pour une base de données où seul des récupérations de données sont faites ;)
Voilà une bonne analyse non ?
Stay Tuned !