Comment puis-je obtenir le nombre d'insertions, mises à jour présentes dans une base de données Oracle?
Comment puis-je obtenir le nombre total d'insertions/mises à jour qui ont eu lieu dans une base de données Oracle sur une période de temps?
- Êtes-vous autorisé à utiliser le AWR tables?
- Êtes-vous inquiet sur l'ensemble de la base de données ou un tableau spécifique?
- oui , @j0rd4n : ensemble de la base de données
- OK. Quelle est votre définition du nombre total d'insertions et mises à jour. Si j'ai une seule instruction INSERT insère 10 lignes à chaque fois qu'il est exécuté et est 20 fois dans un intervalle de temps, le nombre d'insertions ont eu lieu? 1 déclaration? 20 exécutions? Ou 200 lignes?
- Justin : pas sûr, donc, il y a un moyen d'obtenir toutes les 3 cas que vous avez mentionné??
- Justin : je dirais nombre de lignes sur le reste...
Vous devez vous connecter pour publier un commentaire.
En supposant que vous avez configuré AWR pour conserver les données pour toutes les instructions SQL (la valeur par défaut est de ne conserver dans le top 30 du PROCESSEUR, le temps écoulé, etc. si le
STATISTICS_LEVEL
est "TYPIQUE" et le top 100 si leSTATISTICS_LEVEL
est 'ALL') par l'intermédiaire de quelque chose commeet en supposant que les instructions SQL n'est pas en âge de le cache avant un instantané de leur capture, vous pouvez utiliser l'AWR tables pour certains de cela.
Vous pouvez recueillir le nombre de fois qu'une instruction INSERT a été exécuté et le nombre de fois qu'une instruction de mise à JOUR a été exécuté
Noter que ces requêtes comprennent à la fois les déclarations que vos problèmes d'application et les déclarations que l'Oracle des questions en arrière-plan. Vous pouvez ajouter des critères supplémentaires si vous souhaitez filtrer certains SQL.
De même, vous pourriez obtenir le nombre total de distinctes INSÉRER et mettre à JOUR les déclarations
Oracle n'est pas, cependant, de suivre le nombre de lignes qui ont été insérées ou mises à jour dans un intervalle donné. Donc vous ne serez pas en mesure d'obtenir cette information à partir de AWR. Le plus proche que vous pourriez obtenir à essayer de tirer parti de la surveillance de l'Oracle n'afin de déterminer si les statistiques sont obsolètes. En supposant que
MONITORING
est activé pour chaque table (il est par défaut en 11g et je crois que c'est par défaut dans 10g), c'est à direOracle rincer régulièrement le nombre approximatif de lignes insérées, mises à jour et supprimées pour chaque table de la
SYS.DBA_TAB_MODIFICATIONS
table. Mais cela ne fera que montrer l'activité étant donné que les statistiques ont été recueillies sur une table, et non pas l'activité dans un intervalle particulier. Vous pouvez, cependant, essayer d'écrire un processus qui régulièrement capturé ces données sur votre propre table, et des rapports qu'.Si vous demandez à Oracle pour rincer le suivi de l'information de la mémoire à disque (sinon il y a un décalage de plusieurs heures)
vous pouvez obtenir un nombre approximatif du nombre de lignes qui ont été modifiées dans chaque tableau étant donné que les statistiques ont été réunis