Tenemos algún software como parte de un proyecto más grande escrito usando ArcObjects a través de .NET. Este software migra y combina datos de múltiples geodatabases de archivos en un esquema a una única geodatabase de archivos en un esquema similar pero diferente. Algunos pasos en la migración implican buscar una fila existente y actualizarla con datos de una tabla diferente. Esto puede ser muy lento cuando la geodatabase de destino es grande, por lo que he agregado algunos índices de atributos de múltiples campos para mejorar el rendimiento de la consulta / actualización.
¿Hay alguna manera de que pueda confirmar que las consultas están utilizando los nuevos índices de atributos, y tal vez cómo se ejecuta la consulta?
Creo que realmente estoy buscando el equivalente de un plan de consulta, algo similar a EXPLAIN PLAN
Oracle.
Las consultas están en una geodatabase de archivos utilizando ArcObjects directamente (sin backend RDBMS o SQL).
fuente
is_size_fast?
método de Smallworld Magik , que devuelve verdadero si se usan índices, pero no pude ver una llamada de ArcObjects equivalente.Respuestas:
File Geodatabase es el formato de base de datos propio de Esri, hay una API que le permitirá acceder a los datos sin ArcObjects, pero dudo que arroje mucha luz sobre su dilema.
El uso de índices es automático, a nivel de base de datos, y no puede detectarse ni afirmarse, excepto por la puntualidad de las funciones que los utilizan.
Estoy de acuerdo con blah238, la única forma de saber con certeza es ejecutar con y sin índices construidos y comparar la diferencia en el tiempo.
Las opciones 'únicas' y 'ascendentes' para construir un índice pueden tener una gran diferencia, pero solo use estas opciones si está absolutamente seguro de la unicidad y / o ascensión, si los datos no son adecuados, el índice no se construirá o, si se construye, es probable que afecte negativamente el rendimiento en lugar de mejorar.
fuente