Stats sur les tables les plus utilisées
Bonjour,
Je souhaite faire des stats sur l'utilisation de ma db.
Je souhaite savoir quelles sont les tables les plus lues (SELECT) par les utilisateurs, je suis plus intéressé par une tendance que par un chiffre exact.
Point important , je souhaite pouvoir exclure certains users de ces statistiques. Idéalement exclure les schemas qui ne m'intéressent pas.
J'ai trouvé une requête qui permet d'avoir de telles stats mais je ne peux faire intervenir la notion de user dedans.
La voici :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| SELECT
OBJECT_SCHEMA_NAME(s.object_id) as nom_schema
,object_name(s.object_id) as nom_table
,SUM(user_seeks + user_scans + user_lookups) as lectures
,SUM(user_updates) as ecritures
FROM sys.dm_db_index_usage_stats AS s
INNER JOIN sys.indexes AS i ON s.object_id = i.object_id AND i.index_id = s.index_id
WHERE
objectproperty(s.object_id,'IsUserTable') = 1
/*Database ciblée*/
AND s.database_id = db_id('maDatabase')
/*Exclusion schemas*/
AND OBJECT_SCHEMA_NAME(s.object_id) NOT IN ('staging','log')
GROUP BY OBJECT_SCHEMA_NAME(s.object_id),object_name(s.object_id)
ORDER BY lectures DESC |
Une idée ? Un moyen de grouper par utilisateur? J'imagine que ce n'est pas possible avec cette query...
Merci d'avance ,
Vinc