¿Verificando que los índices de atributos se están utilizando en la consulta desde ArcObjects?

11

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 PLANOracle.

Las consultas están en una geodatabase de archivos utilizando ArcObjects directamente (sin backend RDBMS o SQL).

Mosquito
fuente
¿Ha cronometrado el rendimiento con y sin índices de atributos? Creo que esa es la única forma de saber que están teniendo un efecto.
blah238
Estoy ejecutando pruebas de rendimiento ahora con varios tamaños de conjuntos de datos. Intentaré publicar resultados cuando los obtenga.
Gnat
Busqué en las bibliotecas de clases de ArcObjects algo similar al is_size_fast?método de Smallworld Magik , que devuelve verdadero si se usan índices, pero no pude ver una llamada de ArcObjects equivalente.
Mosquito
fGDB es el formato de base de datos propio de ESRI, hay una API que le permitirá acceder a datos sin objetos ESRI, pero dudo que eso arroje mucha luz sobre su quandry. El uso de indicaciones es automático y no se puede detectar ni afirmar. Estoy de acuerdo con blah238, esa es la única forma de saberlo con certeza. Las opciones 'únicas' y 'ascendentes' pueden tener una gran diferencia, pero solo use estas opciones si está absolutamente seguro de su singularidad y / o ascenso.
Michael Stimson
@ blah238 Creo que podrías convertir tu comentario en una respuesta.
PolyGeo

Respuestas:

1

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.

Michael Stimson
fuente