Quels sont les moyens de planifier automatiquement des "tables d'analyse". Est-il possible de demander une "analyse des tables" automatique quand beaucoup de données changent par insertion et suppression? Quels sont les moyens de paramétrer le processus d'analyse automatique des tables, c'est-à-dire de définir les règles quand elles doivent être déclenchées.Tables de réglage/analyse Oracle
Répondre
« Est-il possible d'avoir ce travail étant déclenché quand il y a une proportion importante de données a changé " En théorie, vous pouvez faire un déclencheur AFTER INSERT sur une table qui déclenche automatiquement DBMS_STATS.
Mais faites attention à ce que vous souhaitez. Si vous êtes au milieu d'un gros travail ETL, après avoir inséré un million de lignes dans la table, vous ne voulez pas forcément désactiver immédiatement un travail DBMS_STATS. De même, lorsque vous êtes à la période de traitement en ligne la plus occupée (par exemple, le déjeuner), vous ne voulez pas le ralentir en recueillant des statistiques en même temps.
Vous souhaitez généralement que ces statistiques collectent des tâches en période de faible utilisation (nuits, week-ends). Si vous avez un grand nombre de tâches qui se chargent dans beaucoup de tables, je construirais DBMS_STATS dans le lot. Savez-vous comment programmer le travail en effectuant cette analyse?
Quelle version d'Oracle utilisez-vous? À partir de 10.1, Oracle a livré un travail automatique qui recueille des statistiques tous les soirs sur tout objet qui a été modifié substantiellement (basé sur un algorithme interne sujet à changement, mais je crois que le seuil est ~ 15%). recueillies. En supposant que vous utilisez une version actuellement prise en charge, les statistiques sont automatiquement collectées par défaut, à moins que vous ne désactiviez explicitement ce travail.
Vous pouvez utiliser le package DBMS_STATS
pour recueillir des statistiques sur un objet basé sur un événement et vous pouvez utiliser le package DBMS_JOB
(ou DBMS_SCHEDULER
) d'avoir ce fait de manière asynchrone. Ainsi, à la fin d'un processus ETL, vous pouvez recueillir des statistiques
BEGIN
dbms_stats.gather_table_stats(
ownname => <<schema name>>,
tabname => <<table name>>
);
END;
Vous pouvez avoir cette exécuter de manière asynchrone
DECLARE
l_jobno INTEGER;
BEGIN
dbms_job.submit(
l_jobno,
'BEGIN dbms_stats.gather_table_stats(''<<schema name>>'', ''<<table name>>''); END;',
sysdate + interval '1' minute
);
END;
- 1. /tables Masquage de verrouillage dans oracle
- 2. Exportation de plusieurs tables sur Oracle
- 3. SQL Server/Oracle: tables temporaires privées
- 4. Exporter des tables MySQL vers Oracle DB
- 5. Comment voir les tables Oracle importées
- 6. Rechercher dans toutes les tables Oracle DB
- 7. Oracle tables temporaires globales - nombre maximal d'enregistrements?
- 8. Formulaire Oracle APEX basé sur plusieurs tables
- 9. Tables externes Oracle: disposition de fichier plat avancée
- 10. Oracle - différence ou changements entre deux lignes de deux tables
- 11. Comment joindre les résultats de deux tables dans Oracle 10
- 12. Oracle tables imbriquées et les noms de colonnes
- 13. Charger deux tables liées dans une base de données Oracle
- 14. Suppression de toutes les tables/séquences utilisateur dans Oracle
- 15. Mise à jour de plusieurs tables dans Oracle
- 16. Configurer Oracle Text pour indexer les valeurs de plusieurs colonnes dans les tables Oracle
- 17. Efficacité de performance dans les tables temporaires globales par rapport aux tables normales - oracle 10g
- 18. Partitionnement des tables Oracle utilisées pour la journalisation
- 19. Comment comparer deux tables colonne par colonne dans Oracle
- 20. Synchronisation des données entre deux tables Oracle db
- 21. Oracle SQL Loader divisé les données en différentes tables
- 22. Oracle DB n'autorise pas les utilisateurs à interroger les tables
- 23. Oracle - Avoir des clés étrangères dans plusieurs tables
- 24. Optimiser une requête oracle liée à 4 tables
- 25. Oracle Query Tuning (accès aux tables en double)
- 26. ORACLE: pouvons-nous créer des tables temporaires globales ou des tables dans proc stocké?
- 27. Oracle Procédure pour joindre deux tables avec le dernier état
- 28. Comment faire une requête dans Oracle 10g sur plusieurs tables?
- 29. Partitionnement Oracle
- 30. Oracle requête de jointure
Existe-t-il un moyen de déclencher ce travail lorsqu'il y a une proportion substantielle de données modifiées, c'est-à-dire non basées sur un calendrier mais basées sur des événements? – paweloque
J'ai mis à jour la réponse pour inclure un exemple simple de planification d'un travail pour analyser une table. –