Wyświetlanie i przekształcanie modelu danych
                Przeglądarka modelu danych przedstawia przegląd struktury danych aplikacji. Można przeglądać szczegółowe metadane na temat tabel i pól. Dodatkowo można tworzyć nowe wymiary i miary z pól danych.
Kliknij pozycję Przeglądarka modelu danych w menu nawigacyjnym aplikacji, aby otworzyć przeglądarkę modelu danych.
Każda tabela danych jest reprezentowana przez pole zawierające nazwę tabeli jako tytuł i listę wszystkich pól z tabeli. Asocjacje w tabeli są przedstawione za pomocą linii, a linia kropkowana oznacza odwołanie cykliczne. W przypadku wyboru tabeli lub pola podświetlenie asocjacji natychmiast przedstawia obraz powiązań pól i tabel. Konkretne tabele i pola można wyszukiwać, klikając pozycję .
Model danych wyświetla strukturę danych aplikacji.

Poziom powiększenia można zmienić, klikając , 
 albo używając suwaka. Aby przywrócić poziom powiększenia do 1:1, kliknij 
.
Panel podglądu umożliwia zapoznanie się z zawartością tabeli lub pola. Po wybraniu pola można też dodawać do aplikacji wymiary i miary. Więcej informacji zawiera temat Podgląd tabel i pól w przeglądarce modelu danych.
Przenoszenie tabel
Tabele można przenosić, przeciągając je po kanwie. Pozycje tabel są zapisywane w chwili zapisania aplikacji.
Układ tabel, czyli ich pozycje i rozmiary, można zablokować, klikając przycisk  w prawej części kanwy. Aby odblokować układ tabel, kliknij przycisk 
.
Opcje menu  na pasku narzędzi umożliwiają automatyczne dobranie układu:
| Element interfejsu użytkownika | Nazwy | Opis | 
|---|---|---|
| 
                                 | 
                            Układ siatki | Rozmieszcza tabele na siatce. | 
| 
                                 | 
                            Automatyczny układ | Dopasowuje rozmieszczenie tabel do rozmiaru okna. | 
| 
                                 | 
                            Przywróć układ | Przywraca stan układu z chwili ostatniego otwarcia przeglądarki modelu danych. | 
Zmiana rozmiaru tabel
Ikona strzałki w prawym dolnym rogu tabeli umożliwia zmianę rozmiaru ekranowego tabeli. Rozmiar ekranowy nie jest zapisywany w chwili zapisania aplikacji.
Na pasku narzędzi są też dostępne opcje automatycznego rozmiaru ekranowego:
| Element interfejsu użytkownika | Nazwy | Opis | 
|---|---|---|
| 
                                 | 
                            Zwiń wszystko | Minimalizuje wszystkie tabele, aby były widoczne tylko ich nazwy. | 
| 
                                 | 
                            Pokaż połączone pola | Zmniejsza obszar zajmowany przez tabele, wyświetlając jedynie nazwę tabeli i pola skojarzone z innymi tabelami. | 
| 
                                 | 
                            Rozwiń wszystkie | Maksymalizuje wszystkie tabele, aby były widoczne wszystkie ich pola. | 
Wydajność modelu danych
Są to wskaźniki, które mogą mieć wpływ na wydajność modelu danych. Każdy z nich stanowi najlepszą praktykę, która poprawia użyteczność aplikacji.
| Działanie | Opis | 
|---|---|
| 
                                 Usunięcie kluczy syntetycznych  | 
                            
                                 Qlik Sense tworzy klucze syntetyczne, gdy co najmniej dwie tabele danych mają dwa lub więcej wspólnych pól. Może to oznaczać, że w skrypcie lub modelu danych występuje błąd. Diagnostyka kluczy syntetycznych, patrz Klucze syntetyczne.  | 
                        
| 
                                 Usunięcie odwołań cyklicznych z modelu danych  | 
                            
                                 Odwołania cykliczne występują, gdy dwa pola mają więcej niż jedną asocjację. Qlik Sense spróbuje je rozwiązać poprzez zmianę połączenia z jedną z tabel. Należy jednak rozwiązywać wszystkie ostrzeżenia związane z odwołaniami cyklicznymi, patrz Rozpoznawanie i naprawianie odwołań cyklicznych.  | 
                        
| 
                                 Odpowiednia szczegółowość danych  | 
                            Należy ładować tylko te dane, które są niezbędne. Na przykład: grupa użytkowników potrzebuje tylko danych podzielonych według tygodnia, miesiąca i roku. W celu oszczędzenia w pamięci można załadować dane zagregowane lub zagregować dane w skrypcie ładowania. Jeśli użytkownik potrzebuje wizualizacji danych na niższym poziomie szczegółowość, można użyć ODAG lub powiązać łańcuchowego łączenia dokumentów. | 
| 
                                 Stosowanie plików QVDs tam, gdzie jest to możliwe  | 
                            QVD to plik zawierający tabelę danych wyeksportowanych z programu Qlik Sense. Ten format pliku jest zoptymalizowany w celu uzyskania maksymalnej szybkości odczytu danych ze skryptu przy zachowaniu niewielkich rozmiarów. Odczyt danych z pliku QVD jest zazwyczaj 10–100 razy szybszy niż odczyt z innych źródeł danych. Więcej informacji zawiera temat: Praca z plikami QVD. | 
| 
                                 Optymalizacja plików QVD podczas ładowania  | 
                                                     Pliki QVD mogą być odczytywane w dwóch trybach: standardowym (szybkim) i zoptymalizowanym (szybszym). Wybrany tryb jest automatycznie określany przez silnik obsługi skryptów.  Istnieją pewne ograniczenia dotyczące ładowania zoptymalizowanego. Istnieje możliwość zmiany nazw pól, ale każda z tych operacji spowoduje standardowe ładowanie: 
  | 
                        
| 
                                 Wykorzystanie ładowania przyrostowego  | 
                            
                                 Jeśli aplikacja łączy się z dużą ilością danych z baz danych, które są na bieżąco aktualizowane, przeładowanie całego zestawu danych może być czasochłonne. Zamiast tego do pobierania nowych lub zmienionych rekordów z bazy danych należy używać ładowania przyrostowego. Więcej informacji można znaleźć w temacie Ładowanie nowych i zaktualizowanych rekordów za pomocą funkcji ładowania przyrostowego.  | 
                        
| 
                                 Konsolidacja modelu Snowflake  | 
                            
                                 W przypadku modelu danych Snowflake można zmniejszyć liczbę tabel danych, łącząc niektóre z nich przy użyciu prefiksu Join lub innego mapowania. Jest to szczególnie ważne w przypadku dużych tabel faktów. Dobrą zasadą ogólną jest stosowanie tylko jednej dużej tabeli. Więcej informacji w temacie Łączyć, czy nie łączyć.  | 
                        
| 
                                 Tabele z małą ilością pól są zdenormalizowane  | 
                            W przypadku dwóch tabel z kilkoma polami połączenie ich może poprawić wydajność. Więcej informacji zawiera temat Łączenie tabel operatorami Join i Keep. | 
| 
                                 Zdenormalizowane tabele wyszukiwania (liść) z mapowaniem ładowania  | 
                            Nie należy używać prefiksu Join , jeśli chce się tylko dodać jedno pole z jednej tabeli do drugiej. Należy użyć funkcji wyszukiwania ApplyMap , patrz Nie łącz – używaj funkcji ApplyMap. | 
| 
                                 Usunięcie lub odłączenie znaczników czasu od pola daty  | 
                            
                                 Pola dat mogą wypełniać przestrzeń, gdy obecny jest znacznik czasu, ponieważ reprezentacja w postaci ciągu i liczba odrębnych wartości są większe. Jeśli precyzja nie jest konieczna do analizy, możesz zaokrąglić znacznik czasu do np. najbliższej godziny za pomocą funkcji Timestamp(Floor(YourTimestamp,1/24)) lub całkowicie usunąć składnik czasu za pomocą funkcji Date(Floor(YourTimestamp)). Jeśli znacznik czasu ma być obecny, można go odłączyć od samej daty. Można użyć tej samej funkcji Floor(), a następnie utworzyć nowe pole z wyodrębnionym czasem, używając na przykład: Time(Frac(YourTimestamp)).  | 
                        
| 
                                 Usunięcie niepotrzebnych pól z modelu danych  | 
                            
                                 Do modelu danych należy ładować tylko niezbędne pola. Należy unikać Load * i SELECT. Pamiętaj, aby zachować: 
  | 
                        
| 
                                 Unikanie tabel łączy w przypadku dużych ilości danych  | 
                            W miarę możliwości należy korzystać z tabel łączy. Jednakże w przypadku dużych ilości danych skonkatenowane tabele mogą zapewniać wyższą wydajność niż tabele łączy. | 
| 
                                 Rozdzielanie skonkatenowanych wymiarów na nowe pola  | 
                            Skonkatenowane wymiary należy rozdzielać na osobne pola. Zmniejsza to liczbę unikatowych wystąpień wartości w polach. Jest to podobne do optymalizacji znaczników czasu. | 
| 
                                 Używanie funkcji AutoNumber, gdy jest to możliwe  | 
                            Ładowanie zoptymalizowane można utworzyć, najpierw ładując dane z pliku QVD, a następnie używając instrukcji AutoNumber celem przekształcenia wartości na klucze symboli.Więcej informacji zawiera temat AutoNumber. | 
| 
                                 Unikanie wysp danych  | 
                            Wyspy danych mogą być użyteczne, ale zazwyczaj wpływają na wydajność. W przypadku tworzenia wysp dla wartości wyboru należy używać zmiennych. | 
| 
                                 Przechowywanie plików QVD w oparciu o przyrostowe przedziały czasu  | 
                            Pliki QVD należy przechowywać w segmentach, np. miesięcznych. Te mniejsze miesięczne pliki QVD mogą następnie obsługiwać wiele różnych aplikacji, które niekoniecznie będą potrzebować wszystkich danych. | 
Więcej informacji dotyczących najlepszych praktyk zawiera temat Najlepsze praktyki w zakresie modelowania danych.