Ez az oktatóanyag a CallBackDataID- ről lesz szó , amely a DAX Studio teljesítményével kapcsolatos probléma. Megtudhatja, mit csinál, és hogyan befolyásolja a DAX-lekérdezés teljesítményét.
A tárolómotor úgy működik, hogy adatgyorsítótár formájában adatokat biztosítson a képletmotor számára. Ha azonban a tárolómotor nem tud kiértékelni egy kifejezést, a CallBackDataID használatával segítséget kér a képletmotortól, és visszahívja .
Ha a számításban szerepel egy CallBackDataID , az lelassítja a DAX teljesítményét, mivel a tárolási és a képletmotort is használja. Ez azonban még mindig jobb, mintha csak a formulamotor végezné el az összes munkát, mert továbbra is működik a tömörített adatokon, és nem igényel materializálást.
Ezenkívül, ha a képletmotor érintett, az eredmények nem kerülnek gyorsítótárba. A gyorsítótárak javítják a felhasználói élményt a LuckyTemplates lekérdezések vagy mérések futtatásakor.
Tartalomjegyzék
Hol található a CallBackDataID
A CallBackDataID a DAX Studio szerveridőzítésében található. Fontosságuk miatt kiemelve vannak az xmSQL utasításban. Ha optimalizálni szeretné DAX-ját, a CallBackDataID megtalálása a legjobb kiindulópont.
Egy másik optimalizálási technika a szűrők kihasználásaamikor csak lehetséges. A CALCULATE használata a szűrőkben jobb, mint a használatamint egy asztal. A FILTER egy iterátor, és amikor szűrsz egy táblát, az iterálni fogja. E két iterátor jelenléte lelassíthatja a lekérdezést.
Íme két példalekérdezés CallBackDataID- vel és anélkül .

Ez egy lokalizált mérték, amely meghatározza a fenti két lekérdezést.

A felső mérték iterálja az értékesítési táblázatot, megszorozza az aktuális árat és a mennyiséget, majd összegzi. Az alsó mérték azt ellenőrzi, hogy a vásárlás dátuma nagyobb-e vagy egyenlő-e 2016. március 31-ével. Ha egy mértékben van egy  függvény, akkor egy CallBackDataID jön létre , mert nem használja a CALCULATE-t .
Ennek teszteléséhez futtassa a CallBackDataID azonosítóval rendelkező lekérdezést . A futtatás előtt feltétlenül törölje a gyorsítótárat, és kapcsolja be a Kiszolgálóidőzítéseket és a Lekérdezési terveket.
Ha alul a Kiszolgálóidőzítések fülre kattint, láthatja, hogy az első vizsgálat ki van jelölve. Ennek oka a CallBackDataID jelenléte .

A CallBackDataID az xmSQL utasításban is látható . Az intézkedésben szereplő IF funkció meghaladja a tárolómotor képességeit, ezért segítséget kér a formulamotortól.

A teljesítménnyel kapcsolatos probléma megoldása
Ha olyan lekérdezést futtat, amely nem rendelkezik CallBackDataID azonosítóval , akkor láthatja, hogy a vizsgálatok már nincsenek kiemelve.

Ennek az az oka, hogy a CALCULATE szűrő le van nyomva a tárolómotorhoz. Már nincs szüksége a képletmotor segítségére, mert képes magától is működni.
Amennyire csak lehetséges, próbáljon szűrőket használni a CALCULATE alkalmazásban . Optimalizálja a DAX teljesítményét azáltal, hogy a munka nagy részét a tárolómotorba tolja, ami gyorsabbá teszi azt.
Következtetés
Ha a lekérdezés túl bonyolult ahhoz, hogy a tárolómotor működjön, teljesítménybeli ütések léphetnek fel. Ez olyan szükségtelen folyamatokat hoz a számításba, mint a CallBackDataID , és lelassítja a DAX-ot. Csökkentheti a CLCULATE szűrőivel .