Forum > Software > Wydajność Excela

Strona 1 z 2 12>>>
skocz

Inferno

Wysłane 2014-09-04 11:00

Jak to jest z tą wydajnością Excela ? Ponoć służy on do przetwarzania dużych ilości informacji.

Mam sobie raport, który potrafi mieć formuły w więcej niż 700 000 tysiącach komórek. Sam plik zajmuje około 20 MB. Niestety potrafi on się uruchamiać nawet 20 minut, wykonanie operacji np. dodanie arkusza trochę trwa. Aktualizacja samego skoroszytu - obliczanie, też trwa kwadrans bądź dłużej.

Jak podzieliłem arkusz na więcej części, aby nie było w jednym tak dużo danych to się polepszyło. Znacząco. Ale i tak aby otworzyć trzeba czekać z minutę może. Obliczanie dalej dużo trwa.

Wielowątkowość włączone (komputer z 4 wątkami, bądź inny z dwoma).

Jak sobie radzicie z takimi wielkimi danymi ?

koradon

Wysłane 2014-09-04 11:24

SSD, ewentualnie RAID, a najlepiej RAID z SSD

MSI GT72 2QE (SSD+HDD, W8.1->W10) + Dell U2412M, Samsung Galaxy Note 4 N910F,

szarlih

Wysłane 2014-09-04 11:26

nie wiem czy projektanci Excela wzięli to pod uwagę. 
a radzimy sobie poprzez hurtownie danych, formuły zamienia się na procedury i widoki, a Excelem podłącza tylko po wyniki, ewentualnie jeszcze lepiej dostęp przez raporty i formularze.

to wyżej to nie prawdy objawione tylko moje prywatne opinie « R7 3700X ⇔ Aorus X570 Elite ⇔ RTX 3070 ⇔ 32GB DDR4 ⇔ 2x EV2450BK ⇔ G815 + G903 HERO »

adir

  • adir
  • wiadomość Użytkownik

  • 974 wypowiedzi

Wysłane 2014-09-04 11:29

A jak myślisz dlaczego kiedyś arkusz Excel'a miał ograniczenie do 65536 wierszy :)
Może spróbuj Openoffice / libreofce Calc może będzie szybszy choć nie wiem jak z kompatybilnością formuł.





i5-13500, Gigabyte B760 GAMING X, MSI RTX 4060 GAMING X, Kingston FURY Renegade Black DDR4 32GB 3600MHz CL16, Kingston KC3000 2TB M.2, Spartan 5 max

koradon

Wysłane 2014-09-04 11:55

Zapomnij o libreoffice. Szkoda nerwów.

To co pisze szarlih wydaje się sensowne. Jeżeli sprzętowo tylko dużo RAMu i SSDki.

MSI GT72 2QE (SSD+HDD, W8.1->W10) + Dell U2412M, Samsung Galaxy Note 4 N910F,

kowgli

  • kowgli
  • wiadomość Użytkownik

  • 4367 wypowiedzi

Wysłane 2014-09-04 14:24

@Inferno

Nie wiem skąd zdanie, że radzi sobie z tak dużą ilością danych. Przecież to zupełnie nie do tego służy. Przy takim wolumenie należy korzystać z wyspecjalizowanych narzędzi analitycznych we współpracy z prawdziwym serwerem bazodanowym, a nie z programu biurowego. 
Excel może służyć do analizy i wizualizacji juz zagregowanych i przeliczonych danych, a nie do ich przetwarzania. W tej roli spisuje się wyśmienicie, szczególnie z użyciem Power Pivot. 

Proponowania darmowych "odpowiedników", nawet nie ma co komentować... 

freebsd

Wysłane 2014-09-04 16:25

@koradon - 20MB pliku siedzi w cache (w ram'ie), więc dysk nie ma nic do tego.
@szarlih - dobre pytanie, ale 20 lat temu. Proszę Cię... hurtownie to do TB a nie MB danych. Tak... widoki przyspieszą przetwarzanie danych..., szczególnie pod MS SQL...
@koradon - wykonywałeś test porównawcze OO/LO z MS Office? Podzielisz się danymi? Skąd takie stwierdzenia? Patrz, ja mam zupełnie odwrotne spostrzeżenia - szkoda nerwów na MS Offica.
@kowgli - znajoma księgowa od firmy kodującej rożne mistrzostwa przesyła e-mailem pliki Excela od 50MB do 100MB i jej komputer "deje radę" z takimi plikami.

@Inferno - zidentyfikuj co zajmuje najwięcej czasu w przetwarzaniu pliku. Jakiś błąd programisty, jaka pętla w pętli, join w join?

Blog: http://jackiewiczowie.blogspot.com/

scud1

  • scud1
  • wiadomość Użytkownik

  • 383 wypowiedzi

Wysłane 2014-09-04 18:03 , Edytowane 2014-09-04 18:04

Hmmm... Taka tylko informacja - Excel 2013 radzi sobie z plikiem CSV rozmiaru 350MB bez zamulania. No ale tam formuł nie ma - to one mogą spowalniać... To zostaje chyba tylko jak radzili przedmówcy - SSD.

Maveriq

Wysłane 2014-09-04 18:08 , Edytowane 2014-09-04 18:09

20MB pliku siedzi w cache (w ram'ie), więc dysk nie ma nic do tego.

To odpal sobie plik excel, który ma kilka MB i zobacz ile Ci się zwiększy użycie pamięci RAM.
Rozmiar pliku nie jest tu miarodajny, bo jest bardzo mocno skompresowany.

Ale procesor też ma znaczenie w Excel.

Ryzen R5 3600; SPC Fortis 3; ROG STRIX B550-A GAMING; 2x32GB Kingston Fury Beast 3200MHz CL16; XFX RX580 OC BLK; 1TB Kingston SNV2S1000G + 1TB WD Blue; Tonsil Fenix II Front + Technics SU600; Seasonic G12-GM-650; LCD Iiyama XB2483HSU; Microsoft Natural Ergo 4000; Gigabyte M8000x.

freebsd

Wysłane 2014-09-04 21:18

@ Maveriq - jak to co napisałeś ma się do szybkości odczytu z dysku 20MB? W czym ma pomóc tu dysk SSD? 
To chyba(?) oczywiste, że zużycie pamięci zwiększy się po uruchomieniu aplikacji i wczytaniu danych... tylko, że plik fizycznie odczytany będzie jednokrotnie.  W uproszczeniu: od tej pory plik "znajdzie się w cache" i to z RAM'u będą odczytywane kolejne dane do przetwarzania. Dysk SSD pomoże (minimalnie) jeśli plik  będzie mieć wspomniane powyżej 350MB. Zakładam, że to nie brak pamięci jest problemem komputerów Inferno.

Blog: http://jackiewiczowie.blogspot.com/

Maveriq

Wysłane 2014-09-04 21:26

Tylko on może zająć w pamięci tyle miejsca, że się w niej nie mieści i co wtedy?

Ryzen R5 3600; SPC Fortis 3; ROG STRIX B550-A GAMING; 2x32GB Kingston Fury Beast 3200MHz CL16; XFX RX580 OC BLK; 1TB Kingston SNV2S1000G + 1TB WD Blue; Tonsil Fenix II Front + Technics SU600; Seasonic G12-GM-650; LCD Iiyama XB2483HSU; Microsoft Natural Ergo 4000; Gigabyte M8000x.

Inferno

Wysłane 2014-09-04 21:43

Panowie bez nerwów.
Moim zdaniem dysk nie stanowi problemu - z pendrajwa tak samo długo się otwiera jak z normalnego dysku. Zresztą to tylko 20MB wczytać a potem już przetwarzanie w pamięci - nic z dysku nie leci. Po otworzeniu, Excel zajmuje według menedżera programów 500MB minimum.
Korzystałem wcześniej z LibreOffice, bo wolałem pakiet darmowy - do domu idealny i nawet nadto. Ale zauważyłem, że on jeszcze gorzej sobie radził raportami, z którymi Office Microsoftu sobie spokojnie dawał rady.
Wydawało mi się, że Excel służy do dużej ilości danych - teraz to nawet mam wiersz o numerze 100 000, więc powinien sobie radzić ?


@szarlih @kowgli
Co to za rodzaj wyspecjalizowanych programów analitycznych i hurtowni danych ? Na czym się one opierają ? Przykłady takich programów ?




@freebsd
W zasadzie nie wiem, co powoduje błąd, że się tak długo otwierają. Podzieliłem skoroszyt na 9 arkuszy. Z 15 minut zeszło poniżej 1 minuty, choć z zegarkiem nie pilnowałem.

Mam makro:

Private Sub Workbook_Open()
Application.CalculateBeforeSave = False
Application.Calculation = xlCalculationManual
End Sub


Aby program automatycznie sam nie przeliczał za każdym razem, gdy coś naskrobię, bo to nerwów idzie dostać.

Zrobiłem test - w komórkach zapisałem wartości, nie formuły - zostało kilka tych formuł, ale to mniejszość. Sam plik zajmuje na dysku niecałe 12 MB, a uruchamia się, chyba szybciej, może o kilka sekund, ale też z zegarkiem nie stałem.
To, że wykonanie kwerendy może trwać dłużej, to rozumiem - przecież nawet w SQL Management, jak wykonuję to zapytanie, też trwa długo, więc tutaj się nie czepiam. Ciekawi mnie, że długo oblicza arkusz. Ale winą jest to, że niestety, ale te komórki wykorzystują formułę Suma.Warunków, lepszej metody nie mam i te kilkaset tysięcy komórek wyszukuje kilka(dziesiąt) tysięcy wierszy więc ta operacja jest bardzo wolna. Niestety nie znam lepszego sposobu, a interesujące mnie dane mogą być w kilku wierszach, a różnić się np. jednym warunkiem z 5.

Tutaj głównie chodzi o uruchamianie Excela - stoi na tym ekranie powitalnym (albo pasek postępu otwierania jest praktycznie zapełniony), nic się nie rusza i nagle pojawia się skoroszyt. Przy 20 minutach, to się zastanawiałem, czy warto czekać, bo nie wiem czy się zawiesił. Teraz jest dużo lepiej, poczekam 1 minutę i już wiem, czy coś się nie popsuło czy nie.

freebsd

Wysłane 2014-09-04 21:47 , Edytowane 2014-09-04 21:48

@ Maveriq -  to co w takim wypadku co najlepiej jest zrobić? 
1) Wymienić dysk na SSD?
2) Dokupić pamięci RAM?
3) Sprawdzić poprawność przetwarzania danych, formuły, makra, czy co tam jest użyte.
4) Zmienić system na 64 bitowy?

Blog: http://jackiewiczowie.blogspot.com/

freebsd

Wysłane 2014-09-04 22:14

@ Inferno - propozycja z serii głupich pomysłów... Czy możesz usunąć puste, nieużywane wiersze na końcu arkusza (użyj "usuń wiersze"), zapisać go i sprawdzić czas uruchomienia?

Blog: http://jackiewiczowie.blogspot.com/

szarlih

Wysłane 2014-09-04 22:27

@Inferno
Hurtownia to baza danych przystosowana do analizy informacji, robienia raportów, drążenia. Wolno zapisuje, szybko pobiera ewentualnie dokonując przekształceń.(duże uproszczenie). 

@freebsd
odpowiednio napisane widoki - oczywiście. a dla hurtowni nie ma tak dużego znaczenia ilość danych jak złożoność przekształceń. tworząc odpowiednie wymiary unikasz przekształcania w locie, pobierasz od razu odpowiednie dane co jest szybkie. może się opłacać dla MB. a jeżeli się nie opłaca to tylko kwestia ekonomiczna, a nie niedostosowania do problemu.

to wyżej to nie prawdy objawione tylko moje prywatne opinie « R7 3700X ⇔ Aorus X570 Elite ⇔ RTX 3070 ⇔ 32GB DDR4 ⇔ 2x EV2450BK ⇔ G815 + G903 HERO »

krymtON

Wysłane 2014-09-05 10:40

@Inferno - próbowałeś z MS Accesem? Może zastąpi Excela, bazuje w końcu na SQL.

Graty jak każde inne ;)

Inferno

Wysłane 2014-09-05 13:06

@freebsd
Excel nie ma dodatkowych wierszy, czy kolumn. Przy zapisywaniu sam usuwa te puste. Przy kilku arkuszach usunąłem tak na wszelki wypadek, ale nie widzę różnicy.


@krymtON
Powoli w Accesa będę się wdrażał. Zobaczę, jakie ma możliwości. W zasadzie używam Excela, bo trzeba czasem zmienić jakąś wartość przy wyszukiwaniu (np. rok, miesiąc) i najłatwiej to właśnie w Excelu. Np. tworzy się plan z jakiegoś innego roku (bądź dwóch), no i aktualny rok, jak to wygląda. Podział na miesiące, i leci. Prawdopodobnie, dobrze zbudowane zapytanie SQL, VBA do zmiany zmiennych i leci do tabeli przestawnej :) Tylko 3 zapytania troszkę się mogą różnić kolumnami, ale mają też kilka części wspólnych.

krymtON

Wysłane 2014-09-05 14:13

@Inferno - nie wiem czy tak jest faktycznie, ale podejrzewam, że Excela da się spiąć z bazą danych Accessa (jako dostawca danych) i na tej podstawie generujesz tabele przestawne - podobnie jak z SQL. Musiałbyś zgłębić temat, ale na pewno da się w ten deseń rozwiązać problem.

(PS. Excel potrafi zapisać puste wiersze/kolumny - spróbuj coś zapisać do CSV :-P).

Graty jak każde inne ;)

freebsd

Wysłane 2014-09-06 01:08

@Inferno -  możesz wykonać jeszcze taki test: w każdym arkuszu ctrl+A i  "Clear"/"Clear Formats" ?

Blog: http://jackiewiczowie.blogspot.com/

Panzer

  • Panzer
  • wiadomość Użytkownik

  • 5181 wypowiedzi

Wysłane 2014-09-06 08:23 , Edytowane 2014-09-06 08:24

@Inferno
Tak z czystej ciekawości. Jaki konkretnie jest procesor w tym kompie? 

MacBook Air M1 16GB/1TB | iPhone 15 Plus 512GB | iPad Pro 11 512GB |  TV 4K 128GB | Xbox Series X | Kindle Oasis 32GB | HomePod Mini x8
Strona 1 z 2 12>>>
skocz

Kto jest online: 1 użytkowników, 248 gości

mee ,