English

EDV Beratung Michael Müller

Dipl. Math. Michael Müller

SqlStat, Informix SQL Performance Statistics

SqlStat ist ein Kornshell Script und dient der Performace Analyse von Informix Datenbank Servern. Es eignet sich zur ersten Übersicht über die Lastverhältnisse großer Datenbankserver aufgeschlüsselt nach SQL Statements.

Es wird unter der GNU General Public License veröffentlicht. Jede Haftung wird ausgeschlossen.

Download

Beschreibung

Aufruf:

SqlStat [ nsamples [ sleep-secs-per-sample [ nrepetitions ] ] ]

oder: SqlStat -h
nsamples: Anzahl Stichproben
sleep: Anzahl Sekunden zwischen zwei Stichproben
nrepetitions: Anzahl Widerholungen, die ein neues Output Directory erzeugen (default 1)

Die Gesamtlaufzeit ist (nsamples * sleep-secs-per-sample * nrepetitions) Sekunden. Als Ergebnis wird ein Directory namens erg.<hh:mm:ss> erzeugt, in dem die stichprobenartig gewonnenen SQL Statements gewichtet nach der Last, die sie im Server erzeugten, gelistet sind. (Falls nrepetitions angegeben wurde, wird ein Directory für jede Widerholing erzeugt.) Für jedes Statement gibt es eine Datei, die die Anzahl Stichproben dieses Statements im Dateinamen <samples>.<something> enthält. Zum Beispiel:

$ SqlStat 120 1

$ cd erg.15:25:37

$ ls -l
total 20
-rw-r--r--    1 michaelm users        1231 Jul 21 21:27 00013.35489_1
-rw-r--r--    1 michaelm users        1750 Jul 21 21:27 00018.16460_1
-rw-r--r--    1 michaelm users        7726 Jul 21 21:27 00083.16476_1
-rw-r--r--    1 michaelm users          82 Jul 21 21:27 INFO

$ cat INFO
Wed Jul 21 15:25:37 CEST 2004
Wed Jul 21 15:27:51 CEST 2004
114 non empty samples

$ head -7 00083.16476_1
Current SQL statement :
   update t3 set c = 1

@ 21.07.21:25, ses 28, user michaelm, pid 5150, host m1, fe testpg1
  ready 1cpu sqlexec   
@ 21.07.21:25, ses 29, user michaelm, pid 5147, host m1, fe testpg1
  ready 1cpu sqlexec   

$ head -7 00013.35489_1
Current SQL statement :
   select tabid from syscolumns

@ 21.07.21:25, ses 21, user michaelm, pid 5121, host m1, fe testpg2
  running 3cpu sqlexec   
@ 21.07.21:26, ses 21, user michaelm, pid 5121, host m1, fe testpg2
  running 3cpu sqlexec   

Das bedeutet, daß z.B. Statement "update t3 set c = 1" 83 von 114 mal beobactet wurde und 83/114 = 72.8% der Last erzeugt hat. Außerdem werden weitere Informationen, wie thread state, thread name, session id, und pid protokolliert.