Re: SQL Trace: What's in the XCTEND line ?
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 hashvalue.
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=0FETCH #<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