Sdílet prostřednictvím


Osvědčené postupy optimalizace schématu

Schéma tabulky definuje názvy a datové typy všech sloupců v tabulce. Schéma tabulky lze nastavit během vytváření tabulky nebo jako součást procesu příjmu dat úpravou příslušného mapování příjmu dat. Způsob definování schématu tabulky může výrazně ovlivnit výkon dotazů. Ideální schéma pro vaše data závisí na mnoha faktorech, včetně případů použití, vzorů přístupu k datům a konkrétních dat, která plánujete uložit. Tento článek popisuje osvědčené postupy pro optimalizaci výkonu návrhem efektivních schémat.

Typy dat

Obecné informace o datových typech najdete v tématu Skalární datové typy.

  • Běžně používaná pole by měla být typ sloupce, nikoli dynamického typu.

  • Často hledané nebo agregované vlastnosti JSON v dynamickém sloupci by se měly převést na běžný sloupec v tabulce s konkrétnějším typem, jako je řetězec, dlouhý nebo skutečný.

  • Řídké sloupce, které se běžně nepoužívají pro filtrování a agregaci, by se měly shromažďovat jako sáček vlastností v dynamickém sloupci pomocí DropMappedFieldstransformace mapování.

  • Sloupce data a času by měly být zadané jako datetime a neměly by být dlouhé nebo jiné datové typy.

  • Typ desetinné čárky poskytuje přesnou přesnost, takže je nejvhodnější pro finanční a jiné aplikace, které vyžadují přesnou přesnost. Je ale mnohem pomalejší než skutečný typ. V případě potřeby používejte pouze typ desetinné čárky.

  • Všechny sloupce ID (identifikace) by měly být zadané jako řetězec, ne jako číselné. Díky tomuto typu bude index mnohem efektivnější a může výrazně zlepšit dobu hledání. Umožní také dělení, protože dělení je možné definovat pouze u řetězců sloupců. Pokud jsou filtry dotazů použité v tomto sloupci pouze rovnost, například pokud sloupec obsahuje identifikátory GUID, můžete použít profil Identifierkódování . Další informace najdete v tématu Zásady kódování.

Tabulky

  • Optimalizujte pro úzké tabulky, které jsou upřednostňovány před širokými tabulkami se stovkami sloupců.
  • Abyste se vyhnuli nákladným spojením během doby dotazu, denormalizujte data dimenzí tím, že je během příjmu dat obohacujte. Pokud je tabulka dimenzí použitá k rozšiřování aktualizovaná a scénář vyžaduje nejnovější hodnotu, použijte zobrazení materializace , aby se zachovala pouze nejnovější hodnota.
  • Pokud existuje více než 20 sloupců, které jsou řídké, což znamená, že mnoho hodnot má hodnoty null a tyto sloupce se zřídka používají k hledání nebo agregaci, seskupte sloupce jako sáček vlastností JSON v dynamickém sloupci pomocí DropMappedFieldsmapování transformace.

Indexování

Pole, která se nikdy neprohledají, můžou indexování zakázat. Pomocí zásad kódování s profilem BigObject zakažte indexování u řetězců nebo dynamických sloupců.