Dlaczego proste sprzężenia w małych zestawach danych tak bardzo spowalniają ArcMap?

13

ArcGIS 9.3.1, ArcInfo. Mam kilka małych plików geobazy i klas funkcji SDE (kilka tysięcy rekordów, 50 kolumn), do których dołączam atrybuty. Po dołączeniu rysowanie mapy jest za każdym razem spowalniane z podsekundy do kilku sekund, czasem więcej. Dodaj do niektórych zapytań definicji, które odwołują się do pól ze sprzężenia, czas na filiżankę kawy podczas przerysowywania. Wszelkie pomysły na to, dlaczego tak się dzieje? Czy ktoś jeszcze tego doświadczył?

Chad Cooper
źródło
6
Czy Twoje pola złączone są indeksowane?
Derek Swingley,
Nie, nie są indeksowane.
Chad Cooper
9
Aby odpowiedzieć na twoje ostatnie pytanie, Czad: tak, doświadczyłem słabej wydajności łączenia w każdej wersji ArcGIS. Ogromny postęp w szybkości obliczeń w ciągu ostatniej dekady wciąż nie był w stanie nadążyć za rutynowym spadkiem wydajności przy każdej nowej wersji. To jeden z głównych powodów, dla których nie mogę go używać do prac analitycznych. (W przypadku prac kartograficznych to inna historia.)
whuber
@ Pytanie Swingleya może być odpowiedzią na Twój problem. Dołączenie do nieindeksowanej kolumny spowoduje poważne spowolnienie. Prawdopodobnie uzyskasz duży wzrost prędkości po prostu poprzez utworzenie indeksu na tym polu. Może być również konieczne przeniesienie rzeczy z geobazy danych pliku do SDE; Dostęp nie jest najszybszą rzeczą w bloku, więc przejście na SqlServer lub Oracle może również pomóc w problemach z prędkością.
Michael Todd
2
@Jay: tak Swingley jako pierwszy umieścił kamień kluczowy na swoim miejscu i otrzymał za niego 3 głosy poparcia, jednak poszedłeś dalej i opisałeś metodę. Wszyscy wygrywają. :) Staramy się budować coś więcej niż właściwą odpowiedź, ale także najlepszą. Nie zawsze znajdują się w jednym pojemniku jednocześnie.
matt wilkie

Odpowiedzi:

10

Regularnie muszę dołączać do innej klasy funkcji Depts: klasy funkcji SDE bez żadnych indeksów.

Kopiowanie do lokalnego pliku geobazy + budowanie indeksu naprawdę przyspiesza.

Ponieważ jest to tymczasowe, zwykle robię to na dysku RAM http://t.co/EBTeOem .

W zależności od danych pomocne mogą być pola indeksowania używane do symbolizacji lub pola używane w zapytaniu dotyczącym definicji.

Jay Cummins
źródło
Nigdy nie myślałem o indeksowaniu pól, na których opiera się symbolika. Czy uważasz, że zwiększa to wydajność renderowania przerysowanych / odświeżanych map?
Chad Cooper
Zmodyfikuję odpowiedź - pola indeksowania używane do renderowania nie pomogą w każdym przypadku i nie wiem na pewno, czy to pomaga w geobazie plików. Jest to bardziej nawyk oparty na mojej pamięci na temat tego, jak działały klasy sde w przeszłości (używając se_toolkit).
Jay Cummins