Mamy wersjonowaną geobazę arcsde (arcgis 9.3.1 na Oracle 10g) z dość złożonym modelem danych, który obejmuje około 100 klas obiektów i tabel nieprzestrzennych, sieć geometryczną i wiele klas relacji.
Dane są edytowane codziennie przez 5 lub 6 użytkowników arcmap korzystających z wersji SDE. Ponadto wersje są tworzone przez automatyczne usługi, które współpracują z innymi systemami biznesowymi w celu przeprowadzania edycji w geobazie. Wydajność zapytań wyraźnie spada w ciągu dnia, dlatego wdrożyliśmy skrypt nocny, aby uzyskać pełny kompres. W przypadkach, gdy wykonywana jest stosunkowo duża liczba edycji, system może stać się bezużyteczny do momentu pełnego skompresowania.
Zasugerowano, że skonfigurowany Oracle nie może wymyślić przyzwoitych planów wykonania, gdy skonfrontowany jest z tymi zmiennymi tabelami delta. Czy to rozsądne wytłumaczenie? Jakie podejście należy podjąć, aby to rozwiązać?
Zaktualizuj w odpowiedzi na komentarze
- Pod koniec dnia drzewo stanu jest bardzo liniowe, z niewielkim rozgałęzieniem.
- Kompresujemy co noc (uzyskaj pełny kompres, usuwając wszystkie wersje).
- Tabele biznesowe są regularnie analizowane.
- Tabele delta nie są analizowane. Są zablokowane (próba analizy zwraca błąd „Statystyka obiektów ORA-20005 jest zablokowana”). Nie są również zmienne tabele w schemacie sde - STATES, STATE_LINEAGES.
Odpowiedzi:
Tabele delta i drzewo stanów mają bezpośredni wpływ na wydajność zapytań.
Po pierwsze, musisz zrozumieć wersjonowanie; W innej odpowiedzi krótko wyjaśniłem związek drzewa stanu i etykiet wersji . Myślę, że pomogłoby ci to przejść.
Po przeczytaniu tej odpowiedzi możesz zdać sobie sprawę z tego, jak długi rozgałęzienie identyfikatora stanu (od katalogu głównego do identyfikatora stanu, do którego odnosi się etykieta, wpływa na wydajność. Dlaczego? Ponieważ masz bardziej złożone sprzężenia, aby odtworzyć „bieżący” widok wersji. Ponieważ kompres przycina drzewo, połączenia wewnętrzne stają się łatwiejsze do przetworzenia przez bazową bazę danych, a sesje ArcMap stają się szybsze.
Rzuć okiem na dokument Przepływ pracy z wersjami z ESRI, który nauczy Cię, jak utrzymywać drzewo stanu wersji pod zdrową kontrolą. Użyj GDBT, aby spojrzeć na drzewo stanu przed i po, aby zobaczyć, jak dobry przepływ pracy wpływa na drzewo.
Po drugie, jeśli możesz uniknąć konieczności korzystania z sieci geometrycznej w większości przypadków użycia, zrób to. To będzie spowolnić FeatureClasses które są zaangażowane, ponieważ wykorzystuje skomplikowany wiadomości dla każdego wywołania Row :: sklepu (a nie tylko przechowywanie wiersz w tabeli i jest z nim zrobić).
Aby zaktualizować statystyki, użyj funkcji analizy narzędzi do zarządzania danymi (zaznacz je wszystkie). Będzie wiedział, jak radzić sobie z niezbędnymi tabelami delta (i innymi tabelami).
źródło
[Przepraszam za pierwszy post: To ma być komentarz, a nie ostateczna odpowiedź.] Jeśli masz jakieś wersje edycji, które są stosunkowo stare i nie zostały opublikowane, należy je usunąć, opublikować lub uzgodnić. Stara nieuzgodniona wersja zachowuje stary widok domyślny, co zapobiega kompresji rekordów delta należących do nowszych wersji do tabel podstawowych. Może istnieć ogromna liczba tych nieskompresowanych rekordów delta przypiętych do starej wersji i wpływa to na wydajność, ponieważ wszystkie wersje są widokami na delcie i tabelach podstawowych. Wydajność systemu jest związana z liczbą edycji od ostatniego uzgodnienia (lub utworzenia) każdej wersji. Krótko mówiąc; jeśli istnieją wersje, których nie można opublikować, należy je regularnie uzgadniać i kompresować.
źródło