Disponible avec une licence Standard ou Advanced.
La base de données utilise des index pour identifier rapidement les lignes lorsqu’un client interroge la base de données. La plupart des tables système de géodatabase possèdent des index, mais les tables qui ont tendance à avoir la plus grande quantité de modifications dans une géodatabase d’entreprise utilisant le versionnement traditionnel et, par conséquent, qui nécessitent la recréation la plus fréquente des index sont les tables système sde_states, sde_state_lineages et sde_mvtables_modified. En tant qu’administrateur de géodatabase, vous pouvez recréer les index sur ces tables dans les géodatabases d’entreprise à l’aide de l’outil de géotraitement Recréer les index.
Dans une géodatabase fortement modifiée utilisant le versionnement traditionnel, vous pouvez mettre à jour pendant la nuit les index sur les tables sde_states, sde_state_lineages et sde_mvtables_modified. Pour cela, créez un script Python autonome qui appelle l’outil Rebuild Indexes (Recréer les index) et programmez-le pour l’exécuter avec les tâches planifiées de Microsoft Windows ou une tâche cron.
Utiliser l'outil Recréer les index
Pour recréer les index sur les tables système de géodatabase sde_states, sde_state_lineages et sde_mvtables_modified à l’aide de l’outil Rebuild Indexes (Recréer les index), procédez comme suit :
- Lancez ArcGIS Pro et connectez-vous à la géodatabase en tant qu’administrateur de géodatabase.
- Ouvrez l'outil de géotraitement Recréer les index.
Cet outil se trouve dans le jeu d'outils Geodatabase Administration de la boîte à outils Gestion des données.
- Utilisez la connexion que vous avez créée à l'étape 1 comme valeur de paramètre Input Database Connection (Connexion à la base de données en entrée).
- Cochez le paramètre Include System Tables (Inclure les tables du système).
- Décochez le paramètre Rebuild Delta Tables Only (Recréer les tables de deltas uniquement).
- Cliquez sur Run (Exécuter).
Planifier un script Python
Pour exécuter ce script, vous devez être en mesure de vous connecter à la géodatabase en tant qu'administrateur de géodatabase. Vous pouvez créer un fichier de connexion (.sde) et le spécifier dans le script ou saisir directement les informations de connexion dans le script. Ensuite, planifiez l’exécution du script à l’aide des tâches planifiées Microsoft Windows ou du démon cron Linux.
- Copiez un des scripts suivants vers un ordinateur Python sur lequel l’un des produits ArcGIS suivants est installé :
- ArcGIS Pro (Standard ou Advanced)
- ArcGIS Server
Modifiez les scripts avec les informations spécifiques à votre site.
Dans cet exemple, l’utilisateur SDE se connecte à une base de données PostgreSQL :
# Name: RSysIdxpg.py # Description: Rebuilds indexes on the sde_states, sde_state_lineages, # and sde_mv_tables_modified tables in an enterprise geodatabase # in PostgreSQL. # Import system modules import sys import arcpy import os # Provide connection information platform = POSTGRESQL instance = pg_cluster account_authentication = DATABASE_AUTH username = gdb_admin password = gdb_admin_password database = database_name # Set local variables if os.name.lower() == "nt": slashsyntax = "\\" if os.environ.get("TEMP") == None: temp = "c:\\temp" else: temp = os.environ.get("TEMP") else: slashsyntax = "/" if os.environ.get("TMP") == None: temp = "/usr/tmp" else: temp = os.environ.get("TMP") Connection_File_Name = temp + slashsyntax + "connection.sde" # Check for the .sde file and delete it if present if os.path.exists(Connection_File_Name): os.remove(Connection_File_Name) #Variable defined within the script; other variable options commented out at the end of the line saveUserInfo = "SAVE_USERNAME" #DO_NOT_SAVE_USERNAME print ("Creating Database Connection File...") # Create Database Connection File # Usage: out_folder_path, out_name, database_platform, instance, account_authentication, username, password, save_user_pass, database arcpy.CreateDatabaseConnectionFile_management(temp, "connection.sde", platform, instance, account_authentication, username, password, saveUserInfo, database) # Rebuild indexes on system tables arcpy.RebuildIndexes_management(Connection_File_Name, "SYSTEM", "", "ALL") print ("Rebuild Complete") - Après avoir modifié le script pour qu'il contienne les informations de connexion, planifiez le script pour qu'il s'exécute à une heure spécifique chaque nuit, en procédant de l’une des façons suivantes :
- Dans le Panneau de configuration Windows, ouvrez Tâches planifiées et utilisez l'Assistant pour ajouter une tâche planifiée. À l’invite du programme à exécuter, accédez au script Python que vous avez créé.
- Pour une installation ArcGIS Server sous Linux, créez un fichier texte de script qui contient les informations sur le jour et l’heure auxquels vous souhaitez exécuter le script, et chargez le fichier dans le script à l’aide du programme crontab.
Par exemple, les informations suivantes définissent le script Python (nommé rsysidxdb2.py) afin qu’il s’exécute chaque mercredi à 22 h 00 :
0 22 * * 3 /usr/bin/rsysidxdb2.py
Consultez le manuel Linux fourni avec votre installation Linux pour obtenir des informations sur l’utilisation de cron.
Vous avez un commentaire à formuler concernant cette rubrique ?