Database level analysis

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

Wstęp

Analysis Services, jak już wspomniano we wcześniejszych postach (zobacz: https://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:

select 
	object_parent_path,
	object_id,
	object_cpu_time_ms,
	object_reads,
	object_read_kb,
	object_writes,
	object_write_kb,
	object_aggregation_hit,
	object_aggregation_miss,
	object_hit,
	object_miss,
	object_version,
	object_data_version,
	object_rows_scanned,
	object_rows_returned
from $system.DISCOVER_OBJECT_ACTIVITY

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

Leave a Reply