Reconstruir índices (Administración de datos)

Resumen

Reconstruir índices de atributos o índices espaciales de geodatabases corporativas. Los índices también se pueden reconstruir en las tablas del sistema de geodatabase state y state_lineage y en las tablas delta de datasets registrados para participar en el versionado tradicional. Los índices obsoletos pueden llevar a un mal rendimiento de las consultas.

Parámetros

EtiquetaExplicaciónTipo de datos
Conexión de la base de datos de entrada

Conexión (archivo .sde) a la base de datos o geodatabase que contiene los datos para los que desee regenerar los índices.

Workspace
Incluir las tablas del sistema

Indica si se volverán a generar los índices en los estados y en las tablas de linajes del estado.

Para que esta opción esté activada, es necesario conectarse como administrador de la geodatabase.

Esta opción solo se aplica a geodatabases. Si se conecta a una base de datos, esta opción estará desactivada.

  • No activado: no se volverán a generar índices en los estados y en la tabla de linajes del estado. Esta es la opción predeterminada.
  • Activado: los índices se volverán a generar en los estados y en las tablas de linajes del estado.
Boolean
Datasets para la reconstrucción de índices para
(Opcional)

Nombres de los datasets a los que se les volverán a generar los índices. Solo se visualizan los datasets que son propiedad del usuario conectado.

String
Reconstruir solo las tablas delta
(Opcional)

Indica si se desea volver a generar índices solo en las tablas delta de los datasets seleccionados. Esta opción no estará disponible si no hay datasets seleccionados en la lista de datasets de entrada.

Esta opción solo se aplica a geodatabases. Si se conecta a una base de datos, esta opción estará desactivada.

  • Activado: solamente se volverán a generar índices para las tablas delta de los datasets seleccionados. Esta opción se puede usar para casos donde las tablas de negocios para los datasets seleccionados no se actualizan a menudo y existe un volumen alto de ediciones en las tablas delta. Esta es la opción predeterminada.
  • No activado: se volverán a generar los índices en todos los índices de los datasets seleccionados. Esto incluye índices espaciales, así como índices de atributos creados por el usuario y cualquier índice mantenido por medio de una geodatabase para el dataset.
Boolean

Salida derivada

EtiquetaExplicaciónTipo de datos
Espacio de trabajo actualizado

El espacio de trabajo actualizado.

Espacio de trabajo

arcpy.management.RebuildIndexes(input_database, include_system, {in_datasets}, {delta_only})
NombreExplicaciónTipo de datos
input_database

Conexión (archivo .sde) a la base de datos o geodatabase que contiene los datos para los que desee regenerar los índices.

Workspace
include_system

Indica si se volverán a generar los índices en los estados y en las tablas de linajes del estado.

Nota:

Para que esta opción funcione correctamente, es necesario conectarse como administrador de la geodatabase en el archivo de conexión especificado para input_database.

Esta opción solo se aplica a geodatabases. Si se conecta a una base de datos, esta opción se ignora.

  • NO_SYSTEM No se volverán a generar índices en los estados y en la tabla de linajes del estado. Esta es la opción predeterminada.
  • SYSTEM Los índices se volverán a generar en los estados y en las tablas de linajes del estado.
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 input_database completas no se aceptan como entrada.

String
delta_only
(Opcional)

Indica cómo se volverán a generar los índices en los datasets seleccionados. Esta opción no tiene efecto si in_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.

  • ALLSe volverán a generar los índices en todos los índices de los datasets seleccionados. Esto incluye índices espaciales, así como índices de atributos creados por el usuario y cualquier índice mantenido por medio de una geodatabase para el dataset.
  • ONLY_DELTASSolamente se volverán a generar índices para las tablas delta de los datasets seleccionados. Esta opción se puede usar para casos donde las tablas de negocios para los datasets seleccionados no se actualizan a menudo y existe un volumen alto de ediciones en las tablas delta. Esta es la opción predeterminada.
Boolean

Salida derivada

NombreExplicaciónTipo de datos
out_workspace

El espacio de trabajo actualizado.

Espacio de trabajo

Muestra de código

Ejemplo 1 de RebuildIndexes (ventana de Python)

El siguiente ejemplo muestra cómo reconstruir los índices usando la ventana de Python.

# Import system modules
import arcpy

arcpy.RebuildIndexes_management("c:/Connections/GDB@DC@server.sde", "NO_SYSTEM","db1.GDB.Roads;db1.GDB.Parcels", "ALL")
Ejemplo 2 de RebuildIndexes (script independiente)

El siguiente ejemplo muestra cómo reconstruir los índices en un script 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')

Información de licenciamiento

  • Basic: No
  • Standard: Sí
  • Advanced: Sí

Temas relacionados