Disponible con una licencia Standard o Advanced.
La base de datos emplea índices para identificar rápidamente las filas cuando un cliente consulta la base de datos. La mayoría de las tablas del sistema de geodatabase tienen índices, pero las tablas que tienden a tener la mayor cantidad de cambios en una geodatabase corporativa que utiliza el versionado tradicional y, por lo tanto, requieren que los índices se vuelvan a generar con más frecuencia, son las tablas del sistema sde_states, sde_state_lineages y sde_mvtables_modified. Como administrador de la geodatabase, puede reconstruir los índices de estas tablas en geodatabases corporativas mediante el uso de la herramienta de geoprocesamiento Reconstruir índices.
En una geodatabase muy editada que utiliza el versionado tradicional, puede actualizar los índices en las tablas sde_states, sde_state_lineages y sde_mvtables_modified durante la noche. Para ello, cree un script de Python independiente que utilice la herramienta Reconstruir índices y prográmelo para ejecutarlo mediante Programadores de tareas de Microsoft Windows o un trabajo cron.
Utilizar la herramienta Reconstruir índices
Para reconstruir los índices en las tablas del sistema de geodatabase sde_states, sde_state_lineages y sde_mvtables_modified con la herramienta Reconstruir índices, siga estos pasos:
- Inicie ArcGIS Pro y conéctese a la geodatabase como administrador de la geodatabase.
- Abra la herramienta de geoprocesamiento Reconstruir índices.
Esta herramienta está en el conjunto de herramientas de la Administración de geodatabase, en la caja de herramientas de la Administración de datos.
- Use la conexión de la base de datos que creó en el paso 1 como valor del parámetro Conexión de base de datos de entrada.
- Active la casilla de verificación del parámetro Incluir tablas del sistema.
- Desactive el parámetro Reconstruir solo tablas delta.
- Haga clic en Ejecutar.
Programar un script de Python
Para ejecutar el script, debe habilitarlo para conectarse a la geodatabase como el administrador de la geodatabase. Puede crear un archivo de conexión (.sde) y especificarlo en el script o introducir la información de la conexión directamente en el script. A continuación, programe el script para que se ejecute mediante las tareas programadas de Microsoft Windows o el demonio cron de Linux.
- Copie uno de los siguientes scripts en un equipo en el que esté instalado Python y uno de los siguientes productos de ArcGIS:
- ArcGIS Pro (Standard o Advanced)
- ArcGIS Server
Altere la secuencia de comando con información específica para su sitio.
En este ejemplo, el usuario sde se conecta a una base de datos de PostgreSQL:
# Name: RSysIdxpg.py # Description: Rebuilds indexes on the sde_states, sde_state_lineages, # and sde_mv_tables_modified tables in an enterprise geodatabase # in PostgreSQL. # Import system modules import sys import arcpy import os # Provide connection information platform = POSTGRESQL instance = pg_cluster account_authentication = DATABASE_AUTH username = gdb_admin password = gdb_admin_password database = database_name # Set local variables if os.name.lower() == "nt": slashsyntax = "\\" if os.environ.get("TEMP") == None: temp = "c:\\temp" else: temp = os.environ.get("TEMP") else: slashsyntax = "/" if os.environ.get("TMP") == None: temp = "/usr/tmp" else: temp = os.environ.get("TMP") Connection_File_Name = temp + slashsyntax + "connection.sde" # Check for the .sde file and delete it if present if os.path.exists(Connection_File_Name): os.remove(Connection_File_Name) #Variable defined within the script; other variable options commented out at the end of the line saveUserInfo = "SAVE_USERNAME" #DO_NOT_SAVE_USERNAME print ("Creating Database Connection File...") # Create Database Connection File # Usage: out_folder_path, out_name, database_platform, instance, account_authentication, username, password, save_user_pass, database arcpy.CreateDatabaseConnectionFile_management(temp, "connection.sde", platform, instance, account_authentication, username, password, saveUserInfo, database) # Rebuild indexes on system tables arcpy.RebuildIndexes_management(Connection_File_Name, "SYSTEM", "", "ALL") print ("Rebuild Complete") - Después de que altere el script para que incluya la información de conexión, programe el script para que se ejecute a una hora específica cada noche realizando una de las siguientes acciones:
- En Windows, abra Tareas programadas en el Panel de control y utilice el asistente para agregar una tarea programada. Cuando se le solicite ejecutar el programa, busque el script Python que ha creado.
- Para una instalación de ArcGIS Server en Linux, cree un archivo de texto cron que incluya información sobre el día y la hora en que desea ejecutar el script y cárguelo en cron utilizando el programa crontab.
Por ejemplo, la información siguiente establece el script de Python (denominado rsysidxdb2.py) para que se ejecute cada miércoles a las 10:00 p.m.
0 22 * * 3 /usr/bin/rsysidxdb2.py
Vea las páginas Man de Linux que se proporcionan con la instalación de Linux para obtener información sobre cron.