Verzióelőzmények a SharePoint-listákban
Fedezze fel, hogy a SharePoint verzióelőzményei hogyan segíthetnek áttekinteni egy bizonyos adatok alakulását, és hány módosításon mentek keresztül.
Ebből az oktatóanyagból megtudhatja, hogyan optimalizálhat egy mértéket a LuckyTemplates alkalmazásban. A jelentésben szereplő intézkedések optimalizálása javítja a kódok teljesítményét az értékes információk és adatok előállítása során. Ezenkívül megtudhatja a különböző értékelési módszereket és azok alkalmazását a jelentés optimalizálásához. Az oktatóanyag teljes videóját a blog alján tekintheti meg.
Tartalomjegyzék
1. Elemezze a kódex teljesítményét
Ebben a példában optimalizálnia kell ezt a jelentést:
Ez az adatmodell, amelyet használni fog:
A Jobs táblázat tartalmazza az összes információt az adott időszakban elvégzett munkákról.
Ez a táblázat az összes optimalizálni kívánt intézkedés alapja:
Először is tesztelnie kell a jelentés teljesítményét.
Lépjen a Nézet fülre , és válassza a lehetőséget. Ezután kattintson a Felvétel indítása és a Vizualok frissítése elemre . Várja meg, amíg az analizátor megjeleníti a képet.
Ha ez megtörtént, legördítse az Ösztönző bontás listát, és kattintson a Lekérdezés másolása elemre .
Ezután válassza a Külső eszközök lehetőséget a DAX Studio megnyitásához, és nézze meg a LuckyTemplates által generált kódot.
Ezután illessze be a másolt lekérdezést a munkaterületbe.
Változók a mérésben
Az első változó a DateClosed , amely a szeletelő az irányítópulton. A Tény táblázat egy oszlopát használja a szeletelő bizonyos időszakainak értékeinek lekéréséhez.
A következő változó a JobLost , amely ellenőrzi a False vagy a Blank of the Job Lost adatokat.
Az utolsó változó a MatrixVisual . Ez a kód lényege. A LuckyTemplates által generált összesített oszlopot mutatja a mátrix vizualizációk feltöltéséhez. Ebben a mátrixban csoportosítja a Job Loss Type-t, és beadja a szeletelőkből származó szűrőket. Ezután kiterjesztett oszlopokat ad hozzá.
Miután az összefoglaló oszlop befejezte a végrehajtást, az eredmények a kód alatti ablaktáblában láthatók.
A LuckyTemplates az eredményt használja a mátrixvizuális elemek feltöltésére.
Hideg gyorsítótár a DAX Studio számára
Ezután ellenőriznie kell a teljes kód végrehajtásához szükséges időt. Ehhez kapcsolja be a Kiszolgálóidőzítést, majd válassza a Gyorsítótár törlése, majd a Futtatás lehetőséget .
Amikor egy mértéket próbál optimalizálni a LuckyTemplates alkalmazásban a, jobb a hideggyorsítótár forgatókönyve szerint működni, hogy a kapott időpont megfelelő legyen. Ezután nyomja meg az F5 billentyűt, és várja meg, amíg a művelet befejeződik a Kiszolgálóidőzítések lapon .
Ha elkészült, láthatja, hogy a teljes végrehajtási idő 3,6 másodperc. Az idő nagy részét a formulamotorban töltötte, és 57 milliszekundumot a tárolómotorban
Azt is láthatja, hogy 383 tárolómotor-lekérdezést talált. Az összes ilyen lekérdezés közül 327 van a memóriába öntve, hogy újra felhasználhatók legyenek.
2. A LuckyTemplates mérésének elemzése
Ezután optimalizálnia kell ezt a 3 azonos intézkedést.
Ezeket a mértékeket ki kell bontania egy másik fájlba, és csatlakoztatnia kell a használt adatmodellhez.
Ezt követően indítsa el a Kiszolgálóidőzítéseket, hogy megtekinthesse, mennyi időt vesz igénybe a 3 intézkedés a vizualizációk feltöltésében.
A futtatás eredményei azt mutatják, hogy a mérések 1,85 másodpercet vesznek igénybe az eredmény lekéréséhez.
Az eredmény egy 10 sorból és 3 kiterjesztett oszlopból álló táblázatot mutat, amelyek az összesített oszlopokba tartoznak.
A Veszteség típusa oszlop 10 egyedi értéket tartalmaz, amelyeket a kód kiszámít az ösztönző százalékok kiszámításához.
A kód által igénybe vett idő exponenciálisan magas. Itt és mikor kell optimalizálni őket.
Az RB ösztönző százalékos intézkedése a LuckyTemplatesben
Ez egy RB Incentive% intézkedés a LuckyTemplatesben. Ez a példában használt 3 fő mérték egyike.
Láthatja, hogy megpróbálja kiszámítani az ösztönző százalékát.
Van egy JobType változója, amely lekéri az elveszett típus értéket az aktuális szűrőkörnyezetben. Azt is ellenőrzi, hogy csak egyetlen érték látható-e az aktuális szűrőkörnyezetben. Használnia kell a függvényt úgy, hogy minden feltétel teljesülésekor a megfelelő eredményt adja.
Ez az intézkedéskód sok tárolómotor-zsírt generál, ami megnöveli a kód teljes időtartamát.
Most lépjen vissza a DAX Studióba, és ellenőrizze az intézkedés által generált tárolómotor-lekérdezések mennyiségét.
Látható, hogy 600 ezredmásodpercbe telt a végrehajtás és 43 tárolómotor-lekérdezésbe telt, hogy egyszerűen lekérjék a 10 sor adatait.
Most ellenőrizze a tárolómotortól kért adatokat. Az első lekérdezésben van egy Munkaveszteség típusa és a Munkaveszteség típusának DCOUNT .
A következő lekérdezés a Feladatok lezárásának dátuma, amely a jelentés szeletelőjéből származik.
A harmadik kódban egy másik álláskiesési típust fog látni a visszahívási adatazonosítóval.
Egy másik sorban a legfontosabb kódsorok láthatók.
Az első dolog, amit lát, az a beérkezett munkák kifizetése, a kiszámlázott és a tényleges költségek.
Következő a WHERE függvény, amely kimondja a feltételt és a megfelelő eredményt. Az eredmény a szeletelő kiválasztásától és az RB Incentive% mérőszámban szereplő váltási utasítástól függően változik.
Azt is észre fogja venni, hogy a 12. és 14. sorban lévő kód ugyanaz.
Ha jobbra görget, láthatja, hogy vannak olyan sorok, amelyek ugyanazokat a lekérdezéseket tartalmazzák. A sorokon lévő lekérdezéseket az RB Incentive% mértékében szereplő switch utasítás irányítja.
Ha visszatér a LuckyTemplates RB Incentive% mértékéhez, láthatja, hányszor ismétlődik egy lekérdezés, és hogyan jelenik meg a tárolómotor lekérdezéseiben.
A logika az IF és a kapcsoló mögött
Ahhoz, hogy megértsük, miért futnak le többször a lekérdezések, meg kell értened a logikáját és SWITCH funkciókat.
Ezeket külön kell végrehajtani egy lekérdezési tervben. Mielőtt azonban ezt megtenné, feltétlenül csatlakozzon az adatbázishoz, és kapcsolja be a Lekérdezési tervet.
Hajtsa végre a SWITCH utasítást a lekérdezési tervben. Ezután jelölje ki az utasítást, majd nyomja meg az enter billentyűt.
Ez létrehoz egy logikai lekérdezési tervet különböző műveletekkel.
Ezután hajtsa végre az IF utasítást az utasítás kiemelésével és az enter megnyomásával.
Láthatja, hogy ugyanazt a logikai lekérdezési tervet generálja.
Ennek az az oka, hogy amikor egy -t használ, a motor belsőleg átalakítja ezt a függvényt IF- utasítássá. A SWITCH utasítás azonban ajánlott, mert növeli a kód olvashatóságát.
Ezt követően meg kell értenie, hogyan fut le egy kód az IF vagy SWITCH függvényen belül.
Ez egy példakód, amely egy SWITCH utasítást tartalmaz.
A bruttó nyereségre, a teljes becslésre és a teljes számlázásra vonatkozó mérőszámokat tartalmazza, amelyek mindegyike a különböző oszlopok ÖSSZEGE. Van egy funkciója a Jobs Loss Type felett, valamint egy SWITCH és TRUE utasítás.
Amikor végrehajtja ezt a kódot, látni fogja a függvények mögött meghúzódó logikát.
Az első lekérdezés a Jobs táblából megkapja a különálló Jobs Loss Type-t.
Az állásvesztés típusa mellett a Munkahelybecslés összegét is megkapja.
A WHERE feltételen belül a Jobs Loss Type oszlopban található értékek is láthatók.
3. Használjon kódértékelési módszereket
A DAX-ban 3 módszer létezik a kódok kiértékelésére:
Ezek a módszerek segítenek optimalizálni egy kódot vagy mértéket a LuckyTemplatesben.
1. módszer: szigorú értékelés
Az alábbi példa a szigorú értékelési módszert használja.
A mögöttes logika az, hogy ha a Jobs Loss Type kontextusa egyenlő A-val, akkor ez adja a bruttó nyereséget. Ellenkező esetben a teljes becslést adja. A kód ezt teszi a Jobs Loss Type minden soránál.
Ez egy másik példa a LuckyTemplates-ben, amely szigorú értékelést használ.
Amikor végrehajtja ezt a kódot, 5 tárolómotor-lekérdezést generál.
A szigorú értékelésnél a kód megadja a teljes becslést, ha a bruttó nyereség 1,4-gyel szorozva nagyobb, mint az átlagos becslés. Ellenkező esetben a bruttó nyereséget adja.
A Strict Evaluation használata több tárolómotor-lekérdezést eredményez, mivel az IF utasítás többször is ellenőrzi a bruttó nyereség versenyét, és végül akadályozza a teljes művelet teljesítményét.
2. módszer: Buzgó értékelés
Ez ugyanaz a kód, mint az előző példában.
De ahelyett, hogy az IF utasításon belüli mértékeket számította volna ki , mindent kiszámított a before RETURN -ban .
Ez azt jelenti, hogy a kimutatások ellenőrzése előtt megkapja a bruttó nyereség és a teljes becslés összes értékét az összes munkahely elvesztésének típusára vonatkozóan.
Amikor végrehajtja ezt a kódot, a tárolómotorok száma 3-ra csökken.
Javítja az egész művelet teljesítményét.
Az első műveleti lekérdezésben megkapja a Jobs Loss Type és a Munkabecslés és a Bruttó nyereség összegét.
A következő lekérdezés a Jobs Stable becslésének összegét kéri le. Ezt használják az átlagos becslés kiszámításához.
Az utolsó lekérdezés megadja a különálló Jobs Loss Type-t az ADDCOLUMNS-ba írt értékekhez .
Az Eager Evaluation használatával minden egyetlen adatgyorsítótárba kerül. Az adatok kiértékelése és iterálása is megtörténik a képletmotoron. Az IF utasítás a teljes becslést vagy a bruttó nyereséget adja vissza, az igaz vagy hamis értékeléstől függően.
Az Eager Evaluation nem mindig a legjobb módszer a kódok optimalizálására. A szigorú értékelés jobb teljesítményt eredményez, ha összetett kódjai vannak. Minden a DAX kódon belül használt függvényektől függ.
Az Eager Evaluation hátránya, hogy ha értékeket hoz létre egy IF vagy SWITCH utasítás előtt, és azokat a változókat használja az utasításon belül, amelyeket soha nem szabad végrehajtani, a motor továbbra is kiszámítja ezeket a változókat.
Íme egy példa a hátrányára:
Ideális esetben, ha a munkahelykiesés típusa egyenlő A-val, akkor bruttó nyereséget kell kapnia. Ellenkező esetben teljes becslést kap.
Mivel a Job Loss Type oszlopban nincs olyan érték, amely egyenlő lenne A-val, mindig a teljes becslést kell kapnia. Ennek ellenére továbbra is biztosítja a bruttó nyereséget az adatgyorsítótárban.
Ha megnézi az első lekérdezést, az megkapja a Munkahely elvesztésének típusát és a Munka bruttó nyereségének és becslésének összegét.
A következő lekérdezésben a Jobs táblából különálló Jobs Loss Type-t kap.
3. módszer: IF.EAGER értékelés
A következő módszer az IF.EAGER függvényértékelés, amely megismétli az Eager Evaluation viselkedését.
Lehetővé teszi, hogy olyan kódot írjon, amely a Strict Evaluation-t képviseli, és végrehajtsa azt az Eager Evaluation segítségével.
Ha megnézi ezt a mintakódot, az ugyanaz, mint a szigorú értékelési kód. Az egyetlen különbség az, hogy ez az IF.EAGER függvényt használja az IF helyett .
A kód végrehajtása előtt győződjön meg arról, hogy csatlakozik a LuckyTemplates modellhez, és kapcsolja be a Kiszolgálóidőzítést. Ha elkészült, nyomja meg az F5 billentyűt.
Látható, hogy 3 tárolómotor-lekérdezést generált.
Az első lekérdezés megkapja a munkahelykiesés típusát, valamint a Munkabecslés és a Bruttó nyereség összegét.
A második lekérdezés megkapja az állásbecslés összegét.
Az utolsó lekérdezés a Jobs táblából megkapja a különálló Jobs Loss Type-t.
Észre fogja venni, hogy ugyanazt a viselkedést hajtotta végre, mint az Eager Evaluation.
Az értékelési módszerek összefoglalása
A számítások teljesítményének javítása érdekében emlékeznie kell a következőkre:
De vegye figyelembe, hogy ezt a három módszert ki kell próbálnia, hogy megtudja, mi a legmegfelelőbb a jelentésben.
4. Intézkedés optimalizálása a LuckyTemplatesben
Ennek az oktatóanyagnak a fő tanulsága a kódok optimalizálása.
Menjen vissza, és nézze meg az RB Incentive% intézkedést, amelyet a szigorú értékeléssel hajtanak végre. Ezután próbálja meg kiértékelni az Eager Evaluation segítségével.
Kezdje változók létrehozásával és a RETURN függvény bevitelével.
Módosítsa a mértékhivatkozásokat a változókkal.
Ezt követően erősítse meg az intézkedést, és menjen a DAX Stúdióba, és nézze meg, hogy javított-e a teljesítményen.
Azt mutatja, hogy a teljes idő 642 ezredmásodperc, és a tárolómotor-lekérdezések száma 39-re csökkent.
Most hozza létre az összes adat változóit, és módosítsa az összes mértékhivatkozást a megfelelő változókra.
Ezután erősítse meg a mértéket, és futtassa a kódot a DAX stúdióban.
A teljes végrehajtási idő és a tárolómotor-lekérdezések teljes mennyisége 600 ezredmásodpercről 170 ezredmásodpercre, 43 lekérdezésé pedig 15 lekérdezésre csökkent.
Azt is láthatja, hogy nincsenek ismétlődések. Ha változók vannak a kódban, az javítja azok olvashatóságát és teljesítményét.
Speciális optimalizálás a LuckyTemplates-ben
Ezután tovább kell optimalizálnia a DAX kódokat.
Használat helyett, használja funkció.
A HASONEVALUE számolja a szűrőkontextusban elérhető értékek számát, ami nagyon intenzív művelet. Eközben az ISINSCOPE ellenőrzi, hogy a szállított oszlopot használják-e csoportosításra vagy sem.
A függvények módosítása után erősítse meg az intézkedést, és hajtsa végre a DAX Stúdióban.
Látható, hogy a tárolómotor-lekérdezések száma immár 12. A teljes végrehajtási idő is 105 ezredmásodperc lett.
A 2. lekérdezésben egy visszahívási adatazonosítót fog látni.
Ez néha előfordul, ha a SELECTEDVALUE értéket használja a szövegmezővel. Amikor megjelenik a Visszahívási adatok, a tárolómotor meghívja a képletmotort, hogy segítsen megoldani a kód összetettségét. Ez lelassítja a mérés teljesítményét.
A jelentés jobb teljesítménye érdekében el kell távolítania a visszahívási adatokat. Ehhez létre kell hoznia egy konfigurációs táblát az adatmodellben.
Lépjen az Adatok megadása lehetőségre, és illessze be az adatokat. Nevezze el a táblát LossTypeConfigTable .
Ezután kattintson a Szerkesztés gombra az importálni kívánt oszlop adattípusának módosításához.
A Loss Type ID adattípusának tanári értéknek kell lennie, hogy a SELECTEDVALUE függvényen belül használható legyen.
Miután betöltötte a modellbe, hozzon létre kapcsolatot a Jobs tábla és a LossTypeConfigTable tábla között a veszteségtípus alapján.
A kapcsolat létrehozása után lépjen a Jobs táblára, és adjon hozzá egy új oszlopot. Nevezzük veszteségazonosítónak, majd írjuk be a képletet.
Használja a függvényt a konfigurációs táblázathoz, majd bontsa ki a veszteségtípus-azonosítót.
Ezután térjen vissza az RB Incentive% mértékéhez, és hivatkozzon a numerikus mezőre a szövegmező helyett. A SELECTEDVALUE mezőben cserélje ki a veszteség típusát a veszteségazonosítóra.
Ezután módosítsa a kódon belüli összes mértéket. Szöveges értékek helyett egész számot használjon a feladattípus ellenőrzéséhez.
Miután megváltoztatta a kódot, erősítse meg az intézkedést, és hajtsa végre a DAX Stúdióban.
A visszahívási adatazonosító kikerül a lekérdezésből, és a kód végrehajtási ideje 93 ezredmásodpercre csökken.
Az RB Incentive% intézkedés immár teljesen optimalizálva van.
5. Optimalizálja a LuckyTemplates egyéb intézkedéseit
A WR Incentive% és a QB Incentive% intézkedéseket is optimalizálnia kell.
Másolja ki és illessze be az RB Incentive% mértékében használt pontos kódot. Ezután futtassa együtt a 3 intézkedést.
A teljes végrehajtási idő optimalizálva van, és 1855 ezredmásodpercről 213 ezredmásodpercre csökkent. Ezenkívül csak 12 tárolómotor-lekérdezés van.
Az első két lekérdezés létrehozza a szűrőkörnyezetet, a többi pedig a Jobs Loss Type oszlopban található értékek pontos számát jelenti.
Mivel minden intézkedést optimalizáltak, futtassa az eredeti kódot, és nézze meg, hogyan változott a teljesítmény. Az adatok azt mutatják, hogy most 1,9 másodperc alatt számítják ki.
A teljes kód teljesítménye most optimalizált, így a jelentés gyorsabb és jobb.
Következtetés
A LuckyTemplates jelentésekben az intézkedéseket optimalizálni kell, hogy biztosítsák a DAX-kódok zökkenőmentes működését. Ez a jelentés általános teljesítményét is javítja.
Megtanulta a mérések optimalizálásának különböző módszereit a LuckyTemplates szolgáltatásban, és megtanulta, hogyan kell felmérni, hogy melyiket használja a jelentés kontextusától függően.
Fedezze fel, hogy a SharePoint verzióelőzményei hogyan segíthetnek áttekinteni egy bizonyos adatok alakulását, és hány módosításon mentek keresztül.
Itt található egy eszköz jelentések és látványelemek készítéséhez, egy színhexadecimális kódválasztó, amellyel könnyedén lekérheti LuckyTemplates jelentései színeit.
Könnyedén megjeleníthet egy dátumtartományt szeletelőként a jelentésben időszaki táblázat segítségével. Használjon M-kódot a dinamikus dátumszeletelő létrehozásához a LuckyTemplates alkalmazásban.
Az Excel gyakorisági táblázataiban, valamint az aránytáblázatokban készültek. Nos, nézze meg, mik ezek, és mikor kell használni őket.
Ismerje meg, hogyan töltheti le és telepítheti a DAX Studio és a Tabular Editor 3 alkalmazást, és hogyan konfigurálhatja őket a LuckyTemplates és az Excel programban való használatra.
Ez a blog tartalmazza a Shape Map vizualizációt a LuckyTemplates térbeli elemzéséhez. Megmutatom, hogyan használhatja hatékonyan ezt a vizualizációt annak funkcióival és elemeivel.
Ebben az oktatóanyagban egy egyedülálló ötletet mutatok be a pénzügyi jelentésekkel kapcsolatban, amely az eredmények hozzárendelését jelenti a LuckyTemplates-en belüli táblázatsablonok előre meghatározásához.
Hozzon létre DAX-mértékeket a LuckyTemplates alkalmazásban meglévő mértékek vagy képletek használatával. Ezt nevezem mértékelágazási technikának.
Ebben a blogban fedezze fel a LuckyTemplates adatkészletet, a leghatékonyabb függvényhívást, amely M- és DAX-függvények ezreit juttatja a keze ügyébe.
A mai oktatóanyagban megosztok néhány adatmodellezési technikát a DAX-mérések jobb rendszerezéséhez a hatékonyabb munkafolyamat érdekében.