Staram się wybrać najlepszy sposób organizacji moich danych dla aplikacji ArcGIS Engine. Szczególnie interesuje mnie szybkość wyświetlania map i zapytań. Obecnie wszystkie moje dane są podzielone na osobne geobazie plików na podstawie motywu. Mam więc Transport.gdb, Utilities.gdb itp. Dane niekoniecznie muszą być organizowane na podstawie motywów i rozważam umieszczenie ich wszystkich w jednej geobazie pliku.
Będę przeprowadzać własne testy, ale chciałem zadać to pytanie społeczności.
Ogólnie rzecz biorąc, czy korzystanie z geobazy danych z jednego pliku jest szybsze niż używanie wielu (w przybliżeniu 7) mniejszych? Interesują mnie również inne zalety / wady.
UWAGA: oprogramowanie i wszystkie dane będą na lokalnej maszynie klienta. Żadne dane nie są podawane w Internecie ani w sieci, a ilość danych jest dość mała (około 100 000 funkcji).
W rzeczywistości jest to na odwrót; mniejsze bazy danych odpytują szybciej. To tak, jakby pytać, czy możesz szybciej znaleźć rzeczy, jeśli rzucisz wszystko na dużą kupę w piwnicy, zamiast sortować je do pojedynczych szafek na dokumenty. Gdy masz indywidualne bazy danych, to tak, jakbyś miał 6 szafek na dokumenty, których możesz zignorować od samego początku i nie musisz się przez nie przeglądać. Oczywiście zakłada to, że wiesz, która baza danych wymaga odpytywania - jeśli i tak musisz je wszystkie przejrzeć, to jeden duży może rzeczywiście być szybszy (ponieważ może zoptymalizować zestaw danych jako całość).
źródło
Kiedyś miałem podobną konfigurację z ArcReaderem na urządzeniach, które nie były zbyt dobrze dostosowane do GIS i miały szczęście utrzymywać stabilne połączenie sieciowe z serwerem GIS ( mówimy o niestabilnych połączeniach przewodowych ... nie bezprzewodowych ).
Miałem wiele baz danych, które były ogólnie podzielone według „tematu”, a także częstotliwości aktualizacji. Rozbijałem je codziennie, co miesiąc, co roku lub co trzy lata (co było harmonogramem aktualizacji z lotu / planimetrycznego). Ponieważ zostały zaktualizowane za pomocą robocopy, nie chciałem przenosić żadnych niepotrzebnych danych na te urządzenia.
Jeśli znajdujesz się w środowisku, w którym nie masz solidnych możliwości replikacji geobazy, lub po prostu otrzymujesz geobazę plików do dystrybucji, łatwiej jest zarządzać, dzieląc pamięć na dane w ten sposób.
Aby odpowiedzieć na pytanie dotyczące wydajności: Nigdy nie zauważyłem zmniejszenia prędkości, dzieląc moje magazyny danych na osobne geobazie plików. To nie znaczy, że ich nie było, ale jeśli tak, to nie było to odczuwalne przez ludzi. Warto zauważyć, że te konfiguracje miały wszystkie geobazy plików na 1 dysku twardym - możesz uzyskać wzrost wydajności, gdybyś miał je rozproszone na urządzeniach SCSI / SSD.
źródło
Kiedyś miałem około pięciu aplikacji WebADF ArcGIS Server, z których każda obejmowała inny obszar geograficzny, ale wszystkie one miały wspólne zestawy danych. Zabójca polegał na tym, że wszystkie aplikacje były dynamiczne (nic nie było buforowane), a my mieliśmy w nich studnie ropy i gazu, które mogą być liczone w setkach tysięcy (w rzeczywistości milionów w całym USA). Wykonywanie zapytań dotyczących całego zestawu danych było bolesne - w rzeczywistości zwykle przekraczały limit czasu. Wycięcie danych dla każdego obszaru i umieszczenie ich w osobnym magazynie danych pozwoliło nam zwiększyć wydajność i zadowolić naszych klientów. Podobnie jak Ty, zachowaliśmy również geobazy danych przechowywane na dysku twardym na serwerze, co również pomogło ALOT. Mieliśmy zautomatyzowany proces, który każdej nocy przenosił dane do każdej geobazy danych pliku.
Nie do końca odpowiedź, ale raczej studium przypadku w czymś podobnym do tego, o czym myślisz. Gdybyśmy nie mieli do czynienia z tak wieloma dynamicznymi funkcjami, moglibyśmy tego nie robić. Czasami konieczne jest robienie rzeczy nieco niestandardowych.
źródło