# Klucze syntetyczne

Qlik Sense tworzy klucze syntetyczne, gdy co najmniej dwie tabele danych mają dwa lub więcej wspólnych pól. Wspomniane klucze to pola anonimowe reprezentujące wszystkie występujące kombinacje klucza złożonego.

W przypadku otrzymania ostrzeżenia dotyczącego kluczy syntetycznych podczas ładowania danych należy skontrolować strukturę danych w przeglądarce modelu danych. Należy upewnić się, czy model danych jest poprawny. Czasami jest, ale przeważnie klucz syntetyczny to konsekwencja błędu w skrypcie.

Duża liczba kluczy syntetycznych to często objaw niepoprawnego modelu danych. Obecność kluczy syntetycznych opartych na innych kluczach syntetycznych to jednak wyraźny sygnał błędów w modelu danych.

OstrzeżenieGdy liczba kluczy syntetycznych rośnie, aplikacja Qlik Sense w zależności od ilości danych, struktury tabeli i innych czynników może sprawnie je obsługiwać, ale czasami może to skutkować spowolnieniem lub nadmiernym wykorzystaniem pamięci. W takim przypadku należy zmodyfikować skrypt, usuwając wszystkie klucze syntetyczne.

Trzy tabele powiązane z kluczem syntetycznym $Syn 1.

Trzy tabele powiązane z kluczem syntetycznym $Syn 1.

Trzy tabele powiązane z kluczem syntetycznym $Syn 1. ![Three tables associated with a synthetic key.](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/ex_gen_SyntheticKeys_dmv.png)

## Obsługa kluczy syntetycznych

Jeśli trzeba unikać kluczy syntetycznych, istnieje kilka sposobów na rozwiązanie tego problemu w skrypcie ładowania danych:

* Upewnić się, że jako klucze używane są tylko pola, które logicznie łączą dwie tabele.

  * Takie pola, jak „Komentarz”, „Uwaga” i „Opis”, mogą istnieć w kilku tabelach bez powiązań, dlatego nie powinny być używane jako klucze.
  * Takie pola, jak „Data”, „Firma” i „Nazwa”, mogą istnieć w kilku tabelach i mieć identyczne wartości, a jednocześnie różnić się rolami (data zamówienia / data wysyłki, firma klienta / firma dostawcy). W takim przypadku nie należy ich używać jako kluczy.

* Upewnić się, że nie są używane zbędne pola — i że łączone są tylko pola niezbędne. Jeśli na przykład kluczem jest data, trzeba uważać, aby nie załadować pola year, month lub day\_of\_month z tą samą datą z więcej niż jednej tabeli wewnętrznej.

* W razie konieczności utworzyć własne klucze niezłożone, co zazwyczaj realizuje się poprzez konkatenację ciągów znaków w obrębie funkcji skryptu AutoNumber.

POWIĄZANE MATERIAŁY EDUKACYJNE:

* [Wprowadzenie do przeglądarki modeli danych](https://help.qlik.com/lnk/Intro_Data_Model_Viewer_QS)

## Dowiedz się więcej

* [Wprowadzenie do przeglądarki modeli danych](https://help.qlik.com/lnk/Intro_Data_Model_Viewer_QS)