Bonjour,
Je vous explique ma problématique de DBA qui découvre.
Sur un serveur sybase donné (sous 11.9), j'obtiens un rapport quotidien de volumétrie de mes bases et tables. Concernant mes tables, j'ai un top des grosses tables avec le % d'espace non utilisé.
Sur les tables avec un gros % d'espace non utilisé, je voudrais lancer une défragmentation soit par reorg rebuild soit par un drop/create index selon si la table est en lock datarow ou allpages suivi ensuite d'un update statistics et exec sp_recompile.
Pourriez-vous dans un premier temps me confirmer que j'agis correctement ?
Ensuite le truc c'est que je voudrais lancer avant et après défragmentation une requête benchmark sur la table afin de voir les effets de temps de réponse obtenus.
Je ponds donc une requête consommatrice :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 declare @date varchar(255) select @date = convert(varchar,getdate(),108) print @date select col1, col2, col3, max(col4) from TABALE group by col1, col2, col3 select @date = convert(varchar,getdate(),108) print @date
Le problème c'est que si je lance deux fois de suite la requête, la seconde fois ça ira méga vite car elle a été mise en cache.
Comment puis-je vider de façon probante le cache pour répéter les mêmes temps d'attente (sachant que je ne puis redémarrer le serveur ou alors le week-end mais vous comprendrez que je ne suis pas tenté) ?
Ceci afin qu'après une défragmentation la différence de temps provienne uniquement de cette défragmentation ?
Par ailleurs si vous voulez créer une requête benchmark sur une table uniquement, quelle serait votre requête ? Tester un group by est-ce un bon axe ?
Je vous remercie de votre aide.
Partager