Effectuer la maintenance de base de données
Pour de meilleures performances, effectuez une activité de maintenance périodique sur les tables de grande taille en exécutant une commande telle que RUNSTATS.
La commande DB2® RUNSTATS met à jour dans le catalogue système les statistiques sur les caractéristiques d'une table et/ou d'index associés, ou les vues statistiques. Il est fortement recommandé d'utiliser la commande DB2® RUNSTATS pour collecter des statistiques en cours sur les tables et les index, en particulier, lorsque des activités de mise à jour significatives ont eu lieu ou que de nouveaux index ont été créés depuis la dernière fois où la commande RUNSTATS a été exécutée. Cette commande fournit à l'optimiseur les informations les plus précises permettant de déterminer le meilleur plan d'accès.
Exemple :
runstats on table DB2INST2.UA_CONTACTHISTORY and detailed indexes all
Prenons le cas d'une table susceptible de contenir une quantité de données très variable à un moment donné. Du fait de la volatilité ou de la possibilité de modification extrême de ce type de table, les statistiques collectées par RUNSTATS sont inexactes. Les statistiques sont collectées à un moment donné et reflètent seulement ce moment précis.
Si vous générez un plan d'accès qui utilise une table volatile, ce plan risque d'être peu performant. Par exemple, si les statistiques sont collectées lorsque la table volatile est vide, l'optimiseur aura tendance à favoriser un accès à la table volatile via une analyse de table plutôt qu'avec une analyse d'index.
Pour éviter ce type de problème, vous pouvez déclarer la table comme étant volatile en utilisant l'instruction ALTER TABLE. Si vous déclarez la table comme étant volatile, l'optimiseur préférera une analyse d'index à une analyse de table. Les plans d'accès qui utilisent des tables volatiles déclarées ne dépendent pas des statistiques existantes pour cette table.
"ALTER TABLE <table_name> VOLATILE CARDINALITY"