Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Ett tabellschema definierar namnen och datatyperna för alla kolumner i tabellen. Tabellschemat kan anges när tabellen skapas eller som en del av datainmatningsprocessen genom att ändra den tillämpliga inmatningsmappningen. Det sätt på vilket ett tabellschema definieras kan avsevärt påverka frågeprestandan. Det perfekta schemat för dina data beror på många faktorer, inklusive användningsfall, dataåtkomstmönster och de specifika data som du planerar att lagra. I den här artikeln beskrivs metodtips för att optimera prestanda genom att utforma effektiva scheman.
Datatyper
Allmän information om datatyper finns i skalära datatyper.
Fält som används ofta ska vara inskrivna kolumner, inte dynamiska typer.
Vanliga sökningar efter eller aggregerade JSON-egenskaper i en dynamisk kolumn ska konverteras till en vanlig kolumn i tabellen med en mer specifik typ, till exempel sträng, lång eller verklig.
Glesa kolumner som inte ofta används för filtrering och aggregation bör samlas som en egenskapspåse i en dynamisk kolumn med hjälp av
DropMappedFields.Datumtidskolumner ska skrivas som datetime och inte långa eller andra datatyper.
- Använd DateTime från unix-transformeringsmappningar, till exempel
DateTimeFromUnixMilliseconds. .
- Använd DateTime från unix-transformeringsmappningar, till exempel
Decimaltypen ger exakt precision, vilket gör den lämpligast för finansiella och andra program som kräver exakt noggrannhet. Det är dock mycket långsammare än den verkliga typen. Använd endast decimaltypen när det behövs.
Alla ID-kolumner (identifiering) ska skrivas som sträng, inte numeriska. Den här typen gör indexet mycket effektivare och kan avsevärt förbättra söktiden. Det aktiverar också partitionering eftersom partitionering endast kan definieras för strängkolumner. Om de frågefilter som används i den här kolumnen bara är likhet, till exempel om kolumnen har guids, kan du använda kodningsprofilen
Identifier. Mer information finns i kodningsprincip.
Tables
- Optimera för smala tabeller, som föredras framför breda tabeller med hundratals kolumner.
- För att undvika dyra kopplingar under frågetiden avnormaliserar du dimensionsdata genom att utöka dem under inmatningen. Om dimensionstabellen som används för berikning uppdateras och scenariot kräver det senaste värdet, använd materialisera vyer för att endast behålla det senaste värdet.
- Om det finns fler än 20 kolumner som är glesa, vilket innebär att många värden är null, och dessa kolumner sällan används för sökningar eller sammansättning, grupperar du kolumnerna som en JSON-egenskapspåse i en dynamisk kolumn med hjälp av
DropMappedFields.
Indexering
Fält som aldrig söks på kan inaktivera indexering. Använd kodningsprincipen med profil BigObject för att inaktivera indexering på strängkolumner eller dynamiska kolumner.