Volver a generar los índices (Administración de datos)
Resumen
Actualiza índices de datases y tablas del sistema almacenadas en una geodatabase corporativa. Esta herramienta se usa en geodatabases corporativas para volver a genera un atributo existente o índices espaciales. Los índices obsoletos pueden llevar a un mal rendimiento de la geodatabase.
Uso
- Los datos deben ser de una geodatabase corporativa. Esta herramienta no funciona con las geodatabases personales o de archivo.
- Después de las operaciones de cargar, eliminar, actualizar y comprimir datos, es importante volver a generar los índices en la base de datos.
- Al trabajar con tablas o datasets, esta herramienta vuelve a generar los índices espaciales y de atributos de las tablas básicas, tablas delta y tablas de archivo.
- El parámetro Incluir Tablas del sistema se usa para determinar si a los estados y a las tablas de linaje de los estados se les volverán a generar los índices. Cuando se desactiva la opción, los índices en estas tablas no se vuelven a generar. Si el parámetro Incluir tablas del sistema no está activado, entonces se debe seleccionar al menos un dataset en el parámetro Datasets para los cuales se deben volver a generar los índices para que la herramienta se ejecute.
- El botón Agregar valor del parámetro Datasets para los cuales se deben volver a generar los índices se utiliza sólo en ModelBuilder. En ModelBuilder, donde no se ejecutó la herramienta anterior, o sus datos derivados no existen, es probable que el parámetro Datasets para los cuales se deben volver a generar los índices no se complete con valores. El botón Agregar valor le permite agregar valores esperados para poder completar el cuadro de diálogo y continuar construyendo el modelo.
Sintaxis
Parámetro | Explicación | Tipo de datos |
input_database |
La base de datos corporativa que contiene los datos que se actualizarán. | Workspace |
include_system |
Indica si se volverán a generar los índices en los estados y en las tablas de linajes del estado. Nota: Debe ser el administrador de la geodatabase para que esta opción se ejecute correctamente. Esta opción solo se aplica a geodatabases. Si el espacio de trabajo de entrada es una base de datos, esta opción se ignora.
| Boolean |
in_datasets [in_datasets,...] (Opcional) | Nombres de los datasets a los que se les volverán a generar los índices. Los nombres de los datasets usan rutas correspondientes al espacio de trabajo de entrada; las rutas completas no se aceptan como entrada. | Dataset |
delta_only | Indica cómo se volverán a generar los índices en los datasets seleccionados. Esta opción no tiene efecto si input_datasets está vacío. Esta opción solo se aplica a geodatabases. Si el espacio de trabajo de entrada es una base de datos, esta opción se ignora.
| Boolean |
Ejemplo de código
El siguiente ejemplo muestra cómo volver a generar los índices usando la ventana Python en ArcGIS.
# Import system modules
import arcpy
arcpy.RebuildIndexes_management("Database Connections/GDB@DC@server.sde", "NO_SYSTEM","db1.GDB.Roads;db1.GDB.Parcels", "ALL")
El siguiente ejemplo muestra cómo volver a generar los índices en una secuencia de comandos independiente.
# 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'