Analyser les jeux de données (Gestion des données)
Récapitulatif
Met à jour les statistiques de base de données des tables de base, tables delta et tables d'archive, ainsi que les statistiques sur les index de ces tables. Cet outil est utilisé dans les géodatabases d'entreprise pour aider à optimiser les performances de l'optimiseur de requête du SGBDR. Des statistiques obsolètes peuvent appauvrir les performances de la géodatabase.
Utilisation
- L’espace de travail en entrée doit être au moins une géodatabase d'entreprise. Analyze Datasets ne fonctionne pas avec les géodatabases fichier ou personnelle.
- Après les opérations de chargement, suppression, mise à jour et compression de données, il est important de mettre à jour les statistiques de SGBDR dans les bases de données Oracle, SQL Server, DB2, PostgreSQL ou Informix.
- L'option Inclure les tables système permet de déterminer si les états et tables de généalogie des états sont analysées. Lorsque l'option est désélectionnée, ces tables ne sont pas analysées ; si elle est sélectionnée, les tables sont analysées.
- Lorsque vous utilisez des tables ou des jeux de données, cet outil met à jour les statistiques des tables de base, delta et d'archives, ainsi que les statistiques sur les index de ces tables.
- Le bouton Ajouter une valeur du paramètre Jeux de données à analyser 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 Jeux de données à analyser. Le bouton Ajouter une valeur vous permet d'ajouter des valeurs attendues afin de poursuivre la construction du modèle.
Syntaxe
Paramètre | Explication | Type de données |
input_database |
Géodatabase d'entreprise contenant les données à analyser. | Workspace |
include_system | Indique si les statistiques seront rassemblées sur les états et tables de généalogies des états. Remarque : Vous devez être l'administrateur de la géodatabase pour activer cette option. 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 qui seront analysés. Un jeu de données individuel ou une liste Python de jeux de données est autorisé€. 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. Notez que l'utilisateur connecté doit être le propriétaire de données pour les jeux de données fournis. | String |
analyze_base (Facultatif) | Indique si les tables de base de jeux de données sélectionnées seront analysées. 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 |
analyze_delta (Facultatif) | Indique si les tables delta de jeux de données sélectionnées seront analysées. 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 |
analyze_archive (Facultatif) | Indique si les tables d'archives de jeux de données sélectionnées seront analysées. 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
Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil Analyze Datasets en mode immédiat.
# Import system modules
import arcpy
arcpy.AnalyzeDatasets_management("Database Connections/tenone@sde.sde",
"SYSTEM",
"gdb.city;gdb.state;map.lines",
"ANALYZE_BASE",
"ANALYZE_DELTA",
"ANALYZE_ARCHIVE")
Le script autonome suivant montre comment utiliser l'outil Analyze Datasets pour analyser tous les jeux de données pour une connexion utilisateur donné.
# Name: AnalyzeDatasets.py
# Description: analyzes all datasets in an enterprise geodatabase
# for a given user.
# Import system modules
import arcpy, os
# set workspace
# the user in this workspace must be the owner of the data to analyze.
workspace = arcpy.GetParameterAsText(0)
# set the workspace environment
arcpy.env.workspace = workspace
# NOTE: Analyze Datasets 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 analyze datasets
# Note: to use the "SYSTEM" option the workspace user must be an administrator.
arcpy.AnalyzeDatasets_management(workspace, "NO_SYSTEM", dataList, "ANALYZE_BASE","ANALYZE_DELTA","ANALYZE_ARCHIVE")
print "Analyze Complete"