Statspack


Allgemein

PERFSTAT bietet eine gute Möglichkeit einer Performance Auswertung und das ist noch viel wichtiger, auch auf einer Standard Edtion.

Vorbereitung

Folgende Parameter müssen auf der Datenbank gesetzt oder kontrolliert werden:

alter system set statistics_level=typical;
alter system set timed_statistics=TRUE;

Installation

SQL> @?/rdbms/admin/spcreate.sql

Für die Installation von perfstat benötigen wir folgende Benutzereingaben

Choose the PERFSTAT user's password
-----------------------------------
...
Enter value for perfstat_password: oracle

Choose the Default tablespace for the PERFSTAT user
---------------------------------------------------
...
Enter value for default_tablespace: SYSAUX

Choose the Temporary tablespace for the PERFSTAT user
-----------------------------------------------------
...
Enter value for temporary_tablespace: TEMP

Automatisieren der Statistik Sammelung

Das SQL Skript spauto.sql erstellt einen Job, welcher jede Stunde einen Statspack Snapshot erstellt. Die Verwendung von DBMS_SCHEDULER ist ebenfalls möglich.

SQL> conn perfstat/oracle
Connected.
SQL> @?/rdbms/admin/spauto.sql

Manuelle Statistik erstellung und Parameter Änderungen

Das Manuelle erstellen eines Snapshots wird mit statspack.snap Befehl durchgeführt. Der default SNAP Level ist dabei 5.

Beispiele:

SQL> execute statspack.snap;
SQL> execute statspack.snap(i_snap_level=>7);
Ändern des SNAP Level für zukünfitge Ausführungen
SQL> execute statspack.snap(i_snap_level=>7,I_MODIFY_PARAMETER=>'TRUE');

Übersicht der SNAP Level

4 Generele Performance Statistik
5 Wie in Level 4 aber inklusive Performance intensiven SQL Anweisungen
6 Wie in Level 5 aber mit SQL Plänen
7 Wie in Level 6 aber mit Segment Statistik
10 Wie in Level 7 aber mit Parent und Child Latches

Statistik Baseline

Es ist auch möglich eine Baseline zu erstellen, welche es vereinfacht diese später mit Snapshots zu vergleichen welche bei hoher Last und schlechter Performance erstellt worden sind. Baselines können auch mit einer Timeframe erstellt werden.

Beispiel:

Erstellen einer Baseline mittels einer SNAP ID
SQL> execute statspack.make_baseline(i_begin_snap=>2,i_end_snap=>3);
Löschen einer Baseline
SQL> execute statspack.make_baseline(2,3,FALSE);

Snapshots löschen

Beispiel:

Löschen bestimmter SNAP IDs
SQL> @?/rdbms/admin/sppurge.sql
Löschen aller SNAPs
SQL> @?/rdbms/admin/sptrunc.sql
Löschen des perfstat Schemas
SQL> @?/rdbms/admin/spdrop.sql
Nach Datum löschen
SQL> exec statspack.purge (i_begin_date=>to_date('01-JAN-2012', 'DD-MON-YYYY'),i_end_date =>to_date('02-JAN-2012', 'DD-MON-YYYY'),i_extended_purge=>TRUE);

Snapshots exportieren

exp system@dbm parfile=$ORACLE_HOME/spuexp.par

Statspack Report

SQL> @?/rdbms/admin/spreport.sql
Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s