Miért felesleges felfűteni az SSAS FE cache-ét?
Néhány gondolat Chris Webb Building a Better Cache-Warmer, Part 2: The Formula Engine Cache című cikkéből:
1. A hiedelemmel ellentétben, az SSAS cache-li a számított mezők eredményét (azaz nem mindig röptében számolja ki azokat)
2. Csak azokat az értékeket cache-li, amelyek a kocka vázába térnek vissza. (Pl db*egységár) De nem tudha cache-elni a bonyolult lekérdezés eredményeként előálló dimenzió elem halmazokat (de az azokhoz tartozó értékeket már igen) például nem tudja lekeselni azokat a vevőket, akik forgalma 10%-kal tér el az átlagtól. De ha ezt egyszer megcsinálja, akkor a vevők forgalmát már le tudja cache-elni, csak magukat a vevőket nem.
3. A cache élettartama. A számított mezők által visszaadott értékek a kocka felösszegzéséig (vagy a cache törléséig) tárolódnak a cache-ben. A with member-es, subselect-es lekérdezések eredménye viszont addig tárolódik a cache-ben, amíg a lekérdezés le nem fut. Utána törlődik. Mi következik ebből? Hogy az Excel 2007 által előállított lekérdezések eredménye nem cache-elődik! Az Excel 2007 ugyanis szinte mindig ilyen lekérdezéseket generál. Ergo tök felesleges bemelegíteni a formula engine cache-ét, az egy pillanat alatt ki fog hűlni és a következő lekérdezést ugyanúgy hideg cache-ből fogja kiszolgálni, mintha nem csináltunk volna semmit. Brrrrr
Eddig nem értettem, hogy miért nem lett gyorsabb néhány számított mezőt tartalmazó lekérdezésem a cache melegítés hatására, de most már világos…
Kővári Attila - BI projekt
Új hozzászólás