ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Ayuda
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plataforma de representación cartográfica para tu organización

ArcGIS Desktop

Un completo SIG profesional

ArcGIS Enterprise

SIG en tu empresa

ArcGIS for Developers

Herramientas para crear aplicaciones basadas en la ubicación

ArcGIS Solutions

Plantillas de aplicaciones y mapas gratuitas para tu sector

ArcGIS Marketplace

Obtén aplicaciones y datos para tu organización.

  • Documentación
  • Soporte
Esri
  • Iniciar sesión
user
  • Mi perfil
  • Cerrar sesión

Ayuda

  • Inicio
  • Introducción
  • Mapa
  • Analizar
  • Administrar datos
  • Herramientas
  • Más...

Reconstruir índices de tablas del sistema

Disponible con una licencia Standard o Advanced.

  • Utilizar la herramienta Reconstruir índices
  • Programar una secuencia de comandos de Python

La base de datos emplea índices para identificar rápidamente las filas que cumplen los criterios del filtro de predicado de una consulta. 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 con control de versiones y, por lo tanto, requieren que los índices se vuelvan a generar con más frecuencia, son las tablas del sistema states, state_lineages y mv_tables_modified. Como administrador de la geodatabase, puede reconstruir los índices de estas tablas en geodatabases de IBM DB2, Microsoft SQL Server, Oracle o PostgreSQL mediante el uso de la herramienta de geoprocesamiento Reconstruir índices.

En geodatabases versionadas con muchas ediciones, puede actualizar los índices de las tablas state, state_lineages y mv_tables_modified durante la noche. Para esto, cree una secuencia de comandos de Python independiente que utilice la herramienta Reconstruir índices y prográmela para ejecutarla mediante Programadores de tareas de Windows o un trabajo cron.

Sugerencia:

Los propietarios de los datos también pueden utilizar la herramienta Reconstruir Índices para reconstruir los índices espaciales y de atributos de sus datos. Consulte Configurar índices de dataset para obtener más información.

Utilizar la herramienta Reconstruir índices

Para reconstruir los índices de las tablas del sistema de geodatabase state, state_lineages y mv_tables_modified con la herramienta Reconstruir índices, realice lo siguiente:

  1. Inicie ArcMap o ArcCatalog y conéctese a la geodatabase como administrador de la geodatabase.
  2. Abra la herramienta de geoprocesamiento Reconstruir índices.

    Esta herramienta se puede encontrar en el conjunto de herramientas Administración de geodatabase de la caja de herramientas Administración de datos.

  3. Use la conexión que ha creado en el paso 1 como espacio de trabajo de entrada.
  4. Marque la casilla de verificación Tablas del sistema.
  5. Haga clic en el botón Aceptar para ejecutar la herramienta.

Programar una secuencia de comandos de Python

Para ejecutar la secuencia de comandos, debe habilitarla para conectarse a la geodatabase como el administrador de la geodatabase. Puede crear un archivo de conexión (.sde) e indicarlo en la secuencia de comandos o introducir la información de la conexión directamente en la secuencia de comandos. A continuación, programe la secuencia de comandos para ejecutarse mediante las Tareas programadas de Windows o el demonio cron de Linux.

  1. Copie una de las siguientes secuencias de comandos en una computadora en la cual esté instalado Phyton y uno de los siguientes clientes de ArcGIS:
    • ArcGIS for Desktop (Standardo Advanced)
    • ArcGIS Engine con la extensión Geodatabase Update
    • ArcGIS Runtime
    • ArcGIS for Server (Standard o Advanced)

    Altere la secuencia de comando con información específica para su sitio.

    Esta secuencia de comandos de muestra contiene la información necesaria para conectarse a una base de datos Oracle para actualizar los índices de las tablas del sistema states, state_lineages y mv_tables_modified:

    # Name: RSysIdxOracle.py
    # Description: Rebuilds indexes on the states, state_lineages,
    # and mv_tables_modified tables in an enterprise geodatabase
    # in Oracle.
    
    # Author: Esri
    
    # Import system modules
    import sys
    import arcpy
    import os
    
    # Provide connection information
    database_platform = Oracle
    instance = Oracle_instance
    account_authentication = OPERATING_SYSTEM_AUTH | DATABASE_AUTH
    #Leave username and password blank if using OPERATING_SYSTEM_AUTH
    username = gdb_admin_user_name
    password = gdb_admin_password
    version = sde.DEFAULT
    
    
    # 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
    saveVersionInfo = "SAVE_VERSION" #DO_NOT_SAVE_VERSION
    
    print "Creating database connection file..."
    # Usage: out_folder_path, out_name, database_platform, instance, account_authentication, username, password, saveUserInfo, version, saveVersionInfo
    arcpy.CreateDatabaseConnection_management(temp, "connection.sde", database_platform, instance, account_authentication, username, password, saveUserInfo, version, saveVersionInfo)
    
    # Rebuild indexes on system tables
    arcpy.RebuildIndexes_management(Connection_File_Name, "SYSTEM", "", "ALL")
    print 'Rebuild Complete'
    

    Esta secuencia de comandos de muestra contiene información para utilizar un usuario dbo autenticado del sistema operativo para conectarse a los índices de actualización y SQL Server en las tablas del sistema sde_states, sde_state_lineages y sde_mv_tables_modified:

    # Name: RSysIdxSqlServer.py
    # Description: Rebuilds indexes on the sde_states, sde_state_lineages,
    # and sde_mv_tables_modified tables in an enterprise geodatabase
    # in SQL Server.
    
    # Author: Esri
    
    # Import system modules
    import sys
    import arcpy
    import os
    
    # Provide connection information
    database_platform = SQL_Server
    instance = dbms_instance_name
    account_authentication = OPERATING_SYSTEM_AUTH | DATABASE_AUTH
    database = database_name
    #Leave username and password blank if using OPERATING_SYSTEM_AUTH
    username = gdb_admin_user_name
    password = gdb_admin_password
    version = sde.DEFAULT
    
    
    # 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
    saveVersionInfo = "SAVE_VERSION" #DO_NOT_SAVE_VERSION
    
    print "Creating database connection file..."
    # Usage: out_folder_path, out_name, database_platform, instance, account_authentication, username, password, saveUserInfo, database, version, saveVersionInfo
    arcpy.CreateDatabaseConnection_management(temp, "connection.sde",  instance, account_authentication, username, password, saveUserInfo, database, version, saveVersionInfo)
    
    # Rebuild indexes on system tables
    arcpy.RebuildIndexes_management(Connection_File_Name, "SYSTEM", "", "ALL")
    print 'Rebuild Complete'
    

    En este ejemplo, el usuario sde se conecta a la base de datos 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.
    
    # Author: Esri
    
    # Import system modules
    import sys
    import arcpy
    import os
    
    # Provide connection information
    database_platform = PostgreSQL
    instance = PostgreSQL_servername
    database = database_name
    account_authentication = DATABASE_AUTH
    username = gdb_admin_user_name
    password = gdb_admin_password
    version = sde.DEFAULT
    
    
    # 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
    saveVersionInfo = "SAVE_VERSION" #DO_NOT_SAVE_VERSION
    
    print "Creating database connection file..."
    # Usage: out_folder_path, out_name, database_platform, instance, account_authentication, username, password, saveUserInfo, database, version, saveVersionInfo
    arcpy.CreateDatabaseConnection_management(temp, "connection.sde",  instance, account_authentication, username, password, saveUserInfo, database, version, saveVersionInfo)
    
    # Rebuild indexes on system tables
    arcpy.RebuildIndexes_management(Connection_File_Name, "SYSTEM", "", "ALL")
    print 'Rebuild Complete'
    

    En este ejemplo, el usuario sde se conecta a la base de datos DB2:

    # Name: RSysIdxDb2.py
    # Description: Rebuilds indexes on the states, state_lineages,
    # and mv_tables_modified tables in an enterprise geodatabase
    # in DB2.
    
    # Author: Esri
    
    # Import system modules
    import sys
    import arcpy
    import os
    
    # Provide connection information
    database_platform = DB2
    instance = odbc_dsn
    account_authentication = OPERATING_SYSTEM_AUTH | DATABASE_AUTH
    #Leave username and password blank if using OPERATING_SYSTEM_AUTH
    username = gdb_admin_user_name
    password = gdb_admin_password
    version = sde.DEFAULT
    
    
    # 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
    saveVersionInfo = "SAVE_VERSION" #DO_NOT_SAVE_VERSION
    
    print "Creating database connection file..."
    # Usage: out_folder_path, out_name, database_platform, instance, account_authentication, username, password, saveUserInfo, version, saveVersionInfo
    arcpy.CreateDatabaseConnection_management(temp, "connection.sde", database_platform, instance, account_authentication, username, password, saveUserInfo, version, saveVersionInfo)
    
    # Rebuild indexes on system tables
    arcpy.RebuildIndexes_management(Connection_File_Name, "SYSTEM", "", "ALL")
    print 'Rebuild Complete'
    
  2. Después de que altere la secuencia de comandos para que incluya la información de conexión, programe la secuencia de comandos para que se ejecute a una hora específica cada noche.
    • En Windows, abra Tareas programadas en el Panel de control y utilice el asistente para agregar una tarea programada. Cuándo se le pregunte qué programa desea ejecutar, vaya a su secuencia de comandos de Python.
    • En Linux, cree un archivo de texto cron que incluya información sobre el día y la hora en que desea ejecutar la secuencia de comandos y cárguelo en cron utilizando el programa crontab.

      Por ejemplo, la información siguiente establece la secuencia de comandos Python (denominada rsysidxdb2.py) para que se ejecute cada miércoles a las 10:00 p.m.:

      0 22 * * 3 /usr/bin/rsysidxdb2.py

      Consulte las páginas Man de Linux que se proporcionan con la instalación Linux para obtener información sobre cron.

ArcGIS Desktop

  • Inicio
  • Documentación
  • Soporte

Plataforma ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Acerca de Esri

  • Quiénes somos
  • Empleo
  • Blog de Esri
  • Conferencia de usuarios
  • Cumbre de desarrolladores
Esri
Díganos su opinión.
Copyright © 2019 Esri. | Privacidad | Legal