Database Reference
In-Depth Information
P.: „ Das ist aber gar nicht sehr lange.
L.: „ Das ist die minimale Zeit. Es kann auch länger dauern (z. B. bei OLTP-Anwendun-
gen). Ich habe aber Systeme gesehen, bei denen man sehr schnell handeln musste, um den
jeweiligen Cursor in der View V$SQL_MONITOR zu erwischen.
Der Parameter _ sqlmon _ max _ planlines definiert die maximale Anzahl der Zeilen im
Ausführungsplan für SQL Monitoring. Wenn ein Cursor einen Ausführungsplan mit 301
oder noch mehr Zeilen hat, ist es vergeblich, nach diesem Cursor in V$SQL_MONITOR
zu suchen.
P.: „ Kann man für solch einen Cursor das Hint MONITOR anwenden?
L.: „ Das funktioniert leider nicht. Den Parameterwert von _ sqlmon _ max _ planlines kann
man für den jeweiligen Cursor auch mit dem Hint OPT_PARAM nicht höher setzen. Diese
beiden Möglichkeiten habe ich gestestet.
P.: „ Vielleicht dann den Parameter _ sqlmon _ max _ planlines erhöhen?
L.: „ Mit den obigen Parametern würde ich vorsichtig sein. Wenn Du unbedingt den Para-
meter _ sqlmon _ max _ planlines erhöhen willst, dann bitte nicht systemweit, sondern nur für
eine Session.
Die View V$SQL_MONITORING hat die Spalte BIND_XML, welche die Bind-Werte
des jeweiligen Cursors beinhaltet. Der Parameter _ sqlmon _ binds _ xml _ format legt das For-
mat dieser Spalte fest und kann 2 Werte annehmen: DEFAULT und HEXDUMP.
SQL> alter session set "_SQLMON_BINDS_XML_FORMAT"=X;
ERROR:
ORA-00096: invalid value X for parameter _sqlmon_binds_xml_format, must be from
among hexdump, default
Für jeden Cursor aus der View V$SQL_MONITOR ist es möglich, einen Report mit der
Funktion DBMS_SQLTUNE.REPORT_SQL_MONITOR zu erstellen. Diesen Report kann
man entweder für eine konkrete Ausführung des jeweiligen Cursors erstellen, die man
durch die Argumente SQL_EXEC_ID bzw. SQL_EXEC_START dieser Funktion identi-
fiziert, oder für die letzte Ausführung, wenn diese Argumente ausgelassen sind. Einen
Report kann man beispielsweise mit dem folgenden Kommando generieren, welches den
Report für die letzte Ausführung des Cursors ausgibt.
select sys.dbms_sqltune.report_sql_monitor(sql_id=>'<sql_id>', report_level=>'ALL') as report
from dual;
Unten folgt ein Beispiel eines solchen Reports.
Search WWH ::




Custom Search