Recréer les index des tables système

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 states, state_lineages et mv_tables_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 states, state_lineages et mv_tables_modified. Pour ce faire, créez un script Python autonome qui appelle l’outil Recréer les index et programmez-le pour l’exécuter avec les tâches planifiées de Windows ou un script planifié.

Utiliser l'outil Recréer les index

Pour recréer les index sur les tables système de géodatabase states, state_lineages et mv_tables_modified à l’aide de l’outil Recréer les index, procédez comme suit :

  1. Lancez ArcGIS Pro et connectez-vous à la géodatabase en tant qu’administrateur de géodatabase.
  2. 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.

  3. Utilisez la connexion que vous avez créée à l'étape 1 comme Connexion à la géodatabase en entrée.
  4. Cochez la case Inclure les tables du système.
  5. Décochez la case Recréer les tables de deltas uniquement.
  6. 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 pointer dessus à partir du 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.

  1. Copiez un des scripts suivants vers un ordinateur Python sur lequel l’un des produits ArcGIS suivants est installé :
    • ArcGIS Pro (Desktop Standard ou Desktop Advanced)
    • ArcGIS Desktop (Desktop Standard ou Desktop Advanced)
    • ArcGIS Engine avec l’extension Geodatabase Update
    • ArcGIS Server

    Modifiez les scripts avec les informations spécifiques à votre site.

    Ce script exemple contient les informations nécessaires pour se connecter à une base de données Oracle afin de mettre à jour les index sur les tables système states, state_lineages et mv_tables_modified.

    # Name: RSysIdxOracle.py
    # Description: Rebuilds indexes on the states, state_lineages,
    # and mv_tables_modified tables in an enterprise geodatabase
    # in Oracle.
    
    # Import system modules
    import sys
    import arcpy
    import os
    
    # Provide connection information
    platform = ORACLE
    instance = "myserver/orcl"
    account_authentication = OPERATING_SYSTEM_AUTH | DATABASE_AUTH
    #Leave username and password blank if using OPERATING_SYSTEM_AUTH
    username = gdb_admin
    password = gdb_admin_password
    
    
    # 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
    arcpy.CreateDatabaseConnectionFile_management(temp, "connection.sde", platform, instance, account_authentication, username, password, saveUserInfo)
    
    # Rebuild indexes on system tables
    arcpy.RebuildIndexes_management(Connection_File_Name, "SYSTEM", "", "ALL")
    print ("Rebuild Complete")
  2. Après avoir modifié le script pour qu'il contienne vos informations de connexion, planifiez le script pour qu'il s'exécute à une heure spécifique chaque nuit. Dans le Panneau de configuration, ouvrez Tâches planifiées et utilisez l'Assistant pour ajouter une tâche planifiée. À l’invite du programme à exécuter, accédez à votre script Python.