Oracle: SQL-Statements abfangen/mitschneiden

Tach’chen.

Kann mir jemand sagen, wie ich bei einem Programm mit Oracle-DB (XE) Schnittstelle die abgesetzten SQL-Statements mitschneiden kann? Mein Ziel ist es festzustellen, bei welchen Aktionen welche Statements an die DB geschickt werden. Gibt es dafür vielleicht irgendein (Freeware) Tool? Auch vom Redo Log habe ich schon gehört, aber weiß leider nicht, ob mir das weiterhelfen würde. Das Live-Mitschneiden wäre mir am liebsten.

Vielen Dank
TTR

Hi!

Kann mir jemand sagen, wie ich bei einem Programm mit
Oracle-DB (XE) Schnittstelle die abgesetzten SQL-Statements
mitschneiden kann? Mein Ziel ist es festzustellen, bei welchen
Aktionen welche Statements an die DB geschickt werden. Gibt es
dafür vielleicht irgendein (Freeware) Tool? Auch vom Redo Log
habe ich schon gehört, aber weiß leider nicht, ob mir das
weiterhelfen würde. Das Live-Mitschneiden wäre mir am
liebsten.

In den Views v$session, v$sql, v$sqltext, v$… findest Du die nötigen Informationen - allerdings würde ich es mit dem Session-Browser im TOAD machen (es gibt eine Trial-Version auf www.quest.com)

Grüße,
Tomh

Hallo,

Du könntest die DB in den Trace Modus schalten: INIT.ORA–> Parameter SQL_TRACE = True. Damit werden ALLE Statemets in ein Trace File auf dem Server geschrieben (im Udump Verzeichnis). Dies kann (resp. wird) allerdings die Performance beinflussen. MIttes TKPROF kannst du anschliessend das TRac File auswerten

Gruss

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi!

Kann mir jemand sagen, wie ich bei einem Programm mit
Oracle-DB (XE) Schnittstelle die abgesetzten SQL-Statements
mitschneiden kann? Mein Ziel ist es festzustellen, bei welchen
Aktionen welche Statements an die DB geschickt werden. Gibt es
dafür vielleicht irgendein (Freeware) Tool? Auch vom Redo Log
habe ich schon gehört, aber weiß leider nicht, ob mir das
weiterhelfen würde. Das Live-Mitschneiden wäre mir am
liebsten.

In den Views v$session, v$sql, v$sqltext, v$… findest Du die
nötigen Informationen

Schon mal ein guter Anfang. Leider finde ich zwar die Statements, aber nicht mit den übergebenen Werten; ich weiß also, auf Welche Tabellen Update-Statements ausgeführt wurde, aber nicht, welche Werte gesetzt wurden. Lässt sich das auch noch irgendwo herausfinden?

  • allerdings würde ich es mit dem
    Session-Browser im TOAD machen (es gibt eine Trial-Version auf
    www.quest.com)

Werde ich mir mal ansehen.
Vielen Dank
TTR

Tach’chen.

Kann mir jemand sagen, wie ich bei einem Programm mit
Oracle-DB (XE) Schnittstelle die abgesetzten SQL-Statements
mitschneiden kann? Mein Ziel ist es festzustellen, bei welchen
Aktionen welche Statements an die DB geschickt werden. Gibt es
dafür vielleicht irgendein (Freeware) Tool? Auch vom Redo Log
habe ich schon gehört, aber weiß leider nicht, ob mir das
weiterhelfen würde. Das Live-Mitschneiden wäre mir am
liebsten.

Vielen Dank
TTR

Hallo,

Du könntest die DB in den Trace Modus schalten: INIT.ORA–>
Parameter SQL_TRACE = True. Damit werden ALLE Statemets in ein
Trace File auf dem Server geschrieben (im Udump Verzeichnis).
Dies kann (resp. wird) allerdings die Performance beinflussen.
MIttes TKPROF kannst du anschliessend das TRac File auswerten

Hmm, entweder hab ich es nicht richtig verstanden, oder es ist wirklich kompliziert und unhandlich.

Eine Auswertung (Performance) möchte ich gar nicht vornehmen. Mir würde ausreichen, wenn ich die über den DB-Port eingehenden STatements mitschneiden könnte. Das hätte auch den Vorteil, dass ich nicht die Session beeinflussen müsste, was ich ja im Falle eines Trace tun muss. Hier müsste ich also im Programmcode den Trace starten etc. Eine Analyse müsste sich aber doch auch machen lassen, ohne dass man an den Quellcode muss, oder nicht?

So würde ich mir das vorstellen, und zwar möglichst parallel zum Knöpfedrücken, sonst wird das mit der Nachvollziehbarkeit auch heikel:
Button x gedrückt --> Statement y ausgeführt
Button z gedrückt --> Statements a und b ausgeführt.

Die Tabelle V$sql habe ich mir schon angesehen, nur leider fehlen dort die übergebenen Variablen; sie werden nur ab 1 durchnummeriert dargestellt.

Weiterhin dankbar für Ratschläge
TTR

Hi!

Kann mir jemand sagen, wie ich bei einem Programm mit
Oracle-DB (XE) Schnittstelle die abgesetzten SQL-Statements
mitschneiden kann? Mein Ziel ist es festzustellen, bei welchen
Aktionen welche Statements an die DB geschickt werden. Gibt es
dafür vielleicht irgendein (Freeware) Tool? Auch vom Redo Log
habe ich schon gehört, aber weiß leider nicht, ob mir das
weiterhelfen würde. Das Live-Mitschneiden wäre mir am
liebsten.

In den Views v$session, v$sql, v$sqltext, v$… findest Du die
nötigen Informationen - allerdings würde ich es mit dem
Session-Browser im TOAD machen (es gibt eine Trial-Version auf
www.quest.com)

SESSION-Browser scheint mir problematisch zu sein, weil ich für den Connect eine neue Session öffnen muss. Diese Session kann ich mir dann zwar näher ansehen, aber mich interessiert die Session die das Programm hat, welches Statements auf die DB schickt. Oder habe ich diese Funktionalität im TOAD übersehen?

Vielen Dank
TTR

Hi!

SESSION-Browser scheint mir problematisch zu sein, weil ich
für den Connect eine neue Session öffnen muss. Diese Session
kann ich mir dann zwar näher ansehen, aber mich interessiert
die Session die das Programm hat, welches Statements auf die
DB schickt. Oder habe ich diese Funktionalität im TOAD
übersehen?

Oje, jetzt kommts wieder mal auf die TOAD-Version und die Installationsart an … ich sehe _alle_ Sessions der Datenbank und wähle mir eine aus, die ich genauer ansehen will …

ABER: Im vorigen Posting schreibst Du, daß Du Dir die Werte ansehen möchtest - DIE siehst Du hier nicht, sondern bestenfalls die Bindevariablen … um wirklich die einzutragenden Werte zu sehen, fällt mir jetzt auf die Schnelle nix ein - außer ein paar Outputs in den Transaktionsalgorithmus einzutragen … aber irgendwie hatte ich da schon mal was in diese Richtung - ich melde mich zumindest wieder, wenn ich’s wieder weiß bzw. ob es überhaupt dieses Problem war …

Grüße,
Tomh

Hi!

SESSION-Browser scheint mir problematisch zu sein, weil ich
für den Connect eine neue Session öffnen muss. Diese Session
kann ich mir dann zwar näher ansehen, aber mich interessiert
die Session die das Programm hat, welches Statements auf die
DB schickt. Oder habe ich diese Funktionalität im TOAD
übersehen?

Oje, jetzt kommts wieder mal auf die TOAD-Version und die
Installationsart an … ich sehe _alle_ Sessions der Datenbank
und wähle mir eine aus, die ich genauer ansehen will …

Also ich sehe nur die Sessions, die ich direkt in TOAD gestartet habe, nicht die, die schon laufen (über Applikationen erzeugt wurden).

ABER: Im vorigen Posting schreibst Du, daß Du Dir die Werte
ansehen möchtest - DIE siehst Du hier nicht, sondern
bestenfalls die Bindevariablen … um wirklich die
einzutragenden Werte zu sehen, fällt mir jetzt auf die
Schnelle nix ein - außer ein paar Outputs in den
Transaktionsalgorithmus einzutragen … aber irgendwie hatte
ich da schon mal was in diese Richtung - ich melde mich
zumindest wieder, wenn ich’s wieder weiß bzw. ob es überhaupt
dieses Problem war …

Ja, einerseits wären die Werte wichtig, aber was noch wichtiger ist:
Mittels der v$sql-Tabelle finde ich gleiche Statements nur einmalig. Wenn also ein bestimmtes Statement nacheinander mit zwei verschiedenen Werten abgesetzt wurde, sehe ich es nur einmal und das macht die Analyse dann doch relativ unmöglich.

Vielen Dank
TTR

Tach’chen.

Kann mir jemand sagen, wie ich bei einem Programm mit
Oracle-DB (XE) Schnittstelle die abgesetzten SQL-Statements
mitschneiden kann? Mein Ziel ist es festzustellen, bei welchen
Aktionen welche Statements an die DB geschickt werden. Gibt es
dafür vielleicht irgendein (Freeware) Tool? Auch vom Redo Log
habe ich schon gehört, aber weiß leider nicht, ob mir das
weiterhelfen würde. Das Live-Mitschneiden wäre mir am
liebsten.

Vielen Dank
TTR

Hallo,

Du könntest die DB in den Trace Modus schalten: INIT.ORA–>
Parameter SQL_TRACE = True. Damit werden ALLE Statemets in ein
Trace File auf dem Server geschrieben (im Udump Verzeichnis).
Dies kann (resp. wird) allerdings die Performance beinflussen.
MIttes TKPROF kannst du anschliessend das TRac File auswerten

Kann ich den Trace für eine laufende Session anschalten? Im Moment habe ich leider keinen Zugriff auf den Quellcode um für das besagte Programm den Trace dort zu aktivieren, also müsste ich auf andere Weise den Trace für die Session der laufenden Applikation starten. Oder kann man den Trace evtl. als „default:on“ setzen? Es geht übrigens um ORACLE XE.

Vielen Dank
TTR