Preporuke za optimizaciju performansi podataka

Odnosi se na ovu Power Platform preporuku za provjeru učinkovitosti dobro osmišljene izvedbe:

PE:08 Optimizirajte performanse podataka. Optimizirajte spremišta podataka za njihovu namjeravanu i stvarnu upotrebu u radnom opterećenju.

U ovom se vodiču opisuju preporuke za optimizaciju performansi podataka. Optimizacija performansi podataka odnosi se na pročišćavanje učinkovitosti s kojom radno opterećenje obrađuje i pohranjuje podatke. Svaka operacija radnog opterećenja, transakcija ili izračun obično se oslanja na brzo i točno dohvaćanje, obradu i pohranu podataka. Kada su performanse podataka optimizirane, radno opterećenje radi glatko. Kompromitirane performanse podataka stvaraju domino efekt loše učinkovitosti performansi. Neuspjeh u optimizaciji performansi podataka rezultira kašnjenjem odgovora, povećanom latencijom i smanjenom skalabilnošću. To ugrožava učinkovitost cjelokupnog radnog opterećenja.

Definicije

Pojam Definicija
Pohrana podataka Resurs koji pohranjuje podatke kao što su baza podataka, spremište objekata ili zajedničko korištenje datoteka.
Index Struktura baze podataka koja omogućuje brz pristup stavkama.
Internetska analitička obrada (OLAP) Tehnologija koja organizira velike poslovne baze podataka, podržava složene analize i izvodi složene analitičke upite bez negativnog utjecaja na transakcijske sustave.
Online obrada transakcija (OLTP) Tehnologija koja bilježi poslovne interakcije kako se događaju u svakodnevnom poslovanju organizacije.
Particioniranje Proces fizičke podjele podataka u zasebne skladišta podataka.
Ugađanje upita Proces koji optimizira brzinu upita baze podataka.

Ključne strategije dizajna

Da biste optimizirali upotrebu podataka, osigurajte da su spremišta podataka optimizirana za namjeravanu upotrebu i za njihovu stvarnu upotrebu u radnom opterećenju. Optimizirana upotreba podataka može poboljšati performanse upita, smanjiti potrošnju resursa i povećati ukupnu učinkovitost sustava. Razmotrite sljedeće strategije:

  • Podaci o profilu. Shvatite svoje podatke i osigurajte da je vaš podatkovni model prikladan za vaše radno opterećenje. Razmotrite čimbenike kao što su normalizacija podataka i tehnike particioniranja. Za učinkovito dohvaćanje podataka provjerite jeste li odabrali odgovarajuće vrste podataka i definirali odnose između tablica.

  • Optimizirajte performanse upita. Analizirajte i optimizirajte upite koji se pokreću u radnom opterećenju. Koristite tehnike kao što su optimizacija upita i predmemoriranje. Koristite prikaze na strani poslužitelja za prethodno filtriranje podataka. Da biste identificirali uska grla, upotrijebite alate za praćenje performansi, a zatim uveďte potrebna poboljšanja.

  • Redovito pratite i podešavajte sustav. Kontinuirano pratite performanse radnog opterećenja i ponavljajte konfiguraciju pohrane podataka i optimizacije upita. Na temelju najboljih praksi podešavanja performansi analizirajte metrike sustava, identificirajte područja poboljšanja i implementirajte promjene. Kako podaci rastu, možda ćete morati ažurirati upite kako biste ostali učinkoviti.

Podaci o profilu

Profiliranje podataka uključuje ispitivanje podataka iz izvora i prikupljanje informacija o njima. Cilj je razumjeti kvalitetu, strukturu i karakteristike podataka o radnom opterećenju. Ovaj proces omogućuje identifikaciju problema kao što su nedostajuće vrijednosti, duplikati, nedosljedni formati i druge anomalije.

Za učinkovito profiliranje podataka razmotrite sljedeće strategije:

  • Razumjeti strukturu podataka. Pregledajte strukturu podataka, uključujući tablice, stupce i odnose. Odredite vrste podataka, duljine i ograničenja koja se primjenjuju na svaki stupac. Evaluacija strukture podataka pomaže vam razumjeti kako su podaci organizirani i kako su povezani s drugim elementima podataka.

  • Analizirajte količinu podataka. Procijenite količinu podataka da biste razumjeli ukupnu veličinu i obrasce rasta. Odredite broj zapisa ili dokumenata i veličinu pojedinačnih tablica ili zbirki. Te vam informacije pomažu u procjeni zahtjeva za pohranu i prepoznavanju problema sa skalabilnošću.

  • Identificirajte odnose podataka. Istražite odnose između elemenata podataka. Saznajte kako su podaci povezani da biste mogli odrediti kako promjene u jednoj tablici ili dokumentu mogu utjecati na povezane podatke.

  • Procijenite kvalitetu podataka. Procijenite kvalitetu svojih podataka ispitivanjem čimbenika kao što su potpunost, točnost, dosljednost i jedinstvenost. Identificirajte anomalije podataka, vrijednosti koje nedostaju ili duplicirane zapise koji mogu utjecati na integritet podataka i performanse upita. Ovaj korak pomaže vam identificirati područja za čišćenje i poboljšanje podataka.

  • Snimanje distribucije podataka. Analizirajte raspodjelu vrijednosti unutar svakog stupca da biste odredili obrasce podataka. Identificirajte česte i rijetke vrijednosti, netipične vrijednosti i iskrivljene podatke. Da biste optimizirali performanse upita, analizirajte bi li zamjenski ključevi bili prikladni za pružanje poboljšanih performansi.

Praćenje performansi podataka

Praćenje performansi podataka je praksa dosljednog praćenja učinkovitosti spremišta podataka. Uključuje prikupljanje i analizu metrika performansi specifičnih za operacije s podacima, koristeći alate prilagođene za rješenja za nadzor na razini sustava, specifična za bazu podataka ili rješenja za nadzor trećih strana. Učinkovito praćenje performansi podataka omogućuje vam proaktivno prepoznavanje i ublažavanje potencijalnih uskih grla, osiguravajući učinkovitost procesa i zadataka povezanih s podacima.

Da biste pratili performanse podataka, razmotrite sljedeće strategije:

  • Prikupljajte mjerne podatke specifične za podatke. Prikupite ključne mjerne podatke koji se izravno odnose na performanse podataka. Ti mjerni podaci uključuju vrijeme odgovora na upit i propusnost podataka.

  • Postaviteupozorenja o podacima. Postavite upozorenja posebno za mjerne podatke podataka. Koristite unaprijed definirane pragove ili anomalije u tim mjernim podacima da biste pokrenuli upozorenja. Upozorenja vam omogućuju primanje obavijesti kada mjerni podaci o izvedbi premaše prihvatljive raspone ili pokažu neuobičajeno ponašanje; Na primjer, ako upit baze podataka traje dulje od očekivanog ili ako propusnost podataka značajno padne. Ta upozorenja možete postaviti pomoću specijaliziranih alata za nadzor ili prilagođenih skripti.

  • Dijagnosticirajte probleme s performansama podataka. Redovito pregledavajte prikupljene mjerne podatke kako biste identificirali potencijalna uska grla u performansama ili degradaciju u podatkovnim operacijama. Alati za vizualizaciju ili nadzorne ploče mogu biti neprocjenjivi u ovom procesu, pomažući u isticanju trendova, uskih grla i odstupanja u performansama podataka. Nakon što se utvrdi, istražite temeljne uzroke ovih problema i isplanirajte odgovarajuće korake za otklanjanje.

Podaci o particiji

Particioniranje uključuje dijeljenje velikih skupova podataka ili radnih opterećenja velikog volumena na manje podskupove kojima se može upravljati. Particioniranje povećava učinkovitost performansi podataka raspodjelom radnog opterećenja i poboljšanjem paralelne obrade. Također osigurava učinkovitiji pristup podacima na temelju specifičnih potreba i obrazaca upita. Podatke možete particionirati okomito ili vodoravno (što se naziva i dijeljenje). Na primjer, ako koristite Dataverse elastične tablice, razmislite što bi trebao biti ključ za particioniranje.

Strategija Definicija Primjer Primjeri uporabe
Okomita pregrada Podijelite tablicu na manje tablice odabirom određenih stupaca ili polja za svaku particiju. Svaka particija predstavlja podskup potpunih podataka. Ako imate tablicu sa stupcima A, B, C i D, možete stvoriti jednu tablicu sa stupcima A i B, a drugu sa stupcima C i D. - Tablica sadrži mnogo stupaca, ali upiti ne pristupaju svim stupcima zajedno.
- Neki stupci su veći od drugih i njihovo odvajanje može poboljšati I/O performanse.
- Različiti dijelovi podataka imaju različite obrasce pristupa.
Horizontalno podjela Podijelite podatke na temelju redaka ili raspona vrijednosti (poznato i kao dijeljenje). Svaka particija sadrži podskup redaka sa sličnim karakteristikama. Ako imate tablicu s recima od 1 do 1000, možete stvoriti jednu particiju s recicima od 1 do 500, a drugu s recima od 501 do 1000. - Skup podataka prevelik je za jednu lokaciju ili poslužitelj.
- Podacima se pristupa na temelju određenih raspona ili filtara.
- Potrebno je rasporediti radno opterećenje na fizičke čvorove ili poslužitelje za poboljšane performanse.

Da biste particionirali podatke, razmotrite sljedeće korake:

  • Analizirajte podatke i upite. Analizirajte podatke i obrasce upita da biste identificirali prikladne strategije particioniranja ili dijeljenja. Razumjeti prirodu podataka, obrasce pristupa i zahtjeve za distribuciju.

  • Odredite ključ. Odaberite ključ za particioniranje ili dijeljenje za distribuciju podataka na particijama ili dijeljenjima. Pažljivo odaberite ključ na temelju karakteristika podataka i zahtjeva upita.

  • Odredite logiku. Odredite logiku particioniranja ili dijeljenja na temelju odabranog ključa. Razmislite o podjeli podataka u raspone, primjeni algoritama raspršivanja ili korištenju drugih tehnika particioniranja.

Optimizirajte upite

Optimizacija upita precizira upite kako bi se smanjili podaci koji ispunjavaju uvjete i vraćeni podaci. Ove prilagodbe povećavaju učinkovitost i brzinu dohvaćanja podataka. Kao rezultat toga, baza podataka ima manje radno opterećenje, resursi rade učinkovitije, a korisnici uživaju u glatkijim interakcijama.

Da biste optimizirali upite baze podataka, razmotrite sljedeće strategije:

  • Prepišite upite. Pregledajte i analizirajte složene upite kako biste identificirali prilike za njihovo prepisivanje. Razmislite o restrukturiranju logike upita, uklanjanju suvišnih operacija ili pojednostavljivanju sintakse upita.

  • Izbjegnite problem s upitom N+1. Smanjite broj povratnih putovanja u bazu podataka pomoću spajanja i skupnog dohvaćanja za učinkovito dohvaćanje povezanih podataka.

  • Promjena redoslijeda spajanja. Procijenite i razmislite o preuređivanju redoslijeda spajanja da biste smanjili broj redaka u svakoj operaciji spajanja. Redoslijed spajanja tablica može utjecati na performanse upita.

  • Upiti za predmemoriju. Pohranite rezultate često pokrenutih upita radi lakše ponovne upotrebe. Predmemoriranje upita eliminira potrebu za opetovanim pokretanjem istog upita i smanjuje troškove obrade upita.

  • Pratite i podešavajte. Pratite mjerne podatke o performansama upita, kao što su vrijeme izvođenja, iskorištenost resursa i propusnost upita. Koristite alate za profiliranje baze podataka i funkcije nadzora da biste identificirali upite s lošim performansama. Koristite te informacije za optimizaciju performansi upita.

Arhiviranje i čišćenje podataka

Arhiviranje i čišćenje su strategije koje pojednostavljuju pohranu podataka. Arhiviranje premješta starije podatke kojima se rjeđe pristupa u isplativiju pohranu. Trajno čišćenje podataka uklanja suvišne podatke. Obje metode doprinose učinkovitosti performansi smanjenjem količine podataka, povećanjem brzine pristupa podacima i smanjenjem vremena sigurnosnog kopiranja i oporavka.

  • Smanjenje količine podataka: Manje podataka znači brže vrijeme obrade, osiguravajući brze odgovore na zahtjeve korisnika.
  • Povećanje brzine pristupa podacima: Skraćeni skup podataka omogućuje brže upite i dohvaćanje podataka, optimizirajući odziv sustava.
  • Skraćivanje vremena sigurnosnog kopiranja i oporavka: Manji skupovi podataka ubrzavaju procese sigurnosnog kopiranja i vraćanja, smanjujući vrijeme zastoja i osiguravajući dosljedne performanse.

Arhiviranje i čišćenje ključni su za održavanje vrhunske učinkovitosti performansi u sustavima temeljenim na podacima.

Optimizirajte opterećenje prostora za pohranu

Optimizacija opterećenja pohrane znači pojednostavljenje zahtjeva za sustav za pohranu. Pomaže u uklanjanju nepotrebnih zahtjeva, poboljšava dohvaćanje podataka i izbjegava preopterećenje sustava za pohranu. Optimizacija opterećenja pohrane osigurava da sustav za pohranu ostaje osjetljiv na legitimne zahtjeve i održava vrhunske performanse. Implementirajte strategije za smanjenje opterećenja obrade u spremištu podataka. Da biste optimizirali opterećenje pohrane podataka, razmotrite strategije koje slijede.

Koristite predmemoriranje

Predmemoriranje pohranjuje podatke kojima se često pristupa u području za pohranu s brzim pristupom, što dohvaćanje podataka čini bržim od izvlačenja iz glavnog izvora. Ova tehnika poboljšava performanse podataka skraćivanjem vremena pristupa i izbjegavanjem ponavljajućeg dohvaćanja podataka. Predmemoriranje poboljšava brzine čitanja i vrijeme odziva korisnika, posebno za podatke kojima se često pristupa. Ova metoda je najučinkovitija na statičkim podacima ili podacima koji se rijetko mijenjaju.

Da biste osigurali optimalnu učinkovitost predmemorije, uzmite u obzir čimbenike kao što su pravila isteka, strategije deložacije i upravljanje veličinom predmemorije. Prilagodite postavke, kao što je vrijeme života (TTL), za optimalne performanse. Da biste koristili predmemoriju za optimizaciju opterećenja prostora za pohranu, razmotrite sljedeće strategije:

  • Predmemoriranje u memoriji: Izvršite predmemoriranje u memoriji za pohranu podataka kojima se često pristupa u memoriju radi brzog dohvaćanja. Ovu tehniku možete koristiti za podatke aplikacije koje je skupo izračunati ili dohvatiti iz baze podataka. Predmemoriranje u memoriji korisno je za podatke koje često čitate, ali se ne mijenjaju često. Na primjer, možete koristiti varijable u tijekovima oblaka ili zbirkama u aplikacijama radnog područja za predmemoriranje podataka.

  • Predmemoriranje upita baze podataka: koristite ovu tehniku za predmemoriranje rezultata upita baze podataka kako biste izbjegli pokretanje istog upita više puta. Predmemoriranje upita baze podataka korisno je za složene i dugotrajne upite baze podataka. Kada predmemorirate rezultate upita, brzo se vraćaju naknadni zahtjevi za isti upit. Razmislite i o korištenju prikaza na strani poslužitelja gdje je to moguće za prethodno filtriranje podataka da biste suzili podatke relevantne za vaš upit.

  • Mrežno predmemoriranje za isporuku sadržaja: Koristite ovu tehniku za predmemoriranje web-sadržaja na distribuiranim mrežnim poslužiteljima kako biste smanjili kašnjenje i poboljšali isporuku sadržaja. Predmemoriranje mreže za isporuku sadržaja učinkovito je za statični sadržaj, kao što su slike, CSS datoteke i JavaScript datoteke. Mreže za isporuku sadržaja pohranjuju kopije sadržaja na više lokacija diljem svijeta, tako da korisnici mogu pristupiti sadržaju s poslužitelja koji im je geografski blizu.

Optimizirajte ažuriranja podataka

Optimizacija ažuriranja podataka uključuje procjenu ažuriranja podataka koja se izvode kako bi se osigurala njihova izvedba. Ažuriranja mogu utjecati na performanse više od drugih operacija jer mogu pokrenuti nepotreban rad i uzrokovati sukobe zaključavanja.

Da biste procijenili kako optimizirati ažuriranja podataka, razmotrite sljedeće:

  • Promjene podataka. Optimizirajte automatizaciju za korištenje predslika podataka ili filtara kako biste smanjili rad kada nije došlo do stvarne promjene. Izbjegavajte pokretanje automatizacije za neizmijenjene podatke.

  • Automatizacija. Procijenite kada i kako se ažuriranja pokreću na temelju promjena podataka i optimizirajte okidače tako da uključuju filtar. Na primjer, za pokretanje automatizacije samo kada se promijeni određeno polje u izvoru podataka. Procijenite ažuriranja koja postupno pokreću automatizaciju više puta. Umjesto toga, razmislite možete li stvoriti prilagođenu operaciju za obradu svih obrada. Na primjer, ako se narudžba isporučuje, a datum isporuke i broj za praćenje ažuriraju zasebno, oboje se mogu ažurirati u isto vrijeme u prilagođenoj operaciji "ShipOrder".

  • Zastoji. Procijenite spore operacije ažuriranja koje mogu uzrokovati probleme zbog više tijekova koji ažuriraju iste podatke u različitim redoslijedima. Ova neučinkovitost može dovesti do sukoba zaključavanja ili čak potencijalnih zastoja, što rezultira nepotrebnom preradom. Ažurirajte različite resurse istim redoslijedom kako biste smanjili sukob.

  • Skupna ažuriranja. Ako pokrećete operacije na više redaka tablice, razmislite o korištenju skupnih operacija.

Optimizirajte kretanje i obradu podataka

Optimizacija kretanja i obrade podataka uključuje poboljšanje učinkovitosti i performansi operacija povezanih s ekstrakcijom, transformacijom, učitavanjem i obradom podataka. Razmotrite sljedeće ključne aspekte optimizacije kretanja i obrade podataka:

  • Optimizacija izdvajanja, transformacije i učitavanja (ETL): Optimizirajte ETL procese kako biste smanjili vrijeme obrade. Možete pojednostaviti proces ekstrakcije, implementirati učinkovite algoritme transformacije i optimizirati proces učitavanja. Kada svaki korak učinite učinkovitim, optimizirate cjelokupni tijek rada.

  • Paralelna obrada: koristite tehnike paralelne obrade za poboljšanje performansi. Kada distribuirate zadatke obrade podataka u više niti ili čvorova, možete istovremeno podijeliti i obraditi radno opterećenje, što rezultira brzom obradom.

  • Skupna obrada: grupirajte slične zadatke kako biste smanjili režijske troškove uzrokovane ponovljenim operacijama. Obradite više zadataka u seriji kako biste smanjili ukupno vrijeme obrade.

Dizajn za blizinu podataka

Blizina podataka odnosi se na strateško postavljanje podataka bliže korisnicima ili uslugama koje im najčešće pristupaju. Smanjenje fizičke ili logičke udaljenosti između podataka i njihovih korisnika osigurava brži pristup podacima i poboljšanu responzivnost. Da biste optimizirali dizajn za neposrednu blizinu, razmotrite ove strategije:

  • Procijenite obrasce pristupa podacima: procijenite obrasce pristupa radnog opterećenja i podatke kojima se često pristupa. Ova analiza može pomoći u određivanju gdje smjestiti podatke za maksimalnu korist.

  • Odaberite rješenja koja podržavaju premještanje podataka: razmotrite rješenja koja nude dinamičko premještanje podataka na temelju promjenjivih obrazaca pristupa, osiguravajući optimalno pozicioniranje podataka.

  • Odaberite rješenja koja podržavaju sinkronizaciju podataka: Ako poslužujete distribuiranu korisničku bazu, odaberite rješenja koja omogućuju sinkronizaciju podataka u različitim regijama kako biste osigurali da su replike podataka dostupne u blizini korisnika.

Kompromis: Ako se temeljni podaci često mijenjaju, implementirajte mehanizam poništenja predmemorije kako biste osigurali da predmemorirani podaci ostanu ažurni.

Power Platform olakšavanje

Praćenje performansi podataka: Da biste nadzirali performanse podataka, razmislite o korištenju Azure Monitora za prikupljanje i analizu mjernih podataka infrastrukture, zapisnika i podataka aplikacije. Monitor možete integrirati s drugim uslugama kao što su Application Insights. Application Insights Omogućuje praćenje performansi aplikacija i podržava mnoge platforme.

Application Insights Prikuplja podatke o korištenju i performansama. Log Analytics možete koristiti za korelaciju tih podataka s podacima o konfiguraciji i performansama u resursima platforme Azure. Tok Application Insights podataka za Dataverse trenutno pruža podatke o performansama koji se odnose na dolazne pozive API-ja Dataverse , Dataverse pozive za izvršenje dodataka i pozive Dataverse SDK-a.

Optimizirajte uzorke podataka upita u aplikacijama radnog područja: Slijedite dokumentirane smjernice i prijedloge. Pogledajte Optimizirani uzorci podataka upita u Power Apps.

Optimizirajte način prilagodbe, proširenja ili integracije s Dataverse: Slijedite dokumentirane najbolje prakse i smjernice. Pogledajte Najbolje prakse i smjernice za korištenje Microsoft Dataverse.

Optimizirajte upite baze podataka i performanse indeksa: upotrijebite značajku uvida u performanse upita Azure SQL Database da biste optimizirali upite, tablice i baze podataka. Tu značajku možete koristiti i za prepoznavanje i otklanjanje poteškoća s performansama upita.

Za relacijske baze podataka slijedite smjernice za dizajn indeksa , smjernice za indeks sustava SQL Server ismjernice za indeks platforme Azure Cosmos DB . Koristite SQL bazu podataka za automatsko podešavanje upita kako biste poboljšali njihove performanse.

Za SQL baze podataka trebali biste redovito reorganizirati ili ponovno izgraditi indekse. Prepoznajte spore upite i prilagodite ih da biste poboljšali performanse. Mnogi moduli baze podataka imaju značajke podešavanja upita. Dodatne informacije potražite u najboljim praksama za izvedbu upita.

Azure Cosmos DB ima zadanu politiku indeksiranja koja indeksira svako svojstvo svake stavke i nameće indekse raspona za bilo koji niz ili broj. Taj vam pravilnik pruža učinkovite performanse upita i ne morate unaprijed upravljati indeksima.

Optimizirajte opterećenje prostora za pohranu: mnogi servisi baze podataka Azure podržavaju replike za čitanje. Dostupnost i konfiguracija replika za čitanje razlikuju se ovisno o usluzi baze podataka Azure. Pogledajte službenu dokumentaciju za svaku uslugu kako biste razumjeli detalje i opcije.

Kontrolni popis učinkovitosti performansi

Pogledajte kompletan skup preporuka.