Tenemos una geodatabase arcsde versionada (arcgis 9.3.1 en oracle 10g) con un modelo de datos bastante complejo que incluye alrededor de 100 clases de características y tablas no espaciales, una red geométrica y muchas clases de relación.
Los datos son editados diariamente por 5 o 6 usuarios de arcmap utilizando versiones sde. Además, las versiones son creadas por servicios automáticos que interactúan con otros sistemas comerciales para realizar ediciones en la geodatabase. El rendimiento de las consultas se degenera notablemente durante el transcurso del día, por lo que hemos implementado un script nocturno para lograr una compresión completa. En ocasiones, cuando se realiza un número relativamente grande de ediciones, el sistema puede quedar inutilizable hasta después de una compresión completa.
Se ha sugerido que Oracle configurado no puede tener planes de ejecución decentes cuando se enfrentan a estas tablas delta volátiles. ¿Es esta una explicación razonable? ¿Qué enfoque se debe tomar para resolverlo?
Actualización en respuesta a comentarios
- Al final del día, el árbol de estado es muy lineal, con solo una pequeña ramificación.
- Comprimimos todas las noches (obtenemos una compresa completa eliminando todas las versiones).
- Las tablas de negocios se analizan periódicamente.
- Las tablas delta no se analizan. Están bloqueados (el intento de analizar devuelve el error "Las estadísticas del objeto ORA-20005 están bloqueadas"). Tampoco lo son las tablas volátiles en el esquema sde: STATES, STATE_LINEAGES.
Respuestas:
Las tablas delta y el árbol de estado tienen un impacto directo en el rendimiento de sus consultas.
Primero, debe comprender el control de versiones; Hice una breve explicación de la relación del árbol de estado y las etiquetas de versión en una respuesta diferente . Creo que te ayudaría a repasarlo.
Después de leer esa respuesta, puede darse cuenta de cómo una rama de identificación de estado larga (desde la raíz hasta la identificación de estado mencionada por una etiqueta afectaría el rendimiento. ¿Por qué? Porque tiene uniones más complejas para recrear la vista "actual" de la versión. Dado que la compresa está recortando el árbol, las uniones internas se vuelven más fáciles de procesar por el db subyacente y sus sesiones de ArcMap se vuelven más rápidas.
Eche un vistazo al documento de Flujos de trabajo de versiones de ESRI que le enseñará cómo mantener el árbol de estado de la versión bajo control. Use el GDBT para mirar el árbol de estado antes y después para que pueda ver cómo un buen flujo de trabajo afecta al árbol.
Segundo, si puede salirse con la suya de no tener que usar la Red Geométrica para la mayoría de sus casos de uso, entonces hágalo. Se va a frenar las FeatureClasses que están involucrados, ya que utiliza la mensajería compleja para cada llamada Fila :: tienda (en lugar de sólo el almacenamiento de la fila en la tabla y que se termine con él).
Para actualizar las estadísticas, use la función Analizar de Herramientas de administración de datos (márquelas todas). Sabrá cómo lidiar con las tablas delta (y cualquier otra tabla) que sean necesarias.
fuente
[Disculpas por la primera publicación: se trata de un comentario, no de una respuesta definitiva.] Si tiene versiones de edición que son relativamente antiguas y no se han publicado, deben eliminarse, publicarse o conciliarse. Una versión antigua no reconciliada mantiene una vista antigua del valor predeterminado, lo que evita que los registros delta pertenecientes a versiones más nuevas se compriman en las tablas base. Puede haber una gran cantidad de estos registros delta sin comprimir anclados a una versión anterior y el rendimiento se ve afectado porque todas las versiones son vistas en las tablas delta y base. El rendimiento del sistema está relacionado con el número de ediciones desde la última vez que se concilió (o creó) cada versión. En resumen; si hay versiones que no puede publicar, concilie regularmente y comprima.
fuente