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 reconstruir los índices según para que la herramienta se ejecute.
- El botón Agregar valor del parámetro Datasets para reconstruir los índices según se utiliza solo 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 (Opcional) | 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'