Re: SQL Trace: What's in the XCTEND line ?

From: Thomas Kyte <tkyte_at_us.oracle.com>
Date: 1998/06/26
Message-ID: <35989d4e.4341382_at_192.86.155.100>


A copy of this was sent to "Michael Rüpschl" <miker_at_art.at> (if that email address didn't require changing) On 26 Jun 1998 11:58:18 GMT, you wrote:

>Does anyone know what the XCTEND-line in Oracle SQL-Trace means??
>Sample:
>insert into x values('uuuu')
>END OF STMT
>PARSE #1:c=1,e=0,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=4,tim=3986300500
>EXEC #1:c=0,e=0,p=0,cr=1,cu=3,mis=0,r=1,dep=0,og=4,tim=3986300500
>Fri Jun 26 12:21:50 1998
>XCTEND rlbk=0, rd_only=0
>
>I'm looking for a way to find out when a program using OCI is commiting.



XCTEND rlbk=%d rd_only=%d
    XCTEND      A transaction end marker.
    rlbk	1 if a rollback was performed, 0 if no rollback (commit).
    rd_only	1 if transaction was read only, 0 if changes occurred.
----------------------------------------------------------------------------

explains that one.... For the next question, here is the meaning of the other fields:



APPNAME mod='%s' mh=%lu act='%s' ah=%lu
    APPNAME     Application name setting.  This only applies to Oracle 7.2
                and above.  This can be set by using the DBMS_APPLICATION_INFO 
                package.  See <Note:30366.1>.    mod		Module name.
    mh		Module hash value.    act		Action.    ah		Action hash
value.

PARSING IN CURSOR #<CURSOR> len=X dep=X uid=X oct=X lid=X tim=X hv=X ad='X' <statement>END OF STMT

    <CURSOR> Cursor number. len Length of SQL statement. dep PGA depth.

    uid		Schema user id of parsing user.    oct		Oracle command type.
    lid		Privilege user id.    tim		Timestamp (100ths of a second).
		Can be used to determine times between points in the trace file.
		The value is the value in V$TIMER when the line was written.
		If there are TIMESTAMPS in the file you can use the difference
		between 'tim' values to determine an absolute time.    hv		Hash id.

    ad		SQLTEXT address (see <View:V$SQLAREA> and <View:V$SQLTEXT>).
    <statement>	The actual SQL statement being parsed.
----------------------------------------------------------------------------
PARSE ERROR #%d:len=%ld dep=%d uid=%ld oct=%d lid=%ld tim=%lu err=%d <statement> ...
    PARSE ERROR	In Oracle 7.2+ we report parse errors.
    len		Length of SQL statement.    dep		PGA depth.    uid		User id.
    oct		Oracle command type (if known).    lid		Privilege user id.
    tim	 	Timestamp.    err		Error reported.        
    <statement>	The SQL statement that errored.  If this contains a password,
		the statement is truncated as indicated by '...' at the end.
----------------------------------------------------------------------------
PARSE #<CURSOR>:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim=0 
EXEC  #<CURSOR>:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim=0
FETCH #<CURSOR>:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim=0 UNMAP #<CURSOR>:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim=0
  • OPERATIONS: PARSE Parse a statement. EXEC Execute a pre-parsed statement. FETCH Fetch rows from a cursor. UNMAP If the cursor uses a temporary table, when the cursor is closed you see an UNMAP when we free up the temporary table locks.(Ie: free the lock, delete the state object, free the temp segment) In tkprof, UNMAP stats get added to the EXECUTE statistics. SORT UNMAP As above, but for OS file sorts or TEMP table segments. c CPU time (100th's of a second). e Elapsed time (100th's of a second). p Number of physical reads. cr Number of buffers retrieved for CR reads. cu Number of buffers retrieved in current mode. mis Cursor missed in the cache. r Number of rows processed. dep Recursive call depth (0 = user SQL, >0 = recursive). og Optimizer goal: KKOSHARW 1 All_Rows KKOSHFRW 2 First_Rows KKOSHRUL 3 Rule KKOSHCHO 4 Choose tim Timestamp (large number in 100ths of a second). Use this to determine the time between any 2 operations.
    ERROR #%d:err=%d tim=%lu
    SQL Error shown after an execution or fetch error. err Oracle error code at the top of the stack. tim Timestamp.
    STAT #<CURSOR> id=N cnt=0 [pid=0 pos=0 obj=0 op='SORT AGGREGATE ']
    STAT Lines report explain plan statistics for the numbered <CURSOR>. <CURSOR> Cursor which the statistics apply to. id Line of the explain plan which the row count applies to (starts at line 1). This is effectively the row source row count for all row sources in the execution tree. cnt Number of rows for this row source. As of 7.3.3 the items in '[...]' are also reported: pid Parent id of this row source. pos Position in explain plan. obj Object id of row source (if this is a base object). op='...' The row source access operation. These let you know the 'run time' explain plan.
    XCTEND rlbk=%d rd_only=%d
    XCTEND A transaction end marker. rlbk 1 if a rollback was performed, 0 if no rollback (commit). rd_only 1 if transaction was read only, 0 if changes occurred.

Thomas Kyte
tkyte_at_us.oracle.com
Oracle Government
Herndon VA  

http://govt.us.oracle.com/ -- downloadable utilities  



Opinions are mine and do not necessarily reflect those of Oracle Corporation  

Anti-Anti Spam Msg: if you want an answer emailed to you, you have to make it easy to get email to you. Any bounced email will be treated the same way i treat SPAM-- I delete it. Received on Fri Jun 26 1998 - 00:00:00 CEST

Original text of this message