Dela via


Rekommendationer för optimering av dataprestanda

Gäller för den här Power Platform rekommendationen för checklistan för prestandaeffektivitet välkonstruerad:

PE:08 Optimera dataprestanda. Optimera datalager för deras avsedda och faktiska användning i arbetsbelastningen.

Den här guiden beskriver rekommendationer för hur du optimerar dataprestanda. Optimera dataprestanda handlar om att förbättra effektiviteten som arbetsbelastningen bearbetar och lagrar data med. Alla arbetsbelastningsåtgärder, transaktioner eller beräkningar fungerar oftast bra för att hämta, bearbeta och lagra data på ett snabbt och korrekt sätt. När dataprestanda optimeras fungerar arbetsbelastningen på ett smidigt sätt. Försämrad dataprestanda skapar en dominoeffekt av dålig prestanda och effektivitet. Om du inte optimerar dataprestanda uppstår förseningar i svar, ökad svarstid och begränsad skalbarhet. Det äventyrar effektiviteten för hela arbetsbelastningen.

Definitioner

Begrepp Definition
Datalager En resurs som lagrar data, t.ex. en databas, objektarkiv eller fildelning.
Index En databasstruktur som ger snabb åtkomst till objekt.
Analysbearbetning online (OLAP) En teknik som organiserar stora affärsdatabaser, stöder komplexa analyser och utför komplexa analysfrågor utan att det påverkar transaktionssystemen på ett negativt sätt.
Transaktionsbearbetning online (OLTP) En teknik som registrerar affärsinteraktioner allt eftersom de sker i den dagliga verksamheten i en organisation.
Partitionering Processen att fysiskt dela upp data i separata datalager kallas partitionering.
Frågejustering En process som optimerar hastigheten på en databasfråga.

Viktiga designstrategier

Optimera dataanvändningen genom att se till att datamängderna är optimerade för den avsedda användningen och för deras faktiska användning i en arbetsbelastning. Optimerad dataanvändning kan förbättra frågeprestanda, minska resursanvändningen och förbättra systemets övergripande effektivitet. Föreställ dig följande strategier:

  • Profildata. Förstå dina data och se till att din datamodell passar din arbetsbelastning. Överväg faktorer som till exempel tekniker för data normalisering och delning. För effektiv datahämtning bör du se till att du väljer datatyper och definierar relationer mellan tabeller.

  • Optimera frågeprestanda. Analysera och optimera frågor som körs i arbetsbelastningen. Använd tekniker som frågeoptimering och cachelagring. Använd servervyer för att förfiltrera data. Identifiera flaskhalsar genom att använda verktyg för prestandaövervakning och sedan göra nödvändiga förbättringar.

  • Övervaka och finjustera systemet regelbundet. Övervaka arbetsbelastningens prestanda kontinuerligt och iterera på konfigurationer och frågeoptimeringar för datalagring. Baserat på bästa praxis för prestandaoptimering, analysera systemets mätvärden, identifiera förbättringsområden och implementera förändringar. När data växer kan du behöva uppdatera dina frågor så att de fortfarande fungerar.

Profildata

Dataprofilering innebär att data från en källa används för att samla in information om dem. Målet är att förstå kvaliteten, strukturen och egenskaperna hos arbetsbelastningsdata. Med den här processen kan du identifiera problem som saknade värden, dubbletter, inkonsekventa format och andra funktioner.

För effektiv dataprofilering, överväg följande strategier:

  • Förstå datastrukturen. Undersök datastrukturen, t.ex. tabeller, kolumner och relationer. Ta reda på vilka datatyper, längder och begränsningar som ska användas för varje kolumn. Utvärdering av datastruktur hjälper dig att förstå hur datan är organiserad och hur den relaterar till andra dataelement.

  • Analysera datavolymen. Utvärdera volymen av din data för att förstå den totala storleken och tillväxtmönstren. Ta reda på antalet poster eller dokument och storleken på enskilda tabeller eller samlingar. Med hjälp av den här informationen kan du uppskatta lagringskraven och identifiera skalbarhetsproblem.

  • Identifiera datarelationer. Utforska relationer mellan dataelementen. Förstå hur data är anslutna så att du kan avgöra hur ändringar i en tabell eller ett dokument kan påverka relaterade data.

  • Bedöm datakvalitet. Utvärdera kvaliteten på din data genom att undersöka faktorer som fullständighet, noggrannhet, konsekvens och unikhet. Identifiera data och värden som saknas, eller dubblettposter som kan påverka dataintegriteten och frågeprestanda. Detta steg hjälper dig att identifiera områden för datarensning och förbättring.

  • Registrera datadistributionen. Analysera värdedistributionen inom varje kolumn för att fastställa datamönster. Identifiera frekventa och sällsynta värden, avvikare och dataavvikelser. Optimera frågeprestanda genom att analysera om alternativa nycklar är lämpliga för bättre prestanda.

Övervaka dataprestanda

Övervakning av dataprestanda används för att konsekvent spåra effektiviteten i datalager. Det innebär att samla in och analysera prestandamått som är specifika för dataåtgärder, med hjälp av verktyg som är skräddarsydda för systemnivå, databasspecifika eller övervakningslösningar från tredje part. Med hjälp av effektiv övervakning av dataprestanda kan du proaktivt identifiera och undvika potentiella flaskhalsar och se till att datarelaterade processer och uppgifter är effektiva.

Du kan övervaka dataprestanda genom att överväga följande strategi:

  • Samla in dataspecifika mått. Samla viktiga mått som direkt relaterar till dataprestanda. Dessa mått omfattar frågetider svar dataflöde.

  • Konfigurera dataaviseringar. Konfigurera aviseringar specifikt för datamått. Använd fördefinierade tröskelvärden eller avvikelser i dessa mått för att utlösa varningar. Aviseringar gör att du kan ta emot notifikationer när prestandamått överskrider acceptabla gränser eller visar onormalt beteende, till exempel om en databasfråga tar längre tid än förväntat eller om dataflödet minskar avsevärt. Du kan konfigurera aviseringarna med hjälp av specialiserade övervakningsverktyg eller anpassade skript.

  • Diagnostisera problem med dataprestanda. Granska regelbundet igenom de insamlade datamåtten och identifiera potentiella prestandaflaskhalsar eller försämrade dataåtgärder. Visualiseringsverktyg eller instrumentpaneler kan vara ovärderliga i denna process eftersom de hjälper till att lyfta fram trender, flaskhalsar och avvikare i dataprestanda. När problemen har identifierats, undersök de grundläggande orsakerna och planera lämpliga åtgärdssteg.

Partitioneringsdata

Partitionering innebär att dela upp stora datauppsättningar eller högvolymbelastningar i mindre, hanterbara deluppsättningar. Genom att partitionera förbättras dataprestanda genom att distribuera arbetsbelastningen och förbättra parallell bearbetning. Det garanterar också effektivare dataåtkomst utifrån specifika behov och frågemönster. Du kan partitionera data vertikalt eller horisontellt (även kallat sharding). Om du till exempel använder Dataverse Elastic-tabeller, överväg vad som ska vara partitioneringsnyckeln.

Strategi Definition Exempel Praktiska ärenden
Vertikal partitionering Dela upp en tabell i mindre tabeller genom att välja specifika kolumner eller fält för varje partition. Varje partition representerar en delmängd av fullständiga data. Om det finns en tabell med kolumnerna A, B, C och D kan du skapa en tabell med kolumnerna A och B och en annan med kolumnerna C och D. - En tabell innehåller många kolumner, men frågor ger inte åtkomst till alla kolumner tillsammans.
- Vissa kolumner är större än andra och om du delar upp dem kan I/O-prestanda öka.
- Olika datadelar har olika åtkomstmönster.
Horisontell partitionering Dela data baserat på rader eller värdens intervaller (kallas även för sharding). Varje partition innehåller en deluppsättning av rader med liknande egenskaper. Om du har en tabell med raderna 1 till 1000 kan du skapa en partition med raderna 1 till 500 och en annan med raderna 501 till 1000. - En datauppsättning är för stor för en enskild plats eller server.
- Data nås baserat på specifika intervaller eller filter.
- Arbetsbelastningen måste distribueras över fysiska noder eller servrar för bättre prestanda.

Tänk på följande om du vill partitionera data:

  • Analysera data och frågor. Analysera data- och frågemönster för att identifiera lämpliga partitionerings- eller shardingstrategier. Förstå datans natur, åtkomstmönster och distributionskrav.

  • Bestäm en nyckel. Välj en partitionerings- eller shardnyckel för att distribuera data över partitioner eller shards. Välj nyckeln noggrant baserat på datans egenskaper och frågekrav.

  • Bestäm logik. Fastställa en partitionerings- eller shardinglogik baserat på den valda nyckeln. Överväg att dela upp datan i intervall, tillämpa hashalgoritmer eller använda andra partitioneringstekniker.

Optimera frågor

Genom att optimera frågor förfinas frågor för att minska de data som kvalificeras och de data som returneras. Dessa ändringar ökar effektiviteten och hastigheten på datahämtningen. Databasen har ett belastningsutjämnande arbete, resurser fungerar effektivare och användarna får smidigare interaktioner.

Om du vill optimera databasfrågor bör du överväga följande strategi:

  • Skriva om frågor. Granska och analysera komplexa frågor och identifiera affärsmöjligheter som ska skrivas om. Överväg att förenkla frågelogik, förenkla frågesyntaxen eller förenkla överflödiga åtgärder.

  • Undvik problem med N+1-frågan. Minimera antalet resor till databasen genom att använda kopplingar och batchhämtning för att effektivt hämta relaterad data.

  • Ordna om kopplingar. Utvärdera och överväg att ordna om kopplingsordningen för att minimera antalet rader i varje kopplingsåtgärd. I vilken ordning du sammanfogar tabeller kan frågeprestanda påverkas.

  • Cachelagra frågor. Lagra resultaten av vanliga frågor för att enkelt kunna återanvändas. Med frågecache slipper du köra samma fråga upprepade gånger, vilket minskar mängden frågebearbetning.

  • Övervaka och justera. Övervaka mätvärden för frågeprestanda, t.ex. körning, resursutnyttjande och genomflöde av frågor. Använd databasprofileringsverktyg och övervakningsfunktioner för att identifiera dåligt presterande frågor. Använd den informationen om du vill optimera frågeprestanda.

Arkivera och rensa data

Arkivering och rensning är en strategi som förenkla datalagringen. Arkivering flyttar äldre, mindre ofta åtkomstdata till mer kostnadseffektiv lagring. Om du raderar data tas överflödiga data bort permanent. Båda metoderna bidrar till effektivitet genom att minska datavolym, öka dataåtkomstens hastighet och minska säkerhetskopierings- och återställningstider.

  • Minska datavolymen: Mindre data innebär snabbare bearbetningstider, vilket säkerställer snabba svar på användarförfrågningar.
  • Öka hastigheten för dataåtkomst: En trimmad datauppsättning möjliggör snabbare frågor och datahämtning, vilket optimerar systemets svarstider.
  • Minska säkerhetskopierings- och återställningstiderna: Mindre datauppsättningar påskyndar säkerhetskopierings- och återställningsprocesser, minimerar driftstopp och säkerställer konsekventa prestanda.

Arkivering och rensning är avgörande för att bibehålla hög prestanda och effektivitet i datadrivna system.

Optimera lagringsbelastningen

Att optimera belastningen på lagringsutrymmet innebär att förfrågningarna till lagringssystemet rationaliseras. Det hjälper till att undvika onödiga förfrågningar, förbättrar datahämtningen och undviker att lagra systemet. Genom att optimera lagringsbelastningen ser du till att lagringssystemet fortfarande fungerar som det ska för att säkerställa högsta prestanda. Implementera strategier för att minska belastningen på datalager. För att optimera belastningen på datalager, överväg följande strategier:

Använd cachelagring

I cachelagring lagras vanliga data i ett område med snabb åtkomst, vilket gör datahämtning snabbare än att hämta data från huvudkällan. Med den här metoden ökar dataprestanda genom att minska åtkomsttiderna och undvika repetitiva datahämtningar. Caching förbättrar läshastigheter och användarens svarstider, särskilt för data som ofta används. Den här metoden är mest effektiv för statiska data eller data som sällan ändras.

För att säkerställa optimal cacheeffektivitet, överväg faktorer som utgångspolicyer, avstängningsstrategier och hantering av cachestorlek. Justera inställningar, t.ex. Time to Live (TTL), för optimala prestanda. Om du vill använda ett cacheminne för att optimera belastningen på lagringsutrymmet bör du tänka på följande strategi:

  • Cachelagring i minnet: Utför cachelagring i minnet för att lagra data som används ofta i minnet för snabb hämtning. Du kan använda den här metoden för att använda programdata som kan användas för att beräkna eller hämta data från en databas. Cachelagring i minnet är användbart för data som du läser ofta men som inte ändras ofta. Du kan till exempel använda variabler i molnflöden eller samlingar i mobilappar för att cachelagra data.

  • Cachelagring av databasfrågor: Använd den här tekniken för att cachelagra resultatet av databasfrågor för att undvika att köra samma fråga flera gånger. Cachelagring av databasfrågor är användbart för komplexa och tidskrävande databasfrågor. När du cachelagrar resultaten av en fråga, returneras efterföljande förfrågningar för samma fråga snabbt. Du kan också överväga att använda servervyer där det är möjligt att förfiltrera data för att begränsa de data som är relevanta för frågan.

  • Nätverkscachelagring för innehållsleverans: Använd den här tekniken för att cachelagra webbinnehåll på distribuerade nätverksservrar för att minska svarstiden och förbättra innehållsleveransen. Cachelagring av nätverk för innehållsleverans är effektivt för statiskt innehåll som bilder, CSS-filer och JavaScript-filer. I nätverket för innehållsleverans lagras kopior av innehåll på flera platser runt om i världen, så att användarna kan komma åt innehållet från en server som är geografiskt nära dem.

Optimera datauppdateringar

Att optimera datauppdateringar innebär att utvärdera de datauppdateringar som utförs för att säkerställa att de utförs. Uppdateringar kan påverka prestanda mer än andra åtgärder eftersom de kan utlösa onödigt arbete och orsaka låskonflikter.

Om du vill utvärdera hur du optimerar datauppdateringarna bör du överväga följande:

  • Ändringar i uppgifterna. Optimera automatiseringen genom att använda föravbildningar av data eller filter för att minimera arbetet när ingen faktisk ändring har ägt rum. Undvik att utlösa automatisering för omodifierade data.

  • Automatisering. Utvärdera när och hur uppdateringar utlöses baserat på dataändringar och optimera utlösare för att ta med ett filter. Till exempel för att endast utlösa automatiseringen när ett specifikt fält i datakällan ändras. Utvärdera uppdateringar som inkrementellt utlöser automatiseringar flera gånger. Fundera i stället på om du kan skapa en anpassad åtgärd för att hantera all bearbetning. Om exempelvis ett order levereras och leveransdatumet och spårningsnumret uppdateras separat, kan båda uppdateras samtidigt i en anpassad "ShipOrder"-åtgärd.

  • Dödlägen. Utvärdera långsamma uppdateringsåtgärder som kan orsaka problem på grund av att flera flöden uppdaterar samma data i olika sekvenser. Ineffektivitet kan leda till att du låser konflikter eller till och med potentiella deadlock, vilket resulterar i onödig omarbetning. Uppdatera de olika resurserna i samma sekvens för att minimera eventuella problem.

  • Massuppdateringar. Om du kör åtgärder på flera rader i en tabell bör du överväga att använda massåtgärder.

Optimera dataflytt och databearbetning

Att optimera dataflytt och bearbetning innebär att förbättra effektiviteten och prestandan för åtgärder relaterade till dataextraktion, omvandling, inläsning och bearbetning. Tänk på följande viktiga aspekter när det gäller att optimera dataflytt och bearbetning:

  • ETL-optimering (extrahering, transformering och inläsning): Optimera ETL-processer för att minimera bearbetningstiden. Du kan rationalisera extraktionsprocessen, implementera effektiva omvandlingsalgoritmer och optimera inläsningsprocessen. När du gör varje steg effektivt optimerar du det övergripande arbetsflödet.

  • Parallell bearbetning: Använd parallella bearbetningstekniker för att förbättra prestandan. När du distribuerar databearbetningsuppgifter över flera trådar eller noder kan du dela upp och bearbeta arbetsbelastningen samtidigt, vilket resulterar i snabb bearbetning.

  • Batchbearbetning: Gruppera liknande uppgifter för att minska omkostnaderna som orsakas av upprepade åtgärder. Bearbeta flera uppgifter i en batch för att minska den totala bearbetningstiden.

Design för datanärhet

Datanärhet hänvisar till den strategiska placeringen av data närmare de användare eller tjänster som använder dem oftast. Genom att minska det fysiska eller logiska avståndet mellan dessa data och användarna får användarna snabbare åtkomst till data och bättre prestanda. För att optimera designen för närhet, överväg dessa strategier:

  • Utvärdera dataåtkomstmönster: Utvärdera arbetsbelastningens åtkomstmönster och data som används ofta. Med hjälp av den här analysen kan du avgöra var data ska lagras för maximal nytta.

  • Välj lösningar som stöder dataflytt: Överväg lösningar som erbjuder dynamisk dataflytt baserat på föränderliga åtkomstmönster, vilket säkerställer optimal datapositionering.

  • Välj lösningar som stöder datasynkronisering: Om du betjänar en distribuerad användarbas väljer du lösningar som möjliggör datasynkronisering i de olika regionerna för att säkerställa att datarepliker är tillgängliga i närheten av användarna.

Kompromiss: Om underliggande data ändras ofta implementerar du en mekanism för cacheogiltigförklaring för att säkerställa att cachelagrade data förblir uppdaterade.

Underlätta Power Platform

Övervaka dataprestanda: Om du vill övervaka dataprestanda bör du överväga att använda Azure Monitor för att samla in och analysera infrastrukturmått, loggar och programdata. Du kan integrera Monitor med andra tjänster som Application Insights. Application Insights tillhandahåller programprestandaövervakning och stöd för många plattformar.

Application Insights samlar in användnings- och prestandainformation. Du kan använda Log Analytics för att korrelera dessa data med konfigurations- och prestandadata över Azure-resurser. Application Insights för Dataverse dataström ger för närvarande prestandadata relaterad till Dataverse API inkommande samtal, Dataverse plugin-körningsanrop och Dataverse SDK-anrop.

Optimera frågedatamönster i arbetsyteappar: Följ de dokumenterade riktlinjerna och förslagen. Se Optimerade frågedatamönster i Power Apps.

Optimera hur du anpassar, utökar eller integrerar med Dataverse: Följ de dokumenterade metodtipsen och vägledningen. Se Metodtips och vägledning för Microsoft Dataverse.

Optimera databasfrågor och indexprestanda: Använd funktionen för insikter om frågeprestanda i Azure SQL Database för att optimera frågor, tabeller och databaser. Du kan även använda den här funktionen för att identifiera och felsöka problem med frågeprestanda.

För relationsdatabaser följer du riktlinjer för indexdesign, riktlinjer för SQL Server index och riktlinjer för Azure Cosmos DB index. Med SQL Database kan du utföra automatisk justering för att förbättra deras prestanda.

För SQL-databaser bör du regelbundet ordna om eller återskapa index. Identifiera långsamma frågor och justera dem för att förbättra prestandan. Många databasmotorer har funktioner för frågejustering. Mer information finns i metodtipsen för frågeresultat.

Azure Cosmos DB har en standardindexeringspolicy som indexerar varje egenskap för varje objekt och framtvingar intervallindex för valfri sträng eller siffra. Den här policyn ger dig effektiva frågeresultat och du behöver inte hantera index i förväg.

Optimera lagringsbelastningen: Många Azure-databastjänster stöder skrivskyddade repliker. Tillgängligheten och konfigurationen av läskopior varierar beroende på Azure-databastjänsten. Se den officiella dokumentationen för varje tjänst för att få information och alternativ.

Checklista för prestandaeffektivitet

Se den fullständiga uppsättningen med rekommendationer.