Miért fut többször a lekérdezésem?
Amikor frissít a Power Queryben, a háttérben sok minden történik annak érdekében, hogy zökkenőmentes felhasználói élményt nyújtson, és hatékonyan és biztonságosan hajthassa végre a lekérdezéseket. Bizonyos esetekben azonban előfordulhat, hogy a Power Query több adatforrás-kérést indít el az adatok frissítésekor. Néha ezek a kérések normálisak, máskor azonban megelőzhetők.
Az alábbi szakaszok néhány olyan példányt mutatnak be, amikor a Power Query több kérést is küldhet egy adatforrásnak.
Az összekötők különböző okokból több hívást is kezdeményezhetnek egy adatforráshoz, beleértve a metaadatokat, az eredmények gyorsítótárazását, a lapozást stb. Ez a viselkedés normális, és úgy van kialakítva, hogy így működjön.
Több kérés is előfordulhat ugyanahhoz az adatforráshoz, ha több lekérdezés is lekéri az adatforrást. Ezek a kérések akkor is előfordulhatnak, ha csak egy lekérdezés hivatkozik az adatforrásra. Ha egy vagy több lekérdezés hivatkozik erre a lekérdezésre, akkor az egyes lekérdezések – az összes lekérdezéssel együtt – egymástól függetlenül lesznek kiértékelve.
Asztali környezetben az adatmodell összes táblájának egyetlen frissítése egyetlen megosztott gyorsítótár használatával történik. A gyorsítótárazás csökkentheti annak a valószínűségét, hogy több kérelem is ugyanarra az adatforrásra legyen telepítve, mivel egy lekérdezés akkor is hasznos lehet, ha ugyanazt a kérést már futtatták és gyorsítótárazták egy másik lekérdezéshez. Még itt is több kérést kaphat, mert:
- Az adatforrás nem gyorsítótárazott (például helyi CSV-fájlok).
- Az adatforrásra irányuló kérés eltér az alárendelt műveletek miatt már gyorsítótárazott kérésétől (ami megváltoztathatja az összecsukást).
- A gyorsítótár túl kicsi (ami viszonylag valószínűtlen).
- A lekérdezések nagyjából ugyanabban az időben futnak.
Felhőkörnyezetben a rendszer minden lekérdezést a saját külön gyorsítótárával frissít. Így a lekérdezések nem élvezhetik ugyanazt a kérést, amely már gyorsítótárazva lett egy másik lekérdezéshez.
Előfordulhat, hogy a Power Query összecsukható rétege több kérést is generálhat egy adatforráshoz a lefelé irányuló műveletek alapján. Ilyen esetekben elkerülheti a több kérés használatát Table.Buffer
. További információ: A táblázat pufferelése
A Power BI Desktopban az Analysis Services (AS) két kiértékelés használatával frissíti az adatokat: az egyik a séma beolvasása – amelyet az AS nulla sor kérésével tesz lehetővé –, a másik pedig az adatok beolvasása. Ha a nullasoros séma számításához be kell kérni az adatokat, ismétlődő adatforrás-kérések fordulhatnak elő.
Az adatvédelmet az egyes lekérdezések saját kiértékelései alapján állapítja meg, hogy a lekérdezések biztonságosan futtathatók-e együtt. Ez a kiértékelés néha több kérést is okozhat egy adatforráshoz. Annak jelzése, hogy egy adott kérés adatelemzésből származik, az az, hogy "TOP 1000" feltétellel rendelkezik (bár nem minden adatforrás támogatja ezt a feltételt). Általánosságban elmondható, hogy az adatok védelmének letiltása – feltételezve, hogy elfogadható – megszüntetné a "TOP 1000" vagy más, adatvédelemmel kapcsolatos kéréseket a frissítés során. További információ: Az adatvédelmi tűzfal letiltása
Az adatvédelmet szolgáló értékelésekhez hasonlóan a Power Query-szerkesztő alapértelmezés szerint letölti az egyes lekérdezési lépések első 1000 sorának előnézetét. Ezeknek a soroknak a letöltésével biztosítható, hogy az adatok előnézete azonnal megjeleníthető legyen, amint kijelöl egy lépést, de ismétlődő adatforrás-kéréseket is okozhat. További információ: Háttérelemzés letiltása
A Power Query-szerkesztő különböző háttérfeladatai további adatforrás-kéréseket is aktiválhatnak (például lekérdezés-összecsukási elemzést, oszlopprofilozást, az 1000 soros előzetes verzió automatikus frissítését, amelyet a Power Query aktivál az eredmények Excelbe való betöltése után stb.).
Több lekérdezés példányainak elkülönítéséhez kapcsolja ki a lekérdezési folyamat bizonyos részeit, hogy elkülönítse, honnan érkeznek az ismétlődő kérések. Ha például a következőt kezdi:
- A Power Query-szerkesztőben
- A tűzfal le van tiltva
- Háttérelemzés letiltva
- Ha az oszlopprofilozás és az egyéb háttérfeladatok le vannak tiltva
- [Nem kötelező] Művelet
Table.Buffer
Ebben a példában csak egyetlen M-kiértékelése van, amely a Power Query-szerkesztő előzetes verziójának frissítésekor történik. Ha a duplikált kérések ezen a ponton fordulnak elő, akkor azok valamilyen módon a lekérdezés készítésének módjában rejlik. Ha nem, és ha egyenként engedélyezi a korábban ismertetett beállításokat, megfigyelheti, hogy mikor kezdődnek az ismétlődő kérések.
A következő szakaszok részletesebben ismertetik ezeket a lépéseket.
Nem kell újracsatlakoznia vagy újra létrehoznia a lekérdezést, csak nyissa meg a tesztelni kívánt lekérdezést a Power Query-szerkesztőben. A lekérdezést duplikálhatja a szerkesztőben, ha nem szeretné elrontani a meglévő lekérdezést.
A következő lépés az adatvédelmi tűzfal letiltása. Ez a lépés feltételezi, hogy nem aggódik a források közötti adatszivárgás miatt, ezért az adatvédelmi tűzfal letiltása az Excel Gyors egyesítésének beállításában leírt Always ignore Privacy Level beállítással vagy az Adatvédelmi szintek figyelmen kívül hagyásával és a Power BI Desktop power BI Desktop adatvédelmi szintjeiben ismertetett teljesítménybeállításokkal végezhető el.
A normál tesztelés folytatása előtt mindenképpen vonja vissza ezt a lépést.
A következő lépés a háttérelemzés letiltása. A háttérelemzést az Adatok előnézetének letöltése a Power BI Power Query háttérfrissítésének letiltása című témakörben ismertetett háttérbeállításban szabályozza. Ezt a beállítást az Excelben is letilthatja.
Lehetőség van arra is Table.Buffer
, hogy az összes adatot olvasásra kényszerítse, ami utánozza, mi történik egy terhelés során. A Power Query-szerkesztőben való használathoz Table.Buffer
:
A Power Query szerkesztőjének szerkesztőlécében válassza az fx gombot egy új lépés hozzáadásához.
A szerkesztőlécen vegye körül az előző lépés nevét Table.Buffer (<az előző lépés neve ide> kerül). Ha például az előző lépés el lett nevezve
Source
, a szerkesztőléc megjelenik= Source
. Szerkessze a képletsávban lévő lépést a kimondandó szöveghez= Table.Buffer(Source)
.
További információ: Table.Buffer
A teszt futtatásához frissítsen a Power Query-szerkesztőben.