Recréer les index (Gestion des données)
Récapitulatif
Met à jour les index de jeux de données et de tables système stockés dans une géodatabase d'entreprise. Cet outil est utilisé dans des géodatabases d'entreprise pour recréer des index attributaires ou spatiaux existants. Les index obsolètes peuvent réduire les performances des géodatabases.
Utilisation
- Les données doivent provenir d'une géodatabase d'entreprise. Cet outil ne fonctionne pas avec les géodatabases fichier ou personnelle.
- Après des opérations de chargement, suppression, mise à jour et compression des données, il est important de récréer les index dans la base de données.
- Lors de l'utilisation de tables ou de jeux de données, cet outil récrée les index spatiaux et attributaires des tables de base, des tables delta et des tables d'archive.
- Le paramètre Include System Tables permet de déterminer si les états et tables de généalogies des états auront leurs index récréés. Lorsque l'option est désélectionnée, les index de ces tables ne sont pas recréés. Si le paramètre Include System Tables est désactivé, au moins un jeu de données doit être sélectionné dans le paramètre Datasets to Rebuild Indexes For pour que l'outil l'exécute.
- Le bouton Ajouter une valeur du paramètre Datasets to Rebuild Indexes For est utilisé uniquement dans ModelBuilder. Dans ModelBuilder, si l'outil précédent n'a pas été exécuté ou si ses données dérivées n'existent pas, il se peut qu'aucune valeur ne soit renseignée dans le paramètre Datasets to Rebuild Indexes For. Le bouton Ajouter une valeur vous permet d'ajouter des valeurs prévues pour terminer la boîte de dialogue et poursuivre la création du modèle.
Syntaxe
Paramètre | Explication | Type de données |
input_database |
Base de données d'entreprise contenant les données à mettre à jour. | Workspace |
include_system |
Indique si les index seront recréés sur les états et tables de généalogies des états. Remarque : Vous devez être l'administrateur de géodatabase pour que cette option s'exécute correctement. Cette option s'applique uniquement aux géodatabases. Si l'espace de travail en entrée est une base de données, cette option est ignorée.
| Boolean |
in_datasets [in_datasets,...] (Facultatif) | Noms des jeux de données dont les index sont recréés. Les noms des jeux de données utilisent des chemins d'accès relatifs à l'espace de travail en entrée ; les chemins complets ne sont pas acceptés en tant qu'entrée. | Dataset |
delta_only (Facultatif) | Indique la façon dont les index sont recréés sur les jeux de données sélectionnés. Cette option est sans effet si le champ input_datasets est vide. Cette option s'applique uniquement aux géodatabases. Si l'espace de travail en entrée est une base de données, cette option est ignorée.
| Boolean |
Exemple de code
L'exemple suivant montre comment recréer des index à l'aide d'une fenêtre Python dans ArcGIS.
# Import system modules
import arcpy
arcpy.RebuildIndexes_management("c:/Connections/GDB@DC@server.sde", "NO_SYSTEM","db1.GDB.Roads;db1.GDB.Parcels", "ALL")
L'exemple suivant montre comment recréer des index dans un script autonome.
# Name: RebuildIndexes.py
# Description: rebuilds indexes on delta tables for all datasets in an
# enterprise geodatabase
# Import system modules
import arcpy, os
# set workspace
workspace = arcpy.GetParameterAsText(0)
# set the workspace environment
arcpy.env.workspace = workspace
# NOTE: Rebuild indexes can accept a Python list of datasets.
# Get a list of all the datasets the user has access to.
# First, get all the stand alone tables, feature classes and rasters.
dataList = arcpy.ListTables() + arcpy.ListFeatureClasses() + arcpy.ListRasters()
# Next, for feature datasets get all of the datasets and featureclasses
# from the list and add them to the master list.
for dataset in arcpy.ListDatasets("", "Feature"):
arcpy.env.workspace = os.path.join(workspace,dataset)
dataList += arcpy.ListFeatureClasses() + arcpy.ListDatasets()
# reset the workspace
arcpy.env.workspace = workspace
# Get the user name for the workspace
userName = arcpy.Describe(workspace).connectionProperties.user.lower()
# remove any datasets that are not owned by the connected user.
userDataList = [ds for ds in dataList if ds.lower().find(".%s." % userName) > -1]
# Execute rebuild indexes
# Note: to use the "SYSTEM" option the workspace user must be an administrator.
arcpy.RebuildIndexes_management(workspace, "NO_SYSTEM", userDataList, "ALL")
print 'Rebuild Complete'