Dataverse'i virtuaalsete tabelite päringute optimeerimine
Kehtib nende Dynamics 365 rakenduste kohta:
Human Resources
Märkus
Jõustub 2020. aasta novembris.
- Common Data Service on ümber nimetatud Microsoft Dataverse'iks. Lisateavet leiate Power Automate'i ajaveebist.
- Mõnda terminit on Microsoft Dataverse'is uuendatud. Näiteks olem on nüüd tabel ja väli on nüüd veerg. Lisateavet leiad artiklist Terminoloogia uuendused.
Seda teemat värskendatakse peagi, et kajastada viimaseid termineid.
Väljasta
Ülevaade
Dataverse virtuaalsete tabelite kasutamisel integratsioonide ja muude andmeühenduste arendamiseks Dynamics 365 Human Resources rakendusega saate kogeda jõudlusprobleeme virtuaalsete tabelitega seotud päringutega. Aeglane päringu täitmine võib toimuda erinevate klientide või liideste vahel. Näiteks võib ilmneda probleem järgmistel juhtudel.
- Virtuaalse tabeli päringu esitamisel Dataverse Web API kaudu
- Power Api loomine virtuaalse tabeli vastu
- Power BI aruande koostamisel virtuaalsele tabelile
Kõik need liidesed võivad jõudlusprobleemi esile tuua.
Personaliosakonna Dataverse virtuaaltabelite aeglase jõudluse üheks põhjuseks on tabeli navigeerimisatribuutidega seotud virtuaalse tabeli võõrvõtme veerud. Kui virtuaalse tabeli jaoks luuakse navigeerimisatribuudid, lisatakse tabelisse võõrvõtme veerg, mis tähistab seotud virtuaalse tabeli võtmeveeru võtme väärtust. Näiteks lisatakse veerg _mshr_fk_person_id_value olemile mshr_hcmworkerbaseentity, mille mshr_dirpersonentity olemi välisvõtme atribuut. Kuna nende võõrvõtmete veergude väärtusi säilitatakse tabelis, võib väärtuste toomine avaldada negatiivset mõju virtuaalse tabeli päringu jõudlusele.
Võimalikud sümptomid
Näide, kus seda mõju võite näha, on päringutes olemi Töötaja ( mshr_hcmworkerentity) või Baastöötaja (mshr_hcmworkerbaseentity) vastu. Jõudluse probleem võib ilmneda mitmel erineval viisil:
Aeglane päringu tegevus: virtuaaltabeli vastane päring võib tagastada oodatud tulemused, kuid päringu täitmise lõpuleviimiseks kulub oodatust kauem aega.
Päringu aegumine: päring võib aeguda ja tagastada järgmise tõrke: "Finance and Operations kutsumiseks saadi luba, kuid Finance and Operations tagas tõrke tüübiga InternalServerError."
Ootamatu tõrge: päring võib tagastada tõrketüübi 400 järgmise teatega: "Ilmnes ootamatu tõrge."

Ahendamine: päring võib serveri ressursse üle kasutada ja muutuda ahendamiseks. Sel juhul tagastab päring järgmise tõrke: "Finance and Operations kutsumiseks hangiti luba ,kuid Finance and Operations tagastas tõrge tüübiga 429." Lisateavet personaliosakonna ahendamise kohta leiate teemast Ahendamise KKK.

Lahendus
Andmepäringusse kaasatud veergude arvu piiramine
Virtuaalsete tabelite puhul on üks meetoditest, millel on kõige suurem potentsiaal päringu jõudluse parandamiseks, päringus valitud veergude arvu piiramine. Päringu toimivuse optimeerimise üldjuhend on piirata päringus tagastatud veerge ainult nende omadustega, mida vajate. See kehtib eriti virtuaalsete tabelite võõrvõtmete veergude kohta. Kui te ei vaja integratsiooniks või aruandeks võõrvõtmete veergude väärtusi, siis struktureerige päring, et valida ainult need veerud, mida vajate (v.a võõrvõtme veerud).
Veergude valimine OData päringus
Dataverse Web API kaudu virtuaalsest tabelist päringu tegemisel saate piirata päringusse kaasatud veergude arvu, kasutades $select süsteemipäringut ja määratleda veerud, mille kohta vajate tulemite tagastamist. Jõudluse maksimeerimiseks jätke päringust välja võõrvõtme veerud (need, millel on mshr_FK eesliide).
Näiteks järgmine päring mshr_hcmworkerbaseentity olemi vastu sisaldab ainult $select päringu suvandiklauslis sisalduvaid veerge, v.a võõrvõtme väärtused. See pakub olulisi täiustusi jõudluses päringu üle, mis sisaldab kõiki tabeliveerge.
GET [Organization URI]/api/data/v9.1/mshr_hcmworkerbaseentities?$select=mshr_name, mshr_firstname, mshr_gender, mshr_partynumber, mshr_phoneticfirstname, mshr_deceaseddate, mshr_nationalitycountryregion, mshr_allowrehire, mshr_electroniclocationid, mshr_middlename, mshr_knownas, mshr_professionaltitle, mshr_nativelanguageid, mshr_disabledverificationdate, mshr_personalsuffix, mshr_lastnameprefix, mshr_personbirthcity, mshr_personaltitle, mshr_phoneticlastname, mshr_namesequencedisplayas, mshr_personbirthcountryregion, mshr_isdisabled, mshr_birthdate, mshr_professionalsuffix, mshr_isfulltimestudent, mshr_education, mshr_namealias, mshr_phoneticmiddlename, mshr_personnelnumber, mshr_hcmworkerbaseentityid, mshr_motherbirthcountryregion, mshr_fatherbirthcountryregion, mshr_lastname, mshr_languageid, mshr_partytype, mshr_ethnicoriginid, mshr_citizenshipcountryregion HTTP/1.1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Soovitus piirata valitud veergude arvu kehtib ka siis, kui kasutate $expand päringu suvandit päringu laiendamiseks seotud virtuaalsetele tabelitele navigeerimisatribuutide kaudu. Näiteks järgmine päring sisaldab olemit mshr_hcmworkerbaseentity koos laiendatud veergudega olemist mshr_dirpersonentity. Pange tähele, $select päringu suvand on kaasatud ka päringu $expand suvandi klauslisse.
GET [Organization URI]/api/data/v9.1/mshr_hcmworkerbaseentities?$select=mshr_name, mshr_firstname, mshr_gender, mshr_partynumber, mshr_phoneticfirstname, mshr_deceaseddate, mshr_nationalitycountryregion, mshr_allowrehire, mshr_electroniclocationid, mshr_middlename, mshr_knownas&$expand=mshr_FK_Person_id($select=mshr_addressstreet, mshr_addresscity, mshr_addressstate, mshr_addresszipcode) HTTP/1.1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Kasutades seda meetodit andmete toomiseks päringu $select valikuga päringu $expand valikus, näete tavaliselt suuremat jõudluse parendust, kui navigeerimisaviis üksuste vahel on mitu-ühele suhe. Te ei pruugi näha sama kahanemist päringu täitmisajas ühe-mitmele suhte laiendamisel. Lisateavet Dataverse virtuaaltabelite seose definitsiooni kohta vt Tabeliseosed.
Lisateavet Dataverse Web API $select ja $expand kasutamise kohta vt teemast Seotud üksusekirjete hankimine päringuga.
Veergude valimine rakenduses Power BI
Kui teil tekib Power BI aruande Dataverse virtuaalse tabeli suhtes aruande ülesehitamisel mis tahes peatse jõudlusel, saate parandada jõudlust, välistades võõrvõtme veerud aruande tabelist valitud veergudest. Näiteks kui kasutate aruande loomiseks olemi mshr_hcmworkerbaseentity vastu rakendust Power BI Desktop, saate kasutada järgmisi samme aruande päringusse kaasamiseks veergude valimiseks.
Power BI Desktop rakenduses valige toiminguribaripploendis Too andmed valige väärtus Veel....
Sisestage aknas Hangi andmed otsinguboksi Common Data Service, valige ühendus Common Data Service ja valige käsk Ühenda.
Akna Common Data Service väljas Serveri URL sisestage oma Dataverse keskkonna organisatsiooni URI ja valige OK.

Laiendage aknas Navigator sõlm Olemid.
Otsinguboksis sisestage mshr_hcmworkerbaseentity ja valige olem.
Valige Andmete transformeermine.
Valige Power Query Editor aknas Täpsem redaktor.
Aknas Täpsem redaktor uuendage päringut nii, et see otsiks välja järgmisena, lisades või eemaldades kõik vajalikud veerud massiivile.
let Source = Cds.Entities("[Your Organization URI]", [ReorderColumns=null, UseFormattedValue=null]), entities = Source{[Group="entities"]}[Data], mshr_hcmworkerbaseentities = entities{[EntitySetName="mshr_hcmworkerbaseentities"]}[Data], selectedWorkerBaseEntityColumns=Table.SelectColumns(mshr_hcmworkerbaseentities,{"mshr_name","mshr_partynumber", "mshr_professionaltitle","mshr_birthdate"}) in selectedWorkerBaseEntityColumns
Valige suvand Valmis.
Märkus
Kui olete enne päringu värskendamist päringult saanud tõrke tüübist 429, peate võib-olla enne päringu värskendamist ootama uuesti prooviperioodi, et see saaks täielikult lõpule viia.
Klõpsake Power Query Editor tegevusribal nuppu Sule ja rakenda.
Siis saate alustada Power BI aruande ülesehimist virtuaaltabelist valitud veergude suhtes.
Veergude valimine rakenduses Power Apps
Sarnaselt Dataverse Web API ja Power BI päringutega saate parandada Power Apps Dataverse virtuaaltabelitel põhineva päringu jõudlust, jättes rakendusest välja seotud tabelite veerud. Kui lehele on lisatud seotud tabeli veerge, sisaldab andmete toomiseks loodud päringu URL ka seotud tabeli võõrvõti atribuute. See, nagu ülaltoodud OData päringu veergude valimise näites, vähendab jõudlust täiendavate andmeotsingute tõttu.
Selle probleemi lahendamiseks saate kinnitada, et ükski seotud tabelite andmeväli ei ole teie Power App'i andmevormile kaasatud.
- Valige puuvaate paanil ekraanile andmevorm.
- Valige paanil Atribuudid suvand Redigeeri atribuudis Väljad.
- Kontrollige andme paanil, et ükski valitud väli ei ole andmeallika virtuaaltabeli väljaks.
Näiteks kui üks rakenduse lehel kaasatud andmeväljadest viitab teisele tabelile, nt ThisItem.Worker.Name, kus töötaja on seotud tabel, võib andmete toomisel jõudlust vähendada.
Saate kasutada Power Apps Monitori, et Power App'i andmete toomiseks kaasaks päringusse ainult vajalikud veerud. Toimingu getRows jaoks loodud URL-i saate vaadata, kindlustamaks, et teie rakendusele valitud veerud on andmete toomisel optimaalsed.

Andmepäringu filtreerimine
Teine meetod päringu täitmise jõudluse parandamiseks on päringutulemites tagastatud kirjete arvu piiramine. Seda saate teha tulemuste filtreerimisega, et tagada ainult vajalike kirjete saamine.
Lisateavet päringuandmete filtreerimise kohta vt filtreerimistulemustest.
Päringu lehekülje suuruse piiramine
Suurte andmekomplektiga töötamisel saate päringutulemused jagada mitmeks leheks, lisades andmepäringutele odata.maxpagesize eelispäise.
Lisateavet saalimise kohta vtMäärake lehel tagastamiseks üksuste arv.