/ / Przyspieszenie czasu odświeżania wielu tabel przestawnych za pomocą pojedynczego zewnętrznego modułu OLAP - excel, vba, ciąg połączenia, tabela przestawna, sześcian

Przyspieszenie czasu odświeżania wielu tabel przestawnych za pomocą pojedynczego zewnętrznego modułu OLAP - excel, vba, ciąg połączenia, tabela przestawna, sześcian

Mam Office Data Connection (ODC) wskazane na kostce OLAP przechowywane na serwerze naszej firmy. Ciąg połączenia jest dość prosty:

Provider=MSOLAP.6;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=Reporting Model;Data Source=SQL03;MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error

Korzystając z tej kostki, utworzyłem plik Excelz wieloma tabelami przestawnymi, po jednym na arkusz roboczy. Wszystko działa poprawnie, ale po odświeżeniu tabel przestawnych w celu pobrania najnowszych danych każda z tabel przestawnych jest odświeżana osobno, co oznacza, że ​​dla każdej tabeli przestawnej są wyświetlane następujące połączenia za pomocą połączenia z kostką:

  1. Odświeżanie kostki OLAP
  2. Uruchamianie zapytania OLAP

Czy istnieje rozwiązanie, które wymaga tylko jednego odświeżenia, a wszystkie pivotables je udostępniają? Spróbowałem, aby wszystkie tabele przestawne używały tej samej pamięci podręcznej, ale próbowały ustawić pamięć podręczną PIVOT, używając:

Sheets("Pivot").PivotTables(1).CacheIndex = 1

kończy się w Błąd wykonania "1004": Błąd zdefiniowany w aplikacji lub obiekt

Czy istnieje sposób na to, aby wszystkie tabele przestawne w jakiś sposób udostępniały źródło danych?

Być może po utworzeniu lokalnej kopii modułu OLAP podczas otwierania pliku lub buforowaniu tabeli przestawnej w inny sposób?

Grałem z VBA znalezionym na http://www.contextures.com/xlPivot11.html ale wydaje się, że wszystkie dane pochodzą z lokalnego źródła.

Odpowiedzi:

0 dla odpowiedzi № 1

Pojęcie "pamięci podręcznej" dla węzłów opartych na OLAP jest zupełnie inne niż dla osi bazujących bez OLAP. Zgodnie z https://support.microsoft.com/en-us/kb/234700

Pivots na podstawie danych OLAP, tylkopodsumowane dane są zwracane do programu Excel, w zależności od potrzeb. Z zewnętrznymi bazami danych innymi niż OLAP, wszystko poszczególne rekordy źródłowe są zwracane, a następnie program Excel robi zreasumowanie.

W związku z tym bazy danych OLAP mogą zapewnić programowi Excel taką możliwość analizować znacznie większe ilości danych zewnętrznych.

Ale w związku z tym prawdopodobnie nie jest to możliwe lubpożądane "buforowanie" podstawowych danych w Excelu bez wykonywania na nim istotnych agregacji. Ale może to jest rozwiązanie: skompiluj tabelę przestawną potwora w każdym polu, które chcesz zgłosić, a następnie zbuduj interfejs raportowania, który po prostu odwołuje się do tej tabeli przestawnej potwora za pomocą funkcji GETPIVOTDATA.