Verificando se os índices de atributo estão sendo usados ​​na consulta do ArcObjects?

11

Temos algum software como parte de um projeto maior escrito usando o ArcObjects via .NET. Este software migra e mescla dados de vários bancos de dados geográficos de arquivo em um esquema para um único banco de dados geográfico de arquivos em um esquema semelhante, mas diferente. Algumas etapas da migração envolvem a consulta de uma linha existente e a atualização com dados de uma tabela diferente. Isso pode ficar muito lento quando o geodatabase de destino é grande, por isso adicionei alguns índices de atributos de vários campos para melhorar o desempenho da consulta / atualização.

Existe uma maneira de confirmar que as consultas estão usando os novos índices de atributo e talvez como a consulta está sendo executada?

Acho que estou realmente procurando o equivalente a um plano de consulta - algo semelhante ao EXPLAIN PLANOracle.

As consultas estão em um banco de dados geográfico de arquivos usando o ArcObjects diretamente (sem back-end RDBMS ou SQL).

Mosquito
fonte
Você cronometrou o desempenho com e sem índices de atributos? Eu acho que é a única maneira de saber que eles estão tendo um efeito.
precisa saber é o seguinte
Estou executando testes de desempenho agora com vários tamanhos de conjunto de dados. Vou tentar postar resultados quando obtê-los.
Gnat
Procurei nas bibliotecas de classes do ArcObjects algo semelhante ao is_size_fast?método do Smallworld Magik , que retorna true se índices estiverem sendo usados, mas não consegui ver uma chamada equivalente do ArcObjects.
Gnat
O fGDB é o próprio formato de banco de dados dos ESRIs, existe uma API que permite acessar dados sem objetos ESRI, mas duvido que isso possa esclarecer seu dilema. O uso de indicações é automático e não pode ser detectado ou afirmado. Concordo com blah238 que é a única maneira de ter certeza. As opções 'únicas' e 'ascendentes' podem ter uma grande diferença, mas somente as usarão se tiver certeza absoluta de exclusividade e / ou ascensão.
Michael Stimson
@ blah238 Acho que você pode transformar seu comentário em resposta.
PolyGeo

Respostas:

1

O geodatabase de arquivo é o próprio formato de banco de dados da Esri, existe uma API que permite acessar dados sem ArcObjects, mas duvido que isso possa esclarecer seu dilema.

O uso de índices é automático, no nível do banco de dados, e não pode ser detectado ou afirmado, exceto pela pontualidade das funções que os utilizam.

Eu concordo com blah238. A única maneira de ter certeza é correr com e sem índices criados e comparar a diferença no tempo.

As opções 'únicas' e 'ascendentes' para a criação de um índice podem ter uma grande diferença, mas somente as usarão se tiver certeza absoluta de exclusividade e / ou ascensão, caso os dados não sejam adequados, o índice não será construído ou, se ele cria, provavelmente afeta o desempenho em vez de melhorar.

Michael Stimson
fonte