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.
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.
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.
- Docker dla amatora danych – Tworzenie środowiska (VM) w Azure i VirtualBox (skrypt) - April 20, 2020
- Power-up your BI project with PowerApps – materiały - February 5, 2020
- Docker dla “amatora” danych – kod źródłowy do prezentacji - November 18, 2019
Last comments