Blog JSystems - uwalniamy wiedzę!

Szukaj

Power BI - Wydajność modelu i raportu

Za mało pamięci przy odświeżaniu w Power BI Desktop

W skrócie

  • Komunikat, że Power BI ma za mało pamięci przy odświeżaniu w Desktopie, pojawia się, gdy pamięci zabraknie silnikowi Power Query przy ocenie zapytań albo silnikowi modelu przy wczytywaniu danych.
  • Power Query ocenia kilka zapytań naraz, domyślnie tyle, ile logicznych rdzeni ma procesor, i każda ocena może zająć 432 MB. Dochodzą zapytania pomocnicze, buforowanie tabel, skrypty Python i duży model.
  • Sprawdź wersję 64-bitową, ogranicz liczbę jednoczesnych ocen albo ładowanie równoległe, wyłącz ładowanie zapytań pomocniczych, odchudź ciężkie kroki i zmniejsz ilość danych w modelu.

„Za mało pamięci, nie można kontynuować obliczania.” Ten albo inny komunikat o braku pamięci przerywa odświeżanie w Power BI Desktop przy większym zestawie danych albo po dodaniu kilku zapytań. Wyjaśniamy, który element zgłasza brak pamięci, które ustawienia o tym decydują i jak zmniejszyć zużycie bez wymiany komputera.

Jak to wygląda w praktyce

Odświeżanie zatrzymuje się na jednej z tabel i Power BI pokazuje błąd. Jego brzmienie zależy od tego, któremu składnikowi zabrakło pamięci. Silnik Power Query, który ocenia zapytania, zgłasza „Za mało pamięci, nie można kontynuować obliczania.” (w angielskiej wersji: „Evaluation ran out of memory and can't continue.”). Silnik modelu zgłasza „Operacja została anulowana z powodu braku dostępnej pamięci dla aplikacji. Jeśli używasz 32-bitowej wersji produktu, rozważ wykonanie uaktualnienia do wersji 64-bitowej lub zwiększenie ilości pamięci w komputerze.” (w angielskiej wersji: „The operation has been cancelled because there is not enough memory available for the application. If using a 32-bit version of the product, consider upgrading to the 64-bit version or increasing the amount of memory available on the machine.”). Przy otwieraniu dużego pliku pojawia się „W programie Power BI Desktop zabrakło pamięci podczas ładowania modelu danych.” (w angielskiej wersji: „Power BI Desktop ran out of memory loading the data model.”).

Dlaczego tak się dzieje

Odświeżanie ma dwa etapy. Najpierw Power Query ocenia zapytania, czyli wykonuje ich kroki, a potem silnik modelu wczytuje wyniki do pamięci i liczy kolumny obliczeniowe. Według dokumentacji Microsoft Power Query ocenia równolegle domyślnie tyle zapytań, ile logicznych rdzeni ma procesor, a każda ocena może zająć domyślnie do 432 MB. Na komputerze z ośmioma rdzeniami logicznymi to do 3 456 MB na same zapytania. Silnik modelu wykonuje przy tym domyślnie do 6 zadań naraz.

Pamięć zjadają też zapytania pomocnicze z włączonym ładowaniem, które trafiają do modelu jako zbędne tabele, kroki buforujące całe tabele, na przykład Table.Buffer, i skrypty Python. W modelu Nordvelli zapytanie FaktSprzedaz przekazuje całą tabelę 108 675 wierszy do skryptu Python jako ramkę danych pandas i robi jej kopię, żeby dopisać kolumny Sezon i CzyAnomalia. Sam rozmiar modelu zależy głównie od kolumn o dużej kardynalności, które opisujemy w poście o pliku .pbix, który rośnie przez kolumny o dużej kardynalności.

Co zrobić krok po kroku

  1. Sprawdź wersję. W Power BI Desktop kliknij Plik, Informacje i upewnij się, że przy numerze wersji jest oznaczenie 64-bit. Według dokumentacji Microsoft wersja 32-bitowa nie jest już wspierana, a Power BI Desktop wymaga co najmniej 2 GB dostępnej pamięci, zalecane są 4 GB lub więcej. Na czas odświeżania zamknij inne programy, które zajmują dużo pamięci.
  2. Ogranicz równoległe oceny zapytań. Wejdź w Plik > Opcje i ustawienia > Opcje, w sekcji Globalne wybierz Ładowanie danych i w grupie Równoległe ładowanie tabel zmniejsz Maksymalna liczba jednoczesnych ocen, na przykład z 8 do 4, czyli do 1 728 MB przy domyślnym limicie na ocenę. Gdy błąd zgłasza Power Query przy jednym dużym zapytaniu, podnieś Maksymalna ilość używanej pamięci na jednoczesną ocenę (MB). Dokumentacja zaleca nie schodzić poniżej 256 MB i nigdy nie ustawiać więcej niż 90% pamięci komputera.
  3. Ogranicz ładowanie równoległe tabel w pliku. W tym samym oknie, w sekcji Bieżący plik > Ładowanie danych, grupa Równoległe ładowanie tabel ma ustawienie domyślne z sześcioma zadaniami, wartość Jeden (wyłącz ładowanie równoległe) i własną liczbę od 1 do 30. Według dokumentacji mniejsza liczba zadań zmniejsza zużycie zasobów komputera. Wartość z jednym zadaniem zwykle wydłuży odświeżanie, bo tabele wczytają się po kolei.
  4. Wyłącz ładowanie zapytań pomocniczych. W edytorze Power Query kliknij prawym przyciskiem zapytanie, które służy tylko innym zapytaniom, i odznacz Włącz ładowanie. Nazwa zapytania zmieni się na kursywę, a model nie dostanie zbędnej tabeli. Ten sam problem w Excelu opisujemy w poście o zapytaniach pośrednich ładowanych do arkuszy.
  5. Odchudź ciężkie kroki. Table.Buffer trzyma tabelę w pamięci tylko w ramach jednego wykonania zapytania, więc każde zapytanie, które z niego korzysta, buforuje ją osobno. Skrypt Python dostaje całą tabelę naraz: gdy dopisuje proste kolumny, jak Sezon liczony w Nordvelli z miesiąca, ten sam wynik da kolumna warunkowa w Power Query albo kolumna w tabeli kalendarza. Gdy kroki muszą zostać, filtruj wiersze przed nimi, a nie po nich.
  6. Zmniejsz ilość danych. Dokumentacja Microsoft zaleca ładować tylko potrzebną historię, na przykład filtrem dat opartym na parametrze, i usuwać kolumny, których nie używa raport ani model. Wzór kroku niżej dopasuj do nazw ze swojego zapytania. Przy dużych tabelach faktów w usłudze pomaga też odświeżanie przyrostowe, które opisujemy w lekcji o odświeżaniu przyrostowym.
    // Power Query (M): wzór filtra historii, DataOd to parametr typu data
    TylkoOstatnie = Table.SelectRows(
        PoprzedniKrok,
        each [Data] >= DataOd
    )

Jak sprawdzić, że problem zniknął

Po zmianie ustawień kliknij Odśwież na karcie Narzędzia główne i sprawdź, czy odświeżanie przechodzi. Zanotuj, które ustawienie pomogło. Opcje z sekcji Bieżący plik zapisują się w pliku raportu, więc w nowym projekcie trzeba je ustawić od nowa, a opcje z sekcji Globalne dotyczą programu na tym komputerze. Według dokumentacji Microsoft ustawienia ocen Power Query działają tylko w Power BI Desktop, nie w usłudze Power BI.

Pilnuj rozmiaru modelu: usuwaj zbędne kolumny, wyłącz automatyczną datę i godzinę i sprawdzaj, czy odświeżanie nie wykonuje tych samych kroków kilka razy, o czym piszemy w poście o zapytaniach liczonych wiele razy.

Źródła i sposób sprawdzenia

  • Microsoft Learn: Evaluation configuration settings for Desktop (źródło)
  • Microsoft Learn: Get Power BI Desktop (wymagania, wersja 64-bitowa) (źródło)
  • Microsoft Learn: Data reduction techniques for Import modeling (źródło)
  • Microsoft Learn: Referencing Power Query queries (Table.Buffer) (źródło)
  • Sprawdzone zapytaniem DAX na modelu Nordvelli: tekst zapytania FaktSprzedaz ze skryptem Python i liczba wierszy tabel.

Zachowanie programu sprawdziliśmy w Power BI Desktop 2.157 (wydanie z sierpnia 2026 r.) z polskim interfejsem, a przykłady na modelu sieci Nordvella z bezpłatnego kursu Power BI. Microsoft wydaje nową wersję Power BI Desktop co miesiąc, więc nazwy przycisków i limity usługi mogą się zmieniać. Aktualne wartości podaje dokumentacja Microsoft Learn.

Wróć do listy: 131 najczęstszych pytań i problemów związanych z Power BI

Najczęściej zadawane pytania

Co zrobić, gdy Power BI Desktop zgłasza za mało pamięci przy odświeżaniu?
Sprawdź, czy używasz 64-bitowej wersji, i zmniejsz liczbę zapytań ocenianych naraz w opcjach Globalne, Ładowanie danych, Równoległe ładowanie tabel. W opcjach bieżącego pliku możesz też ograniczyć ładowanie równoległe tabel. Potem wyłącz ładowanie zapytań pomocniczych, odchudź ciężkie kroki i zmniejsz ilość danych w modelu.
Ile pamięci RAM potrzebuje Power BI Desktop?
Według dokumentacji Microsoft co najmniej 2 GB dostępnej pamięci, zalecane są 4 GB lub więcej. Przy odświeżaniu każda ocena zapytania Power Query może domyślnie zająć do 432 MB, a ocen jest naraz tyle, ile logicznych rdzeni ma procesor. Na ośmiu rdzeniach logicznych to do 3 456 MB na same zapytania.
Jak wyłączyć równoległe ładowanie tabel w Power BI Desktop?
Wejdź w Plik, Opcje i ustawienia, Opcje, a w sekcji Bieżący plik wybierz Ładowanie danych. W grupie Równoległe ładowanie tabel zaznacz Jeden (wyłącz ładowanie równoległe). Tabele wczytają się po kolei, co zmniejsza zużycie zasobów, ale zwykle wydłuża odświeżanie.
Czy 32-bitowy Power BI Desktop może powodować brak pamięci?
Tak, sam komunikat silnika o braku pamięci podpowiada przejście na wersję 64-bitową. Według dokumentacji Microsoft wersja 32-bitowa nie jest już wspierana. Wersję sprawdzisz w menu Plik, Informacje, gdzie przy numerze wersji powinno być oznaczenie 64-bit.

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...