Oracle manuellement la mise à jour des statistiques sur tous les tableaux
Est-il un moyen de mettre à jour toutes les statistiques de tous les tableaux, quel que soit le propriétaire?
J'ai trouvé ce sniplet, mais je ne suis pas sûr si cela va saisir toutes les tables....
BEGIN
FOR A IN ( SELECT owner FROM SYS.all_tables ) LOOP
execute immediate
EXEC dbms_stats.gather_schema_stats( 'A.owner', cascade='TRUE');
END LOOP;
END;
SELECT DISTINCT propriétaire DE SYS.all_tables
OriginalL'auteur Tom | 2013-05-05
Vous devez vous connecter pour publier un commentaire.
exec DBMS_STATS.GATHER_DATABASE_STATS;
Ma réponse était à la fois une fonction et un lien. J'ai ajouté une
exec
et;
pour le rendre plus clair.Et comme prévu, le lien est rompu.
Merci pour la fixation du lien! Semble comme Oracle rompt les liens de leur documentation toutes les quelques années, je vais avoir besoin de vérifier un grand nombre de mes autres réponses.
OriginalL'auteur Jon Heller
Pas de la
DBMS_STATS
groupe peut faire un schéma à la fois.Vous pouvez utiliser le script ci-dessous pour recueillir des statistiques pour tous les types d'objets dans tous les schémas. L'un de vous dans la liste a un couple de questions (inutile exécution immédiate, `A. le propriétaire " est une chaîne de caractères, mais il devrait être un objet, etc).
Vous pouvez ajouter d'autres schémas de sauter dans le
IN
liste que vous ne voulez probablement pas à le faire pour les construit dans les schémas (ils sont principalement statique de toute façon, de sorte qu'il serait déchets). Aussi, vous aurez besoin d'avoir les privilèges appropriés pour chaque schéma, vous êtes la collecte de statistiques sur l' (ou d'être connecté en tant qu'administrateur de base de données).Recueillir des statistiques sur tous les objets (probablement ce que vous voulez vraiment):
Recueillir des statistiques sur les tables:
OriginalL'auteur sehrope