Czy weryfikujesz, czy indeksy atrybutów są używane w zapytaniu z ArcObjects?

11

Mamy oprogramowanie w ramach większego projektu napisanego przy użyciu ArcObjects przez .NET. To oprogramowanie migruje i scala dane z wielu geobaz danych pliku w jednym schemacie do geobazy danych z jednym plikiem w podobnym, ale innym schemacie. Niektóre etapy migracji obejmują wyszukiwanie istniejącego wiersza i aktualizowanie go danymi z innej tabeli. Może to być bardzo powolne, gdy docelowa geobaza jest duża, dlatego dodałem kilka indeksów atrybutów z wieloma polami, aby poprawić wydajność zapytań / aktualizacji.

Czy istnieje sposób, w jaki mogę potwierdzić, że zapytania korzystają z nowych indeksów atrybutów i być może w jaki sposób zapytanie jest wykonywane?

Chyba naprawdę szukam odpowiednika planu zapytań - czegoś podobnego do EXPLAIN PLANOracle.

Zapytania są na geobazie pliku przy użyciu ArcObjects bezpośrednio (bez zaplecza RDBMS lub SQL).

Komar
źródło
Czy mierzyłeś czas z indeksami atrybutów i bez nich? Myślę, że to jedyny sposób, aby wiedzieć, że mają wpływ.
blah238,
Obecnie przeprowadzam testy wydajności z zestawem danych o różnych rozmiarach. Spróbuję opublikować wyniki, gdy je otrzymam.
Gnat
W bibliotekach klasy ArcObjects szukałem czegoś podobnego do is_size_fast?metody Smallworld Magik , która zwraca wartość true, jeśli używane są indeksy, ale nie widziałem równoważnego wywołania ArcObjects.
Gnat
fGDB jest własnym formatem bazy danych ESRI, istnieje interfejs API, który pozwoli ci na dostęp do danych bez obiektów ESRI, ale wątpię, czy rzuciłoby to dużo światła na twoje rozłożenie. Korzystanie ze wskaźników jest automatyczne i nie można go wykryć ani potwierdzić. Zgadzam się z blah238, że to jedyny sposób, aby się upewnić. Opcje „unikatowy” i „wstępujący” mogą mieć dużą różnicę, ale używaj tych opcji tylko wtedy, gdy jesteś absolutnie pewien wyjątkowości i / lub oceny.
Michael Stimson,
@ blah238 Myślę, że możesz zamienić swój komentarz w odpowiedź.
PolyGeo

Odpowiedzi:

1

Plik Geodatabase jest własnym formatem bazy danych Esri, istnieje interfejs API , który pozwoli ci na dostęp do danych bez ArcObjects, ale wątpię, czy rzuciłoby to dużo światła na twoje rozbieżności.

Korzystanie z indeksów jest automatyczne na poziomie bazy danych i nie może być wykryte ani potwierdzone, z wyjątkiem terminowości funkcji, które ich używają.

Zgadzam się z blah238, jedynym sposobem, aby na pewno powiedzieć, jest bieganie z wbudowanymi indeksami i bez nich oraz porównywanie różnicy w czasie.

„Unikalne” i „rosnąco” opcje budowania indeksu mogą mieć dużą różnicę, ale używaj tych opcji tylko wtedy, gdy jesteś absolutnie pewien wyjątkowości i / lub wniebowstąpienia, jeśli dane nie będą odpowiednie, indeks albo nie zbuduje, albo, jeśli to się buduje, raczej raczej negatywnie wpłynie na wydajność niż poprawi.

Michael Stimson
źródło