Kolejność rozwiązywania w Essbase to kolejność, w jakiej w trybie hybrydowym są wykonywane obliczenia dynamiczne. Można ją dostosować lub zaakceptować domyślną, zoptymalizowaną pod kątem wysokiej wydajności i analiz zależności.
Koncepcja kolejności rozwiązywana ma zastosowanie przy wykonywaniu obliczeń dynamicznych zainicjowanych przez formułę elementu dynamicznego lub przez zależność dynamiczną ze skryptu obliczeń. Gdy w zapytaniu wielowymiarowym jest obliczana komórka, kolejność wykonywania obliczeń może być niejednoznaczna, jeśli nie została określona kolejność rozwiązywania, sygnalizująca priorytet wymaganych obliczeń.
Można ustawić kolejność rozwiązywania dla wymiarów lub elementów albo używać kolejności domyślnej z Essbase. Minimalna wartość kolejności rozwiązywania, jaką można ustawić, to 0, a maksymalna to 127. Większa wartość kolejności rozwiązywania oznacza, że dany element będzie rozwiązywany później; na przykład element z kolejnością rozwiązywania równą 1 będzie rozwiązywany przed elementem z kolejnością rozwiązywania równą 2.
Gdy jest włączony tryb hybrydowy, domyślna kolejność rozwiązywania (określana też terminem kolejności obliczania) jest w dużej mierze zbliżona do baz danych stanowiących wolumen blokowy:
Typ wymiaru/elementu | Domyślna wartość kolejności rozwiązywania |
---|---|
Elementy składowane | 0 |
Elementy wymiarów rzadkich | 10 |
Elementy gęstych wymiarów "Konto" | 30 |
Elementy gęstych wymiarów "Czas" | 40 |
Elementy gęstych wymiarów zwykłych | 50 |
Elementy wymiarów atrybutowych | 90 |
Elementy dynamiczne obliczane dwuprzebiegowo | 100 |
Elementy obliczane MDX lub nazwane zbiory (zdefiniowane w MDX With) | 120 |
Podsumowując, domyślna kolejność rozwiązywania w trybie hybrydowym stanowi, że elementy składowane są obliczane przed elementami dynamicznymi, a wymiary rzadkie — przed wymiarami gęstymi (w kolejności, w jakiej występują w strukturze — od dołu do góry).
Elementy dynamiczne (z formułami lub bez formuł), które nie mają określonej kolejności rozwiązywania, dziedziczą ją ze swoich wymiarów, o ile elementy te nie są oznakowane jako dwuprzebiegowe.
Obliczanie dwuprzebiegowe jest ustawieniem, które można w trybie wolumenu blokowego zastosować do elementów, które — w celu uzyskania właściwej wartości — muszą być obliczane dwukrotnie.
Uwaga:
W kostkach działających w trybie hybrydowym nie należy używać obliczania dwuprzebiegowego. Należy używać tylko kolejność rozwiązywania.
Obliczanie dwuprzebiegowe nie jest stosowane w trybie hybrydowym; elementy oznakowane jako obliczane dwuprzebiegowo są obliczane na końcu, po atrybutach. W trybie hybrydowym, jeśli domyślna kolejność rozwiązywania nie spełnia wymagań, należy zamiast obliczania dwuprzebiegowego zastosować niestandardową kolejność obliczania.
Domyślna kolejność rozwiązywania w trybie hybrydowym jest optymalizowana pod kątem następujących scenariuszy:
Odniesienia wyprzedzające, w których formuła elementu dynamicznego odwołuje się do elementu występującego później w strukturze. W trybie hybrydowym nie ma zależności od kolejności w strukturze.
Agregacja wartości podrzędnych na podstawie kolejności w strukturze bardziej przypomina agregację z użyciem odpowiednich formuł.
Dynamiczne elementy gęste jako zależności w formułach elementów rzadkich. W trybie hybrydowym, jeśli formuła elementu rzadkiego odnosi się do dynamicznego elementu gęstego, odniesienie takie jest ignorowane, ponieważ wymiary rzadkie są obliczane jako pierwsze. Aby to zmienić, należy przypisać do wymiaru rzadkiego kolejność rozwiązywania wyższą (czyli obliczanie jest późniejsze) niż kolejność rozwiązywania wymiaru gęstego.
Dostosowywanie kolejności rozwiązywania
Jeśli trzeba skorygować działanie obliczeń dynamicznych w trybie hybrydowym, to dostosowanie kolejności rozwiązywania z użyciem wymiarów i elementów pomaga to uzyskać bez konieczności dokonywania ważniejszych zmian w strukturze.
Jeśli zostanie zaimplementowana niestandardowa kolejność rozwiązywania, to przesłoni ona kolejność domyślną. Jeśli elementy lub wymiary mają jednakową kolejność rozwiązywania, to są obliczane w kolejności, w jakiej występują w strukturze — od dołu do góry.
Jeśli nie zostanie dostosowana kolejność rozwiązywania dla określonych elementów, to kolejność rozwiązywania, określona dla elementu wymiaru poziomu głównego, jest stosowana do wszystkich elementów dynamicznych w tym wymiarze.
Kolejność rozwiązywania można zmienić, używając edytora struktury z internetowego interfejsu Essbase lub za pomocą narzędzia Smart View (zob. Changing the Solve Order of a Selected POV).
Minimalna wartość kolejności rozwiązywania, jaką można ustawić, to 0, a maksymalna to 127. Większa wartość kolejności rozwiązywania oznacza, że danych element jest obliczany później.
Chcąc zbadać przypadki użycia kolejności rozwiązywania, warto przejrzeć szablony Solve Order w sekcji "Techniczne" galerii skoroszytów aplikacji, dostępne w Katalogu plików w Essbase.
Uwagi dotyczące kolejności rozwiązywania w trybie niehybrydowym
W kostkach stanowiących magazyn agregacji:
Kolejność rozwiązywania jest ustawiana na 0 dla wszystkich wymiarów.
Agregacja jest wykonywana w kolejności wynikającej ze struktury; wyjątki:
W przypadku kostek stanowiących niehybrydowy wolumen blokowy domyślna kolejność rozwiązywania jest następująca:
wymiary rzadkie przed gęstymi
konta przed czasem
na końcu atrybuty
Uwaga:
Jeśli kolejność rozwiązywania dla elementów "Konta" zostanie ustawiona ręcznie na wartość większą niż kolejność rozwiązywania dla elementów "Czas", to konta będą obliczane po elementach dynamicznych ciągów czasowych.