Estadísticas de base de datos utilizadas por el optimizador del sistema de administración de bases de datos para seleccionar el plan óptimo de ejecución de la consulta ejecutada. Para mantener el rendimiento de las consultas, debe actualizar las estadísticas cuando el contenido de una tabla cambie de manera significativa; por ejemplo, después de cargar un gran número de registros en ella o de realizar muchas modificaciones en la tabla.
Se pueden actualizar las estadísticas de los siguientes tipo de tablas e índices:
- La tabla seleccionada para analizar y sus índices asociados.
- Las tablas delta de tablas y clases de entidad versionadas y los índices de las tablas delta
- Las tablas de archivo de historial de datasets habilitados para archivado y los índices de las tablas de archivo
- Tablas del sistema de geodatabase
- Cuando se analiza una clase de entidad que utiliza almacenamiento de geometría binaria de sde, también se actualizan las estadísticas en la tabla de entidades, en la tabla de índices espaciales y en los índices de estas tablas.
En ArcGIS existen varios métodos para actualizar las estadísticas. Estos se describen en las secciones siguientes:
Utilice el comando Analizar
Puede utilizar el comando Analizar para actualizar las estadísticas en datasets específicos que puede seleccionar directamente en el árbol de catálogo. Debe ser el propietario del dataset para actualizar las estadísticas.
- Inicie ArcMap o ArcCatalog.
-
Bajo Conexiones de base de datos en el árbol de Catálogo, conéctese a la base de datos o geodatabase corporativa que contiene el dataset en el que desea actualizar las estadísticas.
Asegúrese de conectarse como el propietario del dataset.
- Haga clic con el botón derecho del ratón en el árbol de catálogo.
Puede ser un dataset de entidades, una clase de entidad, una tabla, un catálogo de ráster, un dataset ráster o un dataset de mosaico.
- Señale Administrar y haga clic en Analizar.
Las estadísticas se actualizan de las tablas y los índices en este dataset como se describe en el comienzo de este tema.
Utilizar la herramienta Analizar datasets
Para actualizar las estadísticas, puede utilizar la herramienta de geoprocesamiento Analizar datasets (ubicada en el conjunto de herramientas Administración de geodatabase de la caja de herramientas Administración de datos). Utilice esta herramienta en lugar del comando Analizar si desea actualizar las estadísticas en varios datasets al mismo tiempo, si quiere elegir las tablas concretas que se van a analizar (por ejemplo, para actualizar las estadísticas de las tablas delta) o si prefiere actualizar las estadísticas de las tablas del sistema de geodatabase.
Debe ejecutar la herramienta como propietario de las tablas que desea analizar. En el caso de las tablas del sistema de geodatabase, debe ejecutar la herramienta como administrador de la geodatabase. Las estadísticas de las tablas del sistema de geodatabase deberían actualizarse después de agregar varias tablas o clases de entidad a la geodatabase, de realizar un gran número de ediciones versionadas o de comprimir la geodatabase.
- Inicie ArcMap o ArcCatalog y conéctese a la geodatabase que contiene las tablas cuyas estadísticas desea actualizar.
Conéctese como propietario de las tablas.
- Abra la herramienta de geoprocesamiento Analizar datasets.
Use la ventana Buscar para encontrar y abrir la herramienta, o para navegar hasta la herramienta del conjunto de herramientas Administración de geodatabase de la caja de herramientas Administración de datos.
- Use el archivo de conexión de base de datos que ha creado en el paso 1 como espacio de trabajo de entrada.
- Compruebe las tablas que quiere analizar:
- Si quiere que se actualicen las estadísticas de las tablas básicas seleccionadas, deje activado.
- Marque para actualizar las estadísticas de las tablas delta de datasets versionados.
- Marque para actualizar las estadísticas de las tablas de archivo de historial de datasets que están habilitados para el archivado.
- Marque Incluir tablas del sistema para actualizar las estadísticas de las tablas del sistema de geodatabase.
- Haga clic en el botón Aceptar para ejecutar la herramienta.
Se actualizan las estadísticas de las tablas elegidas y sus índices.
Ejecutar una secuencia de comandos de Python
Puede utilizar la función AnalyzeDatasets_management en una secuencia de comandos de Python para actualizar estadísticas en tablas básicas, tablas delta, tablas de archivo y/o tablas del sistema de geodatabase. Al igual que ocurre con la herramienta Analizar datasets, puede ejecutar la función AnalyzeDatasets_management como propietario de las tablas que está analizando.
Cuando ejecute la secuencia de comandos de Python siguiente, especifique un archivo de conexión de base de datos (archivo .sde). La secuencia de comandos actualiza las estadísticas de todas las tablas que pertenecen al usuario especificado en la conexión.
Por ejemplo, para ejecutar esta secuencia de comandos en Linux utilizando el archivo de conexión de base de datos entgdb.sde que se encuentra en /usr/connections, introduzca lo siguiente:
./ AnalyzeDatasets.py /usr/connections/entgdb.sde
Si quiere ejecutar esta secuencia de comandos para actualizar las estadísticas de las tablas del sistema, especifique el archivo de conexión que utiliza el nombre de usuario y la contraseña del administrador de la geodatabase para conectarse.
# Name: AnalyzeDatasets.py
# Description: analyzes all datasets in an enterprise geodatabase
# for a given user.
# Import system modules
import arcpy, os
# set workspace
# the user in this workspace must be the owner of the data to analyze.
workspace = arcpy.GetParameterAsText(0)
# set the workspace environment
arcpy.env.workspace = workspace
# NOTE: Analyze Datasets 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 analyze datasets
# Note: to use the "SYSTEM" option the workspace user must be an administrator.
arcpy.AnalyzeDatasets_management(workspace, "NO_SYSTEM", userDataList, "ANALYZE_BASE","ANALYZE_DELTA","ANALYZE_ARCHIVE")
print "Analyze Complete"