Op menig database staat een jobje te draaien dat elk heel uur performance gegevens opslaat uit naam van een bekende tool genaamd Statspack. Dankzij Statspack staan DBA’s al jaren – als het een beetje meezit – niet met hun mond vol tanden als een gebruiker vraagt waarom de performance vanochtend opeens zo slecht was. De DBA kan in zo’n geval in SQL*Plus het scriptje $ORACLE_HOME\rdbms\admin\spreport.sql draaien, een begin- en eind-snapshot opgeven en er rolt een rapport uit. Interpretatie is natuurlijk de volgende horde. (Als lezers daar behoefte aan hebben, wil ik daar ook wel eens een blogpost aan wijden).
Bij elk genomen Statspack snapshot (met statspack.snap) wordt een gegevens van diverse v$ views opgeslagen in het perfstat schema. Wie kijkt als user PERFSTAT in user_tables ziet allerlei STATS$ tabellen zoals STATS$SYSSTAT (van V$SYSSTAT) en STATS$SYSTEM_EVENT (van V$SYSTEM_EVENT). De spil in het datamodel is STATS$SNAPSHOT, waar tijdstippen van snapshots opgeslagen zijn en ook met welk level het snapshot is genomen. Default is 5, maar Statspack kent meerdere niveaus. (meer…)