Power BI: sprawdzone praktyki dla wydajnych modeli danych

VertiPaq Analyzer w DAX Studio: kardynalność i rozmiar kolumn w modelu Power BI

Model danych wygląda poprawnie, a mimo to raport działa wolno? Przyczyna może tkwić głębiej – w nadmiarowych kolumnach, nieoptymalnym typie danych, nieużywanych miarach czy źle skonstruowanej tabeli kalendarza.

W tym artykule zebrałam 14 sprawdzonych praktyk, które pomogą Ci nie tylko przyspieszyć działanie raportów, ale też lepiej zorganizować model i ułatwić jego rozwój. Od czyszczenia danych u źródła, przez wybór odpowiednich typów danych, po stosowanie Calculation Groups i tworzenie folderów – to zestaw wskazówek oparty na latach doświadczeń.

Sprawdź, które z nich możesz wdrożyć u siebie – i usprawnij pracę z Power BI już dziś.

Zbiór dobrych praktyk

1. Im mniej kolumn, tym lepiej

Dlaczego? Power BI wykorzystuje kolumnową bazę danych, co pozwala na skuteczną kompresję danych. Im mniej kolumn w tabeli, tym mniej informacji musi być przechowywane i przetwarzane przez silnik pamięci, co poprawia wydajność.

Wskazówka: Nie ładuj wszystkich kolumn „na zapas” – wczytuj tylko te, które faktycznie są potrzebne do raportowania.

Tabela faktów w Power BI z kolumnami podróży: daty, czas trwania, koszty noclegu i transportu

2. Stosuj odpowiednie typy danych

Dlaczego? Power BI wewnętrznie optymalizuje dane w zależności od typu. Typy takie jak liczby całkowite są najbardziej wydajne pamięciowo. Typ Data, Liczba dziesiętna, czy Prawda/Fałsz też mogą być efektywne, ale warto unikać nadmiernego użycia typów tekstowych.

Wskazówka: Zawsze w miarę możliwości używaj najprostszego typu danych potrzebnego do analizy.

Profil kolumn w Power Query: jakość danych i liczba unikatowych wartości w każdej kolumnie

3. Unikaj wartości skrajnych i odstających

Dlaczego? Wartości bardzo niskie lub bardzo wysokie (np. 9999 jako data końcowa) mogą powodować, że Power BI nie będzie mógł użyć najoszczędniejszego kodowania wartości (value encoding) i przejdzie na kodowanie słownikowe, co pogorszy wydajność. Wynika to z faktu, że gdy wartości są zapisywane w postaci liczb całkowitych, model musi wziąć pod uwagę wszystkie możliwe wartości od najmniejszej do największej wartości w kolumnie.

Wskazówka: Zamiast sztucznych zaślepek (np. 9999-12-31) pozostaw wartość pustą. Nie wpisuj średniej w miejsce braków, bo zafałszuje to wyniki analizy.

Wykres punktowy z jedną wartością odstającą (outlier) daleko od pozostałych punktów

4. Duża liczba wierszy to nie problem – różnorodność danych już tak

Dlaczego? Power BI radzi sobie dobrze z dużą liczbą wierszy, ale problemy pojawiają się, gdy w kolumnach znajduje się wiele różnych, unikalnych wartości – wtedy potrzebna jest większa ilość pamięci do ich przechowania. Wysoka liczba unikatowych wartości w kolumnie obniża współczynnik kompresji danych i zwiększa rozmiar modelu.

Wskazówka: Staraj się nie ładować niepotrzebnie szczegółowych danych (np. unikalnych ID transakcji, jeśli nie są potrzebne).

VertiPaq Analyzer w DAX Studio: kardynalność i rozmiar kolumn w modelu Power BI

5. Zastanów się, czy potrzebujesz całej historii

Dlaczego? Często ładowanie danych historycznych z wielu lat nie jest potrzebne. Mniejsze modele danych są szybsze i bardziej efektywne.

Wskazówka: Ładuj dane tylko z ostatnich lat lub filtruj dane na etapie ładowania (np. ostatnie 3 lata).

Wykres liniowy danych historycznych od 1995 do 2025 roku

6. Monitoruj rozmiar modelu i jego wydajność

Używaj narzędzi takich jak DAX Studio do monitorowania rozmiaru pliku modelu i sprawdzania jego wydajności.

Wskaźnik prędkości jako symbol monitorowania wydajności modelu

7. Usuwaj nieużywane kolumny, miary i tabele

Dlaczego? Każda kolumna, miara czy tabela zajmuje miejsce w pamięci i zwiększa złożoność modelu, nawet jeśli nie jest używana. To może obniżyć wydajność i utrudniać zarządzanie modelem.

Wskazówka: Regularnie przeglądaj swój model – np. za pomocą narzędzi (jak DAX Studio lub Bravo) – i usuwaj elementy, które nie są używane w raportach, miarach ani relacjach.

8. Wyłączaj miary niejawne (implicit measures)

Dlaczego? Power BI automatycznie tworzy miary dla pól liczbowych (np. SUM, COUNT), które nie zajmują pamięci, ale wprowadzają niepotrzebny bałagan: każdy może zsumować pole po swojemu, a wyniki w raportach przestają być spójne.

Wskazówka: W zakładce Table view kliknij na pole i w sekcji „Properties” ustaw „Don’t summarize”. Dla całego modelu: w widoku Model view zaznacz we właściwościach modelu Discourage implicit measures.

Ustawienie Podsumowanie w Power BI z opcją Nie sumuj

9. Unikaj kolumn kalkulowanych (calculated columns)

Dlaczego? Kolumny kalkulowane są obliczane przez silnik analityczny (VertiPaq) po załadowaniu danych, co oznacza dodatkowe zużycie pamięci i wolniejsze odświeżanie. Są też mniej wydajne niż kolumny wyliczane w źródle lub Power Query.

Wskazówka: Jeśli możesz, twórz kolumny w Power Query (M) lub w zapytaniu źródłowym (np. SQL), gdzie obliczenia są wykonywane tylko raz przed załadowaniem danych do modelu.

Wstążka Power BI z przyciskami Nowa miara, Nowa kolumna, Nowa tabela i Grupa obliczania

10. Oczyszczaj dane na poziomie źródła

Dlaczego? Przetwarzanie danych jak najbliżej źródła (np. w SQL lub Power Query) pozwala zmniejszyć ilość danych ładowanych do Power BI, co poprawia wydajność i skraca czas odświeżania. Model staje się też bardziej przejrzysty i łatwiejszy do utrzymania.

Wskazówka: Filtruj dane w Power Query lub zapytaniach SQL – np. ogranicz zakres dat, wybierz tylko potrzebne kolumny i wykonaj obliczenia (np. kategorie, flagi, statusy) jeszcze przed importem do modelu.

Logo Power Query

11. Używaj grup obliczanych (Calculation Groups), aby zminimalizować powtarzalność miar

Dlaczego? Grup obliczeniowych możesz użyć do dynamicznych modyfikacji miar (np. porównań YTD, MTD, QoQ, YoY) bez potrzeby ich duplikowania. Dzięki temu Twój model jest lżejszy, łatwiejszy w utrzymaniu i bardziej elastyczny.

Wskazówka: Twórz grupy obliczeniowe w narzędziu Tabular Editor 2 lub 3 lub Power BI w zakładce „Model view„

Grupa obliczeniowa Time Intelligence z elementem Current w widoku modelu Power BI

12. Korzystaj z tabeli kalendarza oznaczonej jako tabela dat

Dlaczego? Funkcje czasu w DAX (np. TOTALYTD, SAMEPERIODLASTYEAR, DATESYTD) działają dobrze, jeśli masz oznaczoną tabelę dat (Date Table). Brak jej oznaczenia może prowadzić do błędnych wyników lub ograniczonej funkcjonalności.

Tabela dat w DAX zbudowana z CALENDARAUTO i ADDCOLUMNS

https://www.sqlbi.com/articles/mark-as-date-table/

Porównanie podejść:

PodejścieZaletyWady
Power Query (M)
  • Tworzenie kalendarza przy ładowaniu danych
  • Możliwość dynamicznego ustawienia zakresu dat
Mniejsza elastyczność przy analizach opartych na DAX
DAX
  • Możliwość dynamicznego generowania kalendarza w modelu
  • Łatwość użycia CALENDAR() lub CALENDARAUTO()
Więcej zasobów zużywanych w modelu
Źródło danych
  • Jednolitość kalendarza w całej organizacji
  • Możliwość dodania dni roboczych, świąt itd.
Często wymaga integracji i synchronizacji z innymi danymi. Zmniejsza elastyczność przy filtrowaniu danych w modelu.

Wskazówka: Używaj podejścia, które najlepiej pasuje do Twojego środowiska – dla pełnej kontroli i złożoności (np. święta, tygodnie ISO) rozważ kalendarz z hurtowni danych; dla elastyczności – PQ lub DAX.

13. Przechowuj wszystkie miary w jednej tabeli z podziałem na foldery i podfoldery

Dlaczego? Przeniesienie wszystkich miar do jednej dedykowanej tabeli (np. „_Miary”) upraszcza model i ułatwia użytkownikom odnalezienie odpowiednich kalkulacji. Foldery tematyczne zwiększają czytelność.

Wskazówka: Utwórz pustą tabelę w Power BI, dodaj do niej wszystkie miary, a następnie w zakładce „Model” nadaj im foldery (np. Sprzedaż / Rok bieżący / Wzrost%).

Tabela _Miary z folderami Dynamiki, Koszty i Udziały w panelu Dane w Power BI

14. Korzystaj z parametrów dla źródeł danych

Dlaczego? Parametry pozwalają dynamicznie sterować zakresem ładowanych danych, np. określić datę początkową, środowisko (DEV/PROD), użytkownika czy region. Ułatwia to testowanie oraz rozwój modelu i zapobiega ładowaniu zbędnych danych.

Wskazówka: Zastosuj parametr np. dla roku początkowego danych (StartYear) lub ogranicz dane do ostatnich 90 dni, aby przyspieszyć ładowanie

Okno Manage parameters w Power Query z parametrem opartym na liście wartości

Chcesz sprawdzić swój model punkt po punkcie?

Checklista Model Semantyczny to darmowa lista kontrolna modelu danych w Power BI. Przejdź przez nią przy następnym raporcie i zobacz, co jeszcze możesz odchudzić.

Pobierz Checklistę Model Semantyczny →

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

Koszyk