Anteckning
Å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.
Gäller för denna checklista för Prestandaeffektivitet för Azure Well-Architected Framework:
| PE:08 | Optimera dataprestanda. Optimera datalager, partitioner och index för deras avsedda och faktiska användning i arbetsbelastningen. |
|---|
Den här guiden beskriver rekommendationerna för att optimera dataprestanda. Att optimera dataprestanda handlar om att förfina effektiviteten med vilken arbetsbelastningen bearbetar och lagrar data. Varje arbetsbelastningsåtgärd, transaktion eller beräkning förlitar sig vanligtvis på snabb och korrekt hämtning, bearbetning och lagring av data. När dataprestanda optimeras körs arbetsbelastningen smidigt. Komprometterade dataprestanda skapar en dominoeffekt av dålig prestandaeffektivitet. Om dataprestanda inte optimeras resulterar det i svarsfördröjningar, ökad svarstid och minskad skalbarhet. Det äventyrar effektiviteten i hela arbetsbelastningen.
Definitioner
| Begrepp | Definition |
|---|---|
| CAP-sats | Ett ramverk som används för att överväga konsekvens, tillgänglighet och partitionstolerans för att förklara kompromisserna i datakonsekvens. |
| Återskapa databasindex | En underhållsaktivitet som släpper och återskapar ett index. |
| Omorganisering av databasindex | En underhållsaktivitet som optimerar det aktuella databasindexet. |
| Datalager | En resurs som lagrar data, till exempel en databas, ett objektlager eller en filresurs. |
| Slutlig konsekvens | En datasynkroniseringsmodell som möjliggör tillfällig inkonsekvens i datarepliker innan de slutligen synkroniseras. |
| Index | En databasstruktur som ger snabb åtkomst till objekt. |
| Onlineanalysbearbetning (OLAP) | En teknik som organiserar stora affärsdatabaser, stöder komplex analys och utför komplexa analysfrågor utan att påverka transaktionssystem negativt. |
| Onlinetransaktionsbearbetning (OLTP) | En teknik som registrerar affärsinteraktioner när de sker i den dagliga driften av en organisation. |
| Optimistisk konkurrenshantering | En metod för att uppdatera databaser som använder ögonblicksbilder för att göra uppdateringar i stället för traditionella låsmekanismer, vilket förbättrar prestanda och skalbarhet. |
| PACELC-sats | Ett ramverk som används för att överväga partitionstolerans, tillgänglighet, konsekvens och svarstid för att förklara kompromisserna i datakonsekvens. |
| Partitioning | Processen att fysiskt dela upp data i separata datalager. |
| Frågejustering | En process som optimerar hastigheten för en databasfråga. |
| Läs replik | En livekopia av en primär databas som gör att du kan avlasta lästrafik från en skrivdatabas. |
För att optimera dataanvändningen kontrollerar du att datalager, partitioner och index är optimerade för avsedd användning och för deras faktiska användning i en arbetsbelastning. Optimerad dataanvändning kan förbättra frågeprestanda, minska resursförbrukningen och förbättra systemets övergripande effektivitet. Tänk på följande strategier:
Profildata. Förstå dina data och se till att din datamodell passar bra för din arbetsbelastning. Tänk på faktorer som datanormalisering, indexeringsstrategier och partitioneringstekniker. För effektiv datahämtning kontrollerar du att du väljer lämpliga datatyper, definierar relationer mellan entiteter och fastställer en optimal indexeringsstrategi.
Finjustera konfigurationen av datalagringen. Konfigurera datalagringsinfrastrukturen så att den överensstämmer med dina arbetsbelastningskrav. Välj lämplig lagringsteknik, till exempel relationsdatabaser, NoSQL-databaser och informationslager. Optimera lagringsinställningar, till exempel buffertstorlek, cachelagringsmekanismer och komprimering.
Optimera frågeprestanda. Analysera och optimera frågor som körs i arbetsbelastningen. Använd tekniker som frågeoptimering, indexering och cachelagring. Om du vill identifiera flaskhalsar använder du frågeplaner och prestandaövervakningsverktyg och gör sedan nödvändiga förbättringar.
Övervaka och finjustera systemet regelbundet. Övervaka arbetsbelastningens prestanda kontinuerligt och iterera datalagringskonfigurationen och frågeoptimeringarna. Baserat på metodtips för prestandajustering analyserar du systemmått, identifierar förbättringsområden och implementerar ändringar.
Profildata
Dataprofilering innebär att undersöka data från en källa och samla in information om dem. Målet är att förstå arbetsbelastningsdatas kvalitet, struktur och egenskaper. Med den här processen kan du identifiera problem som saknade värden, dubbletter, inkonsekventa format och andra avvikelser. Tänk på följande strategier för effektiv dataprofilering:
Förstå datastrukturen. Granska strukturen för dina data, inklusive tabeller, kolumner och relationer. Fastställ de datatyper, längder och begränsningar som tillämpas på varje kolumn. Utvärdering av datastruktur hjälper dig att förstå hur data organiseras och hur de relaterar till andra dataelement.
Analysera datavolymen. Utvärdera volymen av dina data för att förstå de övergripande storleks- och tillväxtmönstren. Fastställa antalet poster eller dokument och storleken på enskilda tabeller eller samlingar. Den här informationen hjälper dig att beräkna lagringskrav och identifiera skalbarhetsproblem.
Identifiera datarelationer. Utforska relationerna mellan dataelement, till exempel primära och sekundärnyckelrelationer. 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.
Utvärdera datakvaliteten. Utvärdera kvaliteten på dina data genom att undersöka faktorer som fullständighet, noggrannhet, konsekvens och unikhet. Identifiera dataavvikelser, saknade värden eller duplicerade poster som kan påverka dataintegriteten och frågeprestanda. Det här steget hjälper dig att identifiera områden för datarensning och förbättring.
Samla in datadistribution. Analysera fördelningen av värden i varje kolumn för att fastställa datamönster. Identifiera frekventa och sällsynta värden, extremvärden och datasnedvridningar. Om du vill optimera frågeprestanda väljer du lämpliga indexeringsstrategier och frågeoptimeringstekniker baserat på fördelningen.
Övervaka dataprestanda
Dataprestandaövervakning är en metod för att konsekvent spåra effektiviteten i datalager, partitioner och index i realtid. Det handlar om 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 tredjepartsövervakningslösningar. Med effektiv dataprestandaövervakning kan du proaktivt identifiera och minimera potentiella flaskhalsar, vilket säkerställer att datarelaterade processer och uppgifter är effektiva. Tänk på följande strategier för att övervaka dataprestanda:
Samla in dataspecifika mått. Samla in viktiga mått som är direkt relaterade till dataprestanda. Dessa mått omfattar frågesvarstider, dataflöde, disk-I/O som är relaterade till dataåtkomst och inläsningstiderna för specifika datapartitioner.
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 aviseringar. Med aviseringar kan du ta emot meddelanden när prestandamått överskrider acceptabla intervall eller visar onormalt beteende. Om en databasfråga till exempel tar längre tid än förväntat eller om dataflödet minskar avsevärt utlöser det en avisering. Du kan konfigurera dessa aviseringar med hjälp av specialiserade övervakningsverktyg eller anpassade skript.
Diagnostisera problem med dataprestanda. Granska regelbundet de insamlade datamåtten för att hitta potentiella flaskhalsar eller försämringar i dataåtgärder. Visualiseringsverktyg eller instrumentpaneler kan vara ovärderliga i den här processen, vilket hjälper till att lyfta fram trender, flaskhalsar och extremvärden i dataprestanda. När du har identifierat det går du in i de bakomliggande orsakerna till dessa problem och planerar lämpliga reparationssteg.
Partitionera data
Partitionering innebär att dela upp stora datamängder eller arbetsbelastningar med stora volymer i mindre, hanterbara delmängder. Partitionering förbättrar dataprestandaeffektiviteten genom att distribuera arbetsbelastningen och förbättra parallell bearbetning. Det säkerställer också effektivare dataåtkomst baserat på specifika behov och frågemönster. Du kan partitionera data lodrätt eller vågrätt (kallas även horisontell partitionering).
| Strategi | Definition | Example | Användningsfall |
|---|---|---|---|
| Lodrät 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 du har 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 kommer inte åt alla kolumner tillsammans. – Vissa kolumner är större än andra och om du separerar dem kan I/O-prestandan ökas. – Olika datadelar har olika åtkomstmönster. |
| Horisontell partitionering | Dela upp data baserat på rader eller intervall med värden (kallas även horisontell partitionering). Varje partition innehåller en delmängd rader med liknande egenskaper. | Om du har en tabell med raderna 1 till 1 000 kan du skapa en partition med raderna 1 till 500 och en annan med raderna 501 till 1 000. | – En datauppsättning är för stor för en enskild plats eller server. – Data nås baserat på specifika intervall eller filter. – Behöver distribuera arbetsbelastningen mellan fysiska noder eller servrar för bättre prestanda. |
Tänk på följande steg för att partitionera dina data:
Analysera data och frågor. Analysera data- och frågemönster för att identifiera lämpliga partitionerings- eller horisontella strategier. Förstå typen av data, åtkomstmönster och distributionskrav.
Fastställ en nyckel. Välj en partitionerings- eller partitioneringsnyckel för att distribuera data mellan partitioner eller shards. Välj nyckeln noggrant baserat på dataegenskaper och frågekrav.
Fastställ logik. Fastställ en partitionerings- eller partitioneringslogik baserat på den valda nyckeln. Överväg att dela upp data i intervall, tillämpa hashningsalgoritmer eller använda andra partitioneringstekniker.
Konfigurera infrastrukturen. Konfigurera databassystemet så att det stöder partitionering eller horisontell partitionering. Överväg att skapa nödvändig infrastruktur, definiera partitionerna eller fragmenten och konfigurera datadistributionen.
Mer information finns i Vägledning för datapartitionering.
Optimera databasfrågor
Optimera databasfrågor förfinar frågor med hjälp av tekniker som indextips och cachelagring. Dessa justeringar ökar effektiviteten och hastigheten för datahämtning. Därför har databasen en lättare arbetsbelastning, resurser fungerar mer effektivt och användarna får smidigare interaktioner. Tänk på följande strategier för att optimera databasfrågor:
Skriv om frågor. Granska och analysera komplexa frågor för att identifiera möjligheter att skriva om dem. Överväg att omstrukturera frågelogik, eliminera redundanta åtgärder eller förenkla frågesyntaxen.
Undvik problem med N+1-frågan. Minimera antalet tur- och returresor till databasen med hjälp av kopplingar och batchhämtning för att effektivt hämta relaterade data.
Ordna om kopplingar. Utvärdera frågeplanen och överväg att ordna om kopplingsordningen för att minimera antalet rader i varje kopplingsåtgärd. I vilken ordning du ansluter tabeller kan det påverka frågeprestandan.
Använd indextips. Använd indextips så att en databasmotor kan ange användningen av index när den kör en fråga. Indextips vägleder optimeraren för att välja de lämpligaste indexen.
Cachefrågor. Lagra resultatet av frågor som körs ofta i minnet. Cachelagring av frågor eliminerar behovet av att köra samma fråga upprepade gånger, och det minskar kostnaderna för frågebearbetning.
Optimera låsning. Undvik onödiga eller restriktiva låstips i frågor. Effektiva låsningsstrategier kan förbättra frågeprestanda och samtidighet. Använd optimerade låsmekanismer som databassystemet tillhandahåller. Analysera och justera isoleringsnivåer för att balansera datakonsekvens och frågeprestanda.
Övervaka och finjustera. Övervaka frågeprestandamått, till exempel körning, resursanvändning och frågedataflöde. Använd databasprofileringsverktyg och övervakningsfunktioner för att identifiera frågor som fungerar dåligt. Utvärdera och finjustera frågeplaner baserat på insamlade prestandadata. Analysera frågeplaner och vänta statistik för att identifiera flaskhalsar. Använd den informationen för att optimera frågeprestanda.
Optimera indexprestanda
Index förbättrar datahämtningshastigheten genom att göra det möjligt för databaser att snabbt hitta data med hjälp av specifika kolumner eller fält. När du optimerar dessa index blir sorterings- och kopplingsåtgärderna mer effektiva, vilket leder till snabbare frågor. Väloptimerade index minskar diskens I/O-åtgärder som krävs för frågor. Om du tar bort onödiga eller redundanta index frigörs också värdefullt lagringsutrymme. Tänk på följande strategier för att optimera indexprestanda:
Analysera frågemönster. Förstå de frågemönster som körs i databasen. Identifiera de frågor som körs ofta och kan försämra prestanda. Analysera frågemönster för att avgöra vilka index som är fördelaktiga för att optimera prestanda.
Utvärdera befintliga index. Granska de befintliga indexen i databasen. Utvärdera deras användning, prestandaeffekter och relevans för frågemönstren. Identifiera redundanta eller oanvända index som du kan ta bort för att förbättra skrivprestanda och minska lagringskostnaderna.
Identifiera kolumner för indexering. Identifiera kolumner som ofta används i var,koppla ochsortera efter satser i dina frågor. Dessa kolumner är potentiella kandidater för indexering eftersom de kan aktivera snabb datahämtning.
Välj en lämplig indextyp. Välj en lämplig indextyp baserat på databassystemet. Vanliga alternativ är b-trädindex för likhets- och intervallfrågor, hash-index för exakta matchningsfrågor och fulltextindex för textsökningsåtgärder. Välj en indextyp som bäst matchar dina frågekrav.
Överväg indexkolumnordning. När du skapar sammansatta index eller index med flera kolumner bör du överväga ordningen på kolumnerna. Placera de kolumner som används oftast i frågor i början av indexet. Kolumnordningen hjälper till att säkerställa att din arbetsbelastning effektivt använder index för en mängd olika frågor.
Balansera indexstorlek. Undvik att skapa index för kolumner med låg kardinalitet eller kolumner som har ett lågt antal distinkta värden. Sådana index kan vara ineffektiva och öka databasens storlek. Indexkolumner som har hög selektivitet är i stället indexkolumner.
Underhåll indexanvändningen. Övervaka kontinuerligt användningen och prestandan för dina index. Leta efter möjligheter att skapa nya index eller ändra befintliga index baserat på ändringar i frågemönster eller prestandakrav. Ta bort eller uppdatera index som inte längre är fördelaktiga. Index har underhållskostnader. När data ändras kan index fragmenteras och påverka prestanda. Utför regelbundet indexunderhållsuppgifter, till exempel återskapa eller omorganisera index, för att säkerställa optimala prestanda.
Testa och verifiera. Innan du ändrar index i en produktionsmiljö ska du utföra noggrann testning och validering. Mät prestandaeffekten för indexrevisioner med hjälp av representativa arbetsbelastningar. Kontrollera förbättringarna mot fördefinierade riktmärken.
Kompromiss: B-trädindex kan ha höga lagringskostnader och exakta matchningsfrågor kan vara långsamma. Hash-index är inte lämpliga för intervallfrågor eller jämförelseoperatorer. Fulltextindex kan ha höga lagringskrav och icke-textbaserade datafrågor kan vara långsamma.
Överväg datakomprimering
Datakomprimering är en process för att minska storleken på data för att optimera lagringsutrymmet och förbättra arbetsbelastningens prestandaeffektivitet. Komprimerade data kräver mindre lagringsutrymme och mindre bandbredd för överföring, vilket resulterar i snabb dataöverföring. Du komprimerar data för att minska ditt lagringsavtryck och förbättra dataåtkomsttiderna. När du komprimerar data minskar I/O-åtgärder och krav på nätverksbandbredd.
Förlustfri komprimering och förlustfri komprimering är algoritmer för datakomprimering. Algoritmer för förlustfri komprimering minskar storleken på data utan att förlora någon information. Förlust av komprimeringsalgoritmer uppnår höga komprimeringsförhållanden genom att ta bort mindre viktig eller redundant information.
Kompromiss: För att komprimera och dekomprimera data behöver du beräkningsresurser, till exempel CPU och minne. Ju mer data du komprimerar, desto fler resurser behöver du.
Arkivera och rensa data
Arkivering och rensning är strategier som effektiviserar datalagringen. Arkivering flyttar äldre, mindre frekventa data till ett mer kostnadseffektivt lagringsutrymme. Rensning av data tar bort redundanta data permanent. De bidrar till prestandaeffektivitet genom att minska datavolymen, öka dataåtkomsthastigheten och minska säkerhetskopierings- och återställningstiderna:
Minska datavolymen: Mindre data innebär snabbare bearbetningstider, vilket säkerställer snabba svar på användarbegäranden.
Öka dataåtkomsthastigheten: 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 stilleståndstiden och säkerställer konsekventa prestanda.
Arkivering och rensning är avgörande för att upprätthålla högsta prestandaeffektivitet i datadrivna system.
Optimera lagringsbelastning
Att optimera lagringsbelastningen innebär att effektivisera begäranden till lagringssystemet. Det hjälper till att eliminera onödiga begäranden. Det förbättrar också datahämtningen och förhindrar att lagringen överbelastas. Genom att optimera lagringsbelastningen ser du till att lagringssystemet förblir responsivt för legitima begäranden och har högsta prestanda. Implementera strategier för att minska bearbetningsbelastningen på datalagret. Tänk på följande strategier för att optimera inläsningen av datalager:
Använda cachelagring
Cachelagring lagrar data som används ofta i ett lagringsområde med snabb åtkomst, vilket gör datahämtningen snabbare än att hämta dem från huvudkällan. Den här tekniken ökar dataprestandan genom att minska åtkomsttiderna och undvika repetitiva datahämtningar. Cachelagring förbättrar läshastigheter och svarstider för användare, särskilt för data som används ofta Den här metoden är mest effektiv för statiska data eller data som sällan ändras.
För att säkerställa optimal cachelagringseffektivitet bör du överväga faktorer som förfalloprinciper, borttagningsstrategier och hantering av cachestorlek. Justera inställningarna, till exempel TTL (Time To Live) för optimala prestanda. Tänk på följande strategier om du vill använda en cache för att optimera lagringsbelastningen:
Minnesintern cachelagring: Utför minnesintern cachelagring för att lagra data som används ofta i minnet för snabb hämtning. Du kan använda den här tekniken för programdata som är dyra att beräkna eller hämta från en databas. Minnesintern cachelagring är användbart för data som du läser ofta men inte ändras ofta.
Cachelagring av databasfrågor: Använd den här tekniken för att cachelagra resultaten 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 cachelagra resultatet av en fråga returneras efterföljande begäranden för samma fråga snabbt.
Cachelagring av innehållsleveransnätverk: 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 innehållsleveransnätverk är effektivt för statiskt innehåll, till exempel bilder, CSS-filer och JavaScript-filer. Innehållsleveransnätverk lagrar kopior av innehåll på flera platser över hela världen, så att användarna kan komma åt innehållet från en server som är nära dem geografiskt.
Använda skrivskyddade repliker
Många databaser stöder flera skrivskyddade repliker. Distribuera läsfrågor mellan repliker för att minimera efterfrågan på skrivdatabasen. Varje läsreplik kan betjäna en delmängd av trafiken, vilket kan förbättra prestandan.
När du har en arbetsbelastning med flera datarepliker som du förväntar dig ska vara synkroniserad är det bra att modellera det här distribuerade systemet med hjälp av PACELC-sats. PACELC-sats hjälper dig att förstå alternativ för svarstid kontra beständighetsavvägning i systemets icke-partiska tillstånd. Använd den här informationen för att välja en databasmotor och en strategi för datasynkronisering som bäst hanterar systemet i ett partitionerat och icke-partitionerat tillstånd. Mer information finns i CQRS-mönster (Command and Query Responsibility Segregation).
Optimera datakonsekvens
I en distribuerad arbetsbelastning, där data finns över flera noder eller platser, avgör den konsekvensnivå som du väljer hur snabbt ändringar på en plats återspeglas i andra. Att välja striktare konsekvens förbrukar fler beräkningsresurser och kan påverka prestandaeffektiviteten negativt. Å andra sidan medför en mindre strikt konsekvensnivå, som eventuell konsekvens, tillfälliga inkonsekvenser mellan noder, men kan öka prestandaeffektiviteten.
Slutlig konsekvens skapar en balans mellan datanoggrannhet och arbetsbelastningsprestanda. Ändringarna sprids gradvis i stället för omedelbart, vilket ökar arbetsbelastningens svarstider och databehandlingshastigheten. Även om det medför kortvariga inkonsekvenser, visar arbetsbelastningen så småningom konsekventa data över alla noder. Om du väljer slutlig konsekvens kan du höja en arbetsbelastnings prestanda och ytterligare förbättra dess tillgänglighet och skalbarhet.
Optimera datauppdateringar
Du kan använda optimistisk samtidighet för att hantera samtidiga uppdateringar av samma data. I stället för att låsa data och förhindra andra uppdateringar gör optimistisk samtidighet att flera användare eller processer kan fungera samtidigt och förutsätter att konflikter är sällsynta.
Med optimistisk samtidighet innehåller varje uppdateringsåtgärd en version eller tidsstämpel som representerar datatillståndet vid tidpunkten för uppdateringen. När en uppdatering i konflikt identifieras löser systemet konflikten genom att avvisa uppdateringen eller slå samman ändringarna.
Optimistisk samtidighet minimerar konkurrensen och gör att samtidiga uppdateringar kan fortsätta utan onödig låsning. Det minskar väntetiden för resurser och ger högt dataflöde.
Optimera dataförflyttning och bearbetning
Att optimera dataförflyttning och bearbetning innebär att förbättra effektiviteten och prestandan för åtgärder som rör extrahering, transformering, inläsning och bearbetning. Tänk på följande viktiga aspekter när det gäller att optimera dataförflyttning och bearbetning:
Optimering av extrahering, transformering och inläsning (ETL): Optimera ETL-processer för att minimera bearbetningstiden. Du kan effektivisera extraheringsprocessen, implementera effektiva transformeringsalgoritmer och optimera inläsningsprocessen. När du gör varje steg effektivt kan du optimera 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 kostnaderna som orsakas av upprepade åtgärder. Bearbeta flera uppgifter i en batch för att minska den totala bearbetningstiden.
Optimera lagringsdesign
Att optimera lagringsdesignen innebär att skapa en exakt datalagringsarkitektur och välja lämpliga lagringstekniker. En effektiv lagringsdesign förbättrar dataåtkomst, hämtning och manipulering. Genom strategisk lagringsdesign uppnår en arbetsbelastning förbättrade svarstider och övergripande funktioner.
Design för datanäring
Datanärhet avser den strategiska placeringen av data närmare de användare eller tjänster som har åtkomst till dem oftast. Genom att minska det fysiska eller logiska avståndet mellan data och dess användare säkerställer datanärhet snabbare dataåtkomst och bättre svarstider. Tänk på följande strategier för att optimera designen för nära närhet:
Utvärdera dataåtkomstmönster: Utvärdera arbetsbelastningens åtkomstmönster och data som används ofta. Den här analysen kan hjälpa dig att avgöra var du ska placera data för maximal nytta.
Välj lösningar som stöder dataflytt: Överväg lösningar som erbjuder dynamisk dataflytt baserat på förändrade åtkomstmönster, vilket säkerställer optimal datapositionering.
Välj lösningar som stöder datasynkronisering: Om du använder en distribuerad användarbas väljer du lösningar som underlättar datasynkronisering i olika regioner, vilket säkerställer att datarepliker är tillgängliga i närheten av användare.
Kompromiss: Om underliggande data ändras ofta implementerar du en mekanism för cacheintegrering för att säkerställa att cachelagrade data förblir uppdaterade.
Använda flerspråkig beständighet
Polyglot persistence är praxisen att använda flera datalagringstekniker för att lagra och hantera olika typer av data i ett program eller system. Olika typer av databaser eller lagringslösningar uppfyller olika datakrav.
Polyglot persistence drar nytta av fördelarna med varje datalagringsteknik för att säkerställa optimal prestanda och skalbarhet för varje typ av data. Du kan till exempel använda en relationsdatabas för att lagra strukturerade transaktionsdata. Och du kan använda en NoSQL-databas för att lagra ostrukturerade eller halvstrukturerade data.
Utforma ett schema för varje datalagringsteknik baserat på kraven för data. För relationsdatabaser kan du skapa normaliserade tabeller med lämpliga relationer. För NoSQL-databaser kan du definiera dokumentstrukturer eller nyckel/värde-par. Utveckla nödvändiga komponenter för att interagera med varje datalagringsteknik, till exempel API:er, dataåtkomstlager eller dataintegreringspipelines. Se till att programmet kan läsa och skriva data till lämpliga datalager.
Kompromiss: En datastruktur som har låg normalisering kan förbättra prestanda men introducera komplexitet.
Separata OLTP- och OLAP-system
För att separera OLTP - och OLAP-system utformar och distribuerar du distinkta system för transaktionsbearbetning och analysbearbetningsuppgifter. Med den här separationen kan du optimera varje system för dess specifika arbetsbelastning och egenskaper.
OLTP-system används för transaktionsbearbetning i realtid. De hanterar effektivt och tillförlitligt enskilda transaktioner. OLTP-system används vanligtvis för att utföra dagliga operativa uppgifter, till exempel onlinebeställningsbearbetning, lagerhantering och kunddatahantering. OLTP-system prioriterar svarstider, konsekvens och samtidighet.
OLAP-system används för komplex analysbearbetning och rapportering. De hanterar stora mängder data och utför intensiva beräkningar och aggregeringar. OLAP-system används för uppgifter som business intelligence, datautvinning och beslutsstöd. OLAP-system prioriterar frågeprestanda, dataaggregering och flerdimensionell analys.
När du separerar OLTP- och OLAP-system kan du allokera lämpliga resurser och optimera varje system för dess specifika arbetsbelastning. Med separation kan du använda olika datamodelleringstekniker för varje system. OLTP-system använder vanligtvis normaliserade scheman för effektiv transaktionsbearbetning. OLAP-system kan använda avnormaliserade scheman eller datalagertekniker för att optimera frågeprestanda.
Azure-underlättande
Profileringsdata: Azure erbjuder verktyg och tjänster som du kan använda för att profilera data, till exempel Azure Data Catalog, Azure Purview och Azure Synapse Analytics. Med de här verktygen kan du extrahera, transformera och läsa in data från olika källor, utföra datakvalitetskontroller och få insikter om data.
Övervaka dataprestanda: Om du vill övervaka dataprestanda kan du 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 övervakning av programprestanda och stöder många plattformar.
Application Insights samlar in användnings- och prestandadata. Du kan använda Log Analytics för att korrelera dessa data med konfigurations- och prestandadata mellan Azure-resurser.
Du kan använda insiktsfunktionen i Azure SQL och Azure Cosmos DB för att övervaka din databas. Med den här funktionen kan du diagnostisera och finjustera problem med databasprestanda.
Partitionering av data: Azure erbjuder olika partitioneringsstrategier för olika datalager. Varje datalager kan ha olika överväganden och konfigurationsalternativ för datapartitionering. Mer information finns i Strategier för datapartitionering.
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 använda den här funktionen för att identifiera och felsöka problem med frågeprestanda.
För relationsdatabaser bör du följa riktlinjerna för indexdesign, vägledning för SQL Server-index och Azure Cosmos DB-indexvägledning. Använd SQL Database för att utföra automatisk justering för frågor för att förbättra deras prestanda.
I SQL-databaser bör du regelbundet omorganisera eller återskapa index. Identifiera långsamma frågor och finjustera dem för att förbättra prestandan. Många databasmotorer har frågejusteringsfunktioner. Mer information finns i Metodtips för frågeprestanda.
Azure Cosmos DB har en standardindexeringsprincip som indexerar varje egenskap för varje objekt och tillämpar intervallindex för valfri sträng eller siffra. Den här principen ger dig effektiva frågeprestanda och du behöver inte hantera index i förväg.
Optimera lagringsbelastningen: Många Azure-databastjänster stöder läsrepliker. Tillgängligheten och konfigurationen av läsrepliker varierar beroende på Azure-databastjänsten. Mer information och alternativ finns i den officiella dokumentationen för varje tjänst.
Optimera lagringsdesignen: Azure erbjuder många olika datalager som passar dina arbetsbelastningsbehov. Förstå datalagertyper och välj ett Azure-datalager för ditt program.
Relaterade länkar
- Automatisk justering i SQL Database
- Azure Cosmos DB
- Vägledning för Azure Cosmos DB-index
- Azure SQL
- Metodtips för frågeprestanda
- CQRS-mönster
- Vägledning för datapartitionering
- Strategier för datapartitionering
- Standardprincip för indexering
- Vägledning för indexdesign
- OLAP-översikt
- OLTP-översikt
- Metodtips för partitionering
- Omorganisera eller återskapa index
- Välj ett Azure-datalager för ditt program
- Vägledning för SQL Server-index
- Förstå datalagertyper
Checklista för prestandaeffektivitet
Se den fullständiga uppsättningen rekommendationer.