Description
Chaque fois que vous exécutez un outil de géotraitement, des informations sur l'outil et ses paramètres sont enregistrées. Ces informations sont appelées historique du géotraitement. Chaque outil de géotraitement qui génère de nouvelles données de sortie ou met à jour les données d'entrée ajoute des métadonnées sur son exécution. Celles-ci comprennent le nom de l'outil, son emplacement et les paramètres utilisés.
Dans un environnement de production, les outils de géotraitement et divers scripts Python sont souvent exécutés quotidiennement (par exemple, compression et analyse). Il en résulte qu'après quelques années, les métadonnées peuvent croître très fortement (entre 30 et 100 Mo environ). Des métadonnées aussi volumineuses ont généralement un impact négatif sur les performances globales de la base de données. Cet article décrit ce que vous pouvez faire pour résoudre ce problème et le contourner à l'avenir.
Désactiver la journalisation des métadonnées
Les outils de géotraitement Esri insèrent les métadonnées par défaut dans les géodatabases Enterprise. Ce comportement peut être désactivé dans ArcGIS Desktop et ArcGIS Pro, ainsi que dans tout script Python.
Python
Pour les outils de script et les scripts autonomes (scripts exécutés en dehors d'une application ArcGIS), vous pouvez activer ou désactiver la journalisation de l'historique à l'aide de la fonction SetLogHistory. Nous recommandons de désactiver la journalisation chaque fois que cela est possible et en particulier pour les scripts de compression et d'analyse :
arcpy.SetLogHistory(false)
ArcGIS Desktop et ArcGIS Pro
Dans ArcCatalog ou ArcMap, le comportement de journalisation peut être désactivé en décochant l'option de journalisation (Logging) dans la boîte de dialogue Géotraitement > Options de géotraitement (dans l'exemple anglais : Geoprocessing > Geoprocessing Options).
Dans ArcGIS Pro, le comportement de la journalisation peut être désactivé en décochant l'option Consigner les opération de géotraitement dans les métadonnées du jeu de données dans Project > Options > Géotraitement.
Supprimer les journaux de métadonnées existants
Nous recommandons de supprimer les métadonnées via un script Python. Il existe des scripts Python aussi bien pour ArcMap que pour ArcGIS Pro. Nous recommandons, dans la mesure du possible, d'effectuer le nettoyage avec ArcGIS Pro. Vous trouverez un script correspondant au bas de cet article.
Astuce : Il peut y avoir plusieurs installations de Python sur un système. Pour s'assurer que la bonne installation est utilisée, nous recommandons d'appeler explicitement le python.exe de la version concernée et de passer le script Python en paramètre. Exemple pour ArcGIS 10.8.x:
|
Les métadonnées et leur impact sur les performances du système
Des métadonnées volumineuses influencent entre autres les processus suivants :
- Accès à la base de données via ArcCatalog ou ArcMap.
- Impression de WebOffice
- Redémarrage de l'application WebOffice
- Démarrage des projets GEONIS et des MXD.
Quels sont les clients concernés par ce problème ?
- Tous les clients qui utilisent les géodatabases ArcGIS Enterprise (Oracle, SQL Server, PostgreSQL).
Pour vérifier à quel point on est concerné par ce problème, on peut interroger la taille des métadonnées. La requête SQL suivante permet de vérifier l'espace de travail et la classe de fonction Taille des métadonnées :
MS SQL Server
SELECT TOP 20 datalength(documentation) as length, name
from <database>.sde|dbo.GDB_ITEMS
order by length DESC
Oracle
SELECT Length(Documentation) laenge, name
FROM sde.GDB_ITEMS_vw
where documentation is not null
and rownum <= 20
ORDER BY laenge DESC;
PostgreSQL
select length(xmlserialize(Content utde.sde.gdb_items.documentation as varchar)) as length, name
from utde.sde.gdb_items
where documentation is not null
order by length desc
limit 20;
Exemple de résultat (SQL Server) :
Dans cet exemple, Length correspond à environ 60 millions d'octets (60 Mo).
ArcCatalog a mis environ 38 secondes pour ouvrir cette connexion à la base de données. Après la suppression des journaux de métadonnées, la connexion a pu être établie en quelques secondes. Les gains de performance peuvent varier considérablement en fonction de l'environnement et du système de base de données.
Sources
How To: Delete geoprocessing history from a geodatabase in ArcMap using Python
How To: Delete geoprocessing history from a geodatabase in ArcGIS Pro using Python
FAQ: Why is the connection slow to a SQL Server geodatabase?
Commentaires
0 commentaire
Cet article n'accepte pas de commentaires.