Nous avons certains logiciels dans le cadre d'un projet plus vaste écrit à l'aide d'ArcObjects via .NET. Ce logiciel migre et fusionne les données de plusieurs géodatabases fichier dans un schéma vers une géodatabase fichier unique dans un schéma similaire mais différent. Certaines étapes de la migration impliquent de rechercher une ligne existante et de la mettre à jour avec les données d'une table différente. Cela peut devenir très lent lorsque la géodatabase de destination est volumineuse, j'ai donc ajouté des index d'attributs multi-champs pour améliorer les performances de requête / mise à jour.
Existe-t-il un moyen de confirmer que les requêtes utilisent les nouveaux index d'attributs et peut-être comment la requête est exécutée?
Je suppose que je recherche vraiment l'équivalent d'un plan de requête - quelque chose de similaire à EXPLAIN PLAN
Oracle.
Les requêtes se trouvent sur une géodatabase fichier utilisant directement ArcObjects (pas de backend RDBMS ou SQL).
la source
is_size_fast?
méthode de Smallworld Magik , qui renvoie vrai si des index sont utilisés, mais je n'ai pas pu voir un appel ArcObjects équivalent.Réponses:
La géodatabase fichier est le propre format de base de données d'Esri, il existe une API qui vous permettra d'accéder aux données sans ArcObjects, mais je doute que cela éclairerait beaucoup votre dilemme.
L'utilisation d'indices est automatique, au niveau de la base de données, et ne peut être détectée ou confirmée que par la rapidité des fonctions qui les utilisent.
Je suis d'accord avec blah238 la seule façon de savoir avec certitude est de courir avec et sans index construits et de comparer la différence de temps.
Les options «unique» et «ascendant» pour la construction d'un index peuvent avoir une grande différence, mais n'utilisez ces options que si vous êtes absolument certain de l'unicité et / ou de l'ascension, si les données ne conviennent pas, l'index ne sera pas construit ou, si il ne construit, sont susceptibles d'affecter les performances plutôt que d'améliorer.
la source