Analiza użycia poszczególnych obiektów bazy analitycznej SSAS

Database level analysis

Wstęp

Analysis Services, jak już wspomniano we wcześniejszych postach (zobacz: http://pl.seequality.net/monitorowanie-optymalizacja-ssas/), dostarcza wiele użytecznych narzędzi do monitorowania,analizowania oraz sprawdzania serwera i poszczególnych obiektów SSAS. W niniejszym poście omówiony zostanie jeden z widoków systemów, który pomoże nam zrozumieć, które obiekty są rzeczywiście wykorzystywane przez użytkowników. Wizualizacja dla tego widoku została przygotowana w Power BI i można ją znaleźć na GitHub: https://github.com/seequality/seequality_ssas/tree/master/ssas_object_activity

Widok o którym będzie mowa to DISCOVER_OBJECT_ACTIVITY. Oczywiście dane z widoku można zwracać za pomocą zapytania w języku MDX, dla tego widoku:

Widok zawiera następujące atrybuty:

  • object_parent_path – “fizyczna” ścieżka do obiektu
  • object_id – identyfikator obiektu
  • object_cpu_time_ms – czas procesora w milisekundach wykorzystany przez konkretny obiekt
  • object_reads – liczba operacji odczytu dla tego obiektu. Jeżeli object_hit jest równy 0, natomiast object_reads jest różny od 0 oznacza to, że odczyty odbywały się z dysku twardego
  • object_read_kb – ilości danych jaką SSAS zwrócił dla tego obiektu w kilobajtach
  • object_writes – ilość operacji zapisu, która została zapisana do konkretnego obiektu (np. Writeback)
  • object_write_kb- ilość danych, która została zapisana do konkretnego obiektu (np. Writeback)
  • object_aggregation_hit – liczba odwołań do agregacji danego obiektu
  • object_aggregation_miss – liczba odwołań do obiektu w których SSAS nie skorzystał z agregacji
  • object_hit – liczba odwołań do obiektu, mowa tutaj natomiast tylko o odwołaniach dla których SSAS zwracał dane dla tego obiektu z pamięci cache
  • object_miss – liczba przypadków w których SSAS oczekiwał, że dany obiekt będzie znajdował się w cachu, natomiast obiekt nie znajdował się w cache
  • object_version – identyfikator serwera SSAS, numer automatycznie zmienia się podczas zmiany definicji obiektu
  • object_data_version – identyfikator serwera SSAS, numer automatycznie zmienia się podczas procesowania obiektu
  • object_rows_scanned – liczba wierszy, które SSAS musiał “sprawdzić” (przeskanować), aby zwrócić wyniki dla konkretnego obiektu
  • object_rows_returned – liczba wierszy, które SSAS zwrócił dla konkretnego obiektu

Warto również zaznaczyć, że widok zwraca dane tylko od momentu startu usługi, czyli w przypadku restartu serwera możemy stracić bardzo cenne informacje. W momencie gdy nie posiadamy mechanizmy, który na bieżąco wykonuje kopię danych z tego widoku, dobrym pomysłem wydaje się przynajmniej przed planowanym restartem usługi zapisać zawartość danych z tego (i innych) widoków.

Analiza tego widoku powinna być szczególnie przydatna, aby:

  • sprawdzić, które obiekty rzeczywiście są wykorzystywane przez użytkowników
  • sprawdzić, czy Analysis Services nie ma problemów z pamięcią cache
  • zidentyfikować problemy z agregacjami
  • znaleźć obiekty, które zwracają najwięcej danych lub dla których przygotowanie rezultatów trwa najdłużej

Dane z tego widoku można analizować między innymi wykorzystując raport w Power BI. Poniżej przykład takiego raportu.

Object activity overview – ogólne podsumowanie danych zwracanych przez widok. Informuje między innymi o ilości obiektów załadowanych i niezaładowanych do pamięci cache i ilości wszystkich obiektów w bazie analitycznej. Ponadto pokazuje które typy obiektów (wymiary, grupy miar, inne) zwracały najwięcej danych z dysku i pamięci cache oraz zwraca 10 obiektów, które zostały najczęściej używane i zwracane przez Analysis Services z pamięci cache.

This slideshow requires JavaScript.

Database level analysis – jeden z atrybutów widoku – object_parent_path – pokazuje ścieżkę obiektu. Analizując oraz dzieląc tę ścieżkę na kolejne etapy jesteśmy w stanie utworzyć hierarchię oraz analizować użycie obiektów począwszy od poziomu pojedynczej bazy danych, aż do konkretnego obiektu.

This slideshow requires JavaScript.

Main level analysis – analiza obiektów – szczególnie grup miar i wymiarów – oraz zwrócenie uwagi na różnice pomiędzy ilością zwracanych danych z plików i z pamięci cache

Aggregation miss – analiza jednego z atrybutów widoku, czyli object_aggregation_miss. Analiza pozwala na sprawdzenie, czy agregacje działają prawidłowo. Jeżeli dany obiekt jest dość często wykorzystywany, a SSAS informuje, że brakuje dla niego agregacji lub te agregacje nie zostały wykorzystane powinno to zostać sprawdzone.

Analiza widoku DISCOVER_OBJECT_ACTIVITY może przynieść stosunkowo dużo informacji przy stosunkowo niewielkim nakładzie pracy jakim jest stworzenie potrzebnych raportów. Należy jednak pamiętać, że najlepszym rozwiązaniem powinno być przygotowanie pakietu w SSIS lub innego mechanizmu, który będzie zapisywał wynik tego widoku na przestrzeni czasu. Dzięki temu analizy będą jeszcze bardziej dokładne oraz będziemy w stanie wyciągnąć jeszcze więcej wniosków.

 

Slawomir Drzymala
Follow me on

Slawomir Drzymala

Still playing with data and .NET technologies
Slawomir Drzymala
Follow me on

Latest posts by Slawomir Drzymala (see all)

Leave a Comment

Your email address will not be published. Required fields are marked *