Która zapewniłaby najlepszą wydajność do pracy w ArcMap z bardzo dużymi zestawami danych przechowywanymi w geobazie ArcSDE? Wiele klas etykiet przy użyciu złożonych zapytań SQL do oznaczania określonych funkcji, czy wiele kopii tej samej warstwy przy użyciu tych samych złożonych zapytań SQL ustawionych jako zapytanie definicji dla każdej warstwy?
11
Odpowiedzi:
Zakładając, że zapytania SQL dotyczące klas etykiet są takie same, jak zapytania na podzielonych warstwach, podejście jednowarstwowe z wieloma klasami etykiet będzie szybsze. Czemu?:
Etykietowanie w ArcMap spowoduje wykonanie jednego zapytania dla losowania warstwy, a następnie jednego zapytania dla każdej klasy etykiet. Tak więc warstwa z 4 klasami etykiet zapyta raz (1 zapytanie) dla wszystkich narysowanych elementów, a następnie 4 dodatkowe razy łącznie (jeden dla każdej klasy etykiety lub 4 więcej zapytań) = 5 zapytań ogółem
Jeśli podzielisz warstwy, otrzymasz 1 filtrowane zapytanie (definicja) dla każdej warstwy (4 zapytania) plus to samo zapytanie dla każdej klasy etykiety (4 kolejne zapytania) = 8 zapytań ogółem
W prawie wszystkich przypadkach 5 zapytań będzie szybszych niż 8 zapytań z powodu zwykłego narzutu zapytań, chociaż zależy to od źródła danych.
Uwaga: w ArcGIS Server pamięć podręczna służy do oznaczania funkcji, a 1 warstwa z 4 klasami etykiet zostanie najprawdopodobniej obsłużona za pomocą jednego zapytania, gdy klasy etykiet będą używać dość standardowego SQL bez funkcji specyficznych dla dostawcy.
źródło
Przeprowadziłem kilka bardzo prostych testów przy użyciu niektórych danych NHD pochodzących z połączenia SDE i znalazłem bardzo małą różnicę między obiema metodami.
Kilka zastrzeżeń:
źródło
Myślę, że zapytanie definicji byłoby szybsze, ponieważ jest na poziomie obiektu, a nie na poziomie danych atrybutów.
Nadal będziesz musiał przetestować. Korzystałbym jednak z definicji zapytań, a nie z etykiet klas.
źródło