Ez az oktatóanyag bemutatja a VertiPaq Analyzer mérőszámaités hogyan segíti a DAX-kódok optimalizálását. Minden mutató megvitatásra kerül, hogy megértse, hogyan segíthetik mindegyik javítani a kódok teljesítményét.
Ez a VertiPaq Analyzer Metrics.

Tartalomjegyzék
A VertiPaq elemző táblázatok lapja
Az első mérőszám a Táblázatok lap vagy az Átfogó táblázat nézet. Ezen a lapon láthatja a Cardinality oszlopot. A táblázatban található egyedi értékek számára vonatkozik. Ez a legfontosabb oszlop az adatmodelljében és.
Ha megnézi a DimCustomer táblát, 20 egyedi érték látható. Ez azt jelenti, hogy 20 különálló ügyfél nem ismétlődő értékekkel.
Ez egy minta DAX-lekérdezés.

Használja a függvény a különböző táblák sorainak megszámlálásához. A sorok száma megfelel a táblázatban előállított számosságnak.
Az adatméret oszlopai
A Cardinality után következő oszlop a táblázat neve . Megmutatja, hogy mennyi memóriát foglal a táblázat. Minél nagyobb az adatméret, annál nagyobb figyelmet igényel. A Col Size oszlop az Adat , a Szótár és a Hierarchia mérete oszlopok összege .

Az Adat , Szótár és Hierarchia mérete oszlopok a tömörített adatok, a szótárban kódolt oszlopok és az automatikusan generált hierarchia oszlopok teljes méretét mutatják.
Következő a Kódolás oszlop, amely a használt kódolás típusát mutatja. Az érték és a hash kódolás minden táblában előfordul, ezért az eredmény „Sok” értéket mutat.
A hivatkozási integritássértések az RI-sértések oszlopban is megjelennek . Szabálysértések akkor fordulnak elő, ha egy érték létezik a Tény táblában, de nem létezik a Dimenzió táblában.
A Felhasználói hierarchia mérete oszlop a felhasználó által meghatározott hierarchiák méretét mutatja. A kapcsolat mérete az egy a többhez beállítás több oldala alapján szintén megjelenik a Kapcsolat mérete oszlopban.
Ezután megvannak a %DB oszlopok. Ez az oszlop azt mutatja, hogy egy táblázat mennyit foglal el az összes tábla teljes méretének százalékában.
A példában látható, hogy a DimCustomer tábla a teljes táblázatméret közel 66%-át foglalja el. Az adatbázis százalékos arányának a ténytáblához képest nagyobbnak kell lennie, mint a Dimenziótábláké .
Ezek a százalékok:

Mivel ez a példa nem tartalmaz sok adatot, a Szegmensek és Partíciók oszlopok nem használhatók; csak nagyobb asztaloknál lesz alkalmazható.
A lap utolsó oszlopának neve Oszlopok . Egyszerűen megmutatja a táblázatban található számoszlopokat. Az Adattípus és a % táblázat oszlopok nem alkalmazhatók az Átfogó táblázatnézetre.
A tényértékesítési táblázat belsejében
Ez az Overall FactSales adattábla.

A táblázat minden oszlopa saját információval rendelkezik. Az Átfogó táblázatszint például különféle oszlopokat tartalmaz, mint például a Cardinality , az Oszlopméret stb.
A példában észreveheti, hogy a SalesKey számossága megegyezik a táblázat számosságával. Ez azért van, mert a SalesKey-nek nincsenek ismétlődő értékei, és egyedi érték.
Az Oszlopméret oszlop ugyanolyan fontos, mint a táblázat szintje. Az Adatok , Szótár és Hierarchia mérete oszlopok összegét mutatja .

Azt is láthatja, hogy a használt kódolási módszer a Hash Encoding , amely különálló értéklistát hoz létre.
Ha megnézi a Mennyiség sort, látni fogja, hogy a Hash Encoding módszert használja, még akkor is, ha az adattípus egész szám.
Ennek az az oka, hogy az SQL Server Analysis Services beállított egy módszert a legjobb tömörítési módszer meghatározására.

A % táblázat oszlop az oszlopot a teljes táblázatméret százalékában mutatja. A példában a SalesKey rendelkezik a táblázat legnagyobb méretével, ami logikus, mert ennek a legnagyobb a számossága és az oszlopméret.
Hasonlóképpen, a % Database oszlop egy tábla vagy egy tábla oszlopának százalékos arányát mutatja a teljes adatbázis százalékában.
Látni fogja, hogy a FactSales tábla az adatmodell teljes méretének 46,8%-a. A FactSales táblán belüli SalesKey oszlop a teljes adatbázisméret 15%-át foglalja el.
Mivel ez a példa csak kevés adatot tartalmaz, csak egy szegmens és partíció lesz. Ugyanez vonatkozik az Oszlopok oszlopra is. Az oszlopok száma mindig egy lesz az oszlopnézetben.

A VertiPaq elemző oszlopai
Az Oszlopok lapon könnyebben megtekintheti az adatokat. Részletesebb információkat nyújt, mint a Táblázatok lap.

Észreveheti, hogy hasonló oszlopokkal rendelkezik, mint a Táblázatok lapon.
Az Oszlopok lapon bármelyik oszlopot rendezheti. Ebben a példában a kardinalitás szerint van rendezve, amelyet egy kis háromszög jelöl. A Sorok oszlop azt mutatja, hogy hány sor van egy táblázatban.

Látható, hogy a FactSales-SalesKey 15 000 sorral és számossággal rendelkezik. Minden elsődleges kulcsban vannak olyan sorok, amelyek megegyeznek a megfelelő számossággal.

Ha a sorok száma nem egyenlő a kardinalitások számával, a táblázat ismétlődő értékeket tartalmaz.
Ha megnézi a FactSales-CustomerKey-t , észre fogja venni, hogy a kardinalitása 801, az oszlop mérete pedig csaknem 1,1 millió.
Ez azt jelenti, hogy optimalizálni és tömöríteni kell. Az optimalizáláshoz lépjen a LuckyTemplates fájlba, és nyissa meg a DimCustomer táblát.

A CustomerKey oszlop egy karakterlánc típusú adat. Látható, hogy az értékek C-vel kezdődnek, majd egy szám következik. Kattintson az Értékek cseréje lehetőségre az oszlopon belüli értékek módosításához.

Keresse meg a C értéket, és módosítsa üresre. Ezután módosítsa az adattípust Egész számra.

Tegye ugyanezt a Tény táblázat Ügyfélkulcs oszlopával . Kattintson az Alkalmaz gombra, és térjen vissza a DAX Studio-hoz. Ezután kattintson a Mutatók megtekintése elemre a DAX újratöltéséhez, majd a számosság szerinti rendezéséhez.

Az oszlop mérete 1,1 millióról 46 372-re csökkent. Ha megnézi a Táblázat nézetet, láthatja, hogy az oszlop mérete is 46 372-re csökkent.

Ha ugyanezt teszi a SalesPersonKey-vel, amelynek oszlopmérete csaknem 1,1 millió, akkor azt 5540-re csökkentheti.

A karakterlánc- vagy szövegtípus értékek egész típusúra történő módosítása optimalizálhatja a DAX-ot, hogy jobban teljesítsen.
Következtetés
A DAX optimalizálás a DAX Studio-ban indul el a VertiPaq Analyzer segítségével. Az elemző metrikáiban láthatja a táblák és oszlopok működését, és meghatározhatja, hogy melyik entitást kell jobban optimalizálni és fejleszteni.
Ha meg szeretné tudni, hogy a kód mely része lassítja le a kód teljesítményét, használja a VertiPaq Analyzert. Ez biztosan jobbá teszi a DAX-ot.
Nickligh