<?xml version='1.0' encoding='windows-1251'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-10192669</id><updated>2009-05-31T04:27:36.600+04:00</updated><title type='text'>oracledba.ru</title><subtitle type='html'>blog for www.oracledba.ru site</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.oracledba.ru/atom.xml'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10192669.post-3853652766257063474</id><published>2007-12-20T13:25:00.000+03:00</published><updated>2007-12-27T00:14:59.853+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='orasrp'/><category scheme='http://www.blogger.com/atom/ns#' term='google chart api'/><title type='text'>OraSRP with Google Charts</title><content type='html'>&lt;img src="http://chart.apis.google.com/chart?cht=p3&amp;chs=600x150&amp;chd=t:47.4,29.3,14.9,4.1,3.2,1.1&amp;chl=enq:+TX+-+row+lock+contention|free+buffer+waits|log+buffer+space|db+file+sequential+read|EXEC+calls+[CPU]|9%20other%20events&amp;chco=ff00ff,0000ff,00ffff,00ff00,ff3333,ffff00"&gt;&lt;/img&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;OraSRP now is able to generate charts using &lt;a href="http://code.google.com/apis/chart/"&gt;Google Chart API&lt;/a&gt;. Actually, OraSRP is just generates a hyperlink and Google generates *.png picture.&lt;br /&gt;&lt;br&gt;&lt;br /&gt;This feature is disabled by default and you can enable it by specifying --google-charts flag.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-3853652766257063474?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://oracledba.ru/orasrp' title='OraSRP with Google Charts'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/3853652766257063474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=3853652766257063474' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/3853652766257063474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/3853652766257063474'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2007/12/orasrp-with-google-charts.html' title='OraSRP with Google Charts'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-5876496347277469951</id><published>2007-04-25T13:37:00.000+04:00</published><updated>2007-05-04T15:00:24.758+04:00</updated><title type='text'>10046 trace file content</title><content type='html'>Robert Freeman wrote in one of his articles:&lt;br /&gt;&lt;br&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;The 10046 trace file contents differ greatly between different versions of Oracle.&lt;/i&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;Indeed, format of trace files changes sometimes between Oracle versions but definitely not greatly.&lt;br /&gt;&lt;br /&gt;Somewhere near 9.2.0.2 STAT lines changed a bit (row source execution statistics was added).&lt;br /&gt;Instead of just: &lt;br /&gt;&lt;code&gt;STAT #2 id=1 cnt=1 pid=0 pos=1 obj=17 op='TABLE ACCESS FULL FILE$'&lt;/code&gt; &lt;br /&gt;they started look like this: &lt;br /&gt;&lt;code&gt;STAT #2 id=1 cnt=1 pid=0 pos=1 obj=17 op='TABLE ACCESS FULL FILE$ (cr=4 pr=0 pw=0 time=91 us)'&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And in 10.2 format of WAIT lines and BINDS sections changed significantly.&lt;br /&gt;&lt;br /&gt;BINDS sections can not be processed by tkprof in any versions of Oracle so I just skip them.&lt;br /&gt;&lt;br /&gt;As for WAIT lines, here's the pre-10.2 WAIT line:&lt;br /&gt;&lt;code&gt;WAIT #4: nam='SQL*Net message from client' ela= 2794957 p1=1111838976 p2=1 p3=0 p3=62&lt;/code&gt;&lt;br /&gt;Compare it with 10.2:&lt;br /&gt;&lt;code&gt;WAIT #4: nam='SQL*Net message from client' ela= 2794957 driver id=1111838976 #bytes=1 p3=0 obj#=62 tim=42601199281&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Wait events parameters (p1,p2,p3) got a meaningful name (as a side note: but sometimes not a meaningful value -- #bytes in 'SQL*Net messages' still always equal to 1) and every WAIT line now have tim-stamp.&lt;br /&gt;&lt;br /&gt;The funny thing is that tkprof from Oracle 9.2 correctly process trace files from 10.2! Looks like tkprof parses WAIT line by splitting line on '=' character and just gets the first three values.&lt;br /&gt;&lt;br /&gt;In summary, I beleive that when tkprof from old version can correctly process trace files from the new one then it's more natural to say that 'trace files contents &lt;b&gt;does not&lt;/b&gt; differ greatly between different versions of Oracle'.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-5876496347277469951?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/5876496347277469951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=5876496347277469951' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/5876496347277469951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/5876496347277469951'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2007/04/10046-trace-file-content.html' title='10046 trace file content'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-114897743851316718</id><published>2006-05-30T12:04:00.000+04:00</published><updated>2006-05-30T13:08:13.543+04:00</updated><title type='text'>event 'events in waitclass Other' in Oracle 10.2</title><content type='html'>From release to release Oracle constantly increases the number of events (select count(*) from v$event_name). For example, Oracle 9i has 405 events, Oracle 10.1 has 811 events and Oracle 10.2 has 874 ones.&lt;br /&gt;&lt;br /&gt;We can monitor session's wait events via v$session_event and system's ones via v$system_event.&lt;br /&gt;&lt;br /&gt;The tricky point here is that in 10.2 a number of events (588, to be exact) are grouped into one event in v$session_event. It's almost all events of wait class (v$event_name.wait_class) 'Other'. In Oracle 10.2 there are 590 events of wait class 'Other' and 284 remaining events:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SQL&gt; select count(*) from v$event_name where wait_class='Other';&lt;br /&gt;&lt;br /&gt;COUNT(*)&lt;br /&gt;----------&lt;br /&gt;590&lt;br /&gt;&lt;br /&gt;SQL&gt; select count(*) from v$event_name where wait_class!='Other';&lt;br /&gt;&lt;br /&gt;COUNT(*)&lt;br /&gt;----------&lt;br /&gt;284&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And v$session_event can store information only for 286 events out of 874 ones. Here's some kind of proof:&lt;br /&gt;&lt;br /&gt;v$session_event is based on fixed table x$ksles. Below is the definition of &lt;a href="http://oracledba.ru/fv10gr2/gv$session_event.html"&gt;gv$session_event&lt;/a&gt; taken from v$fixed_view_definition:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;select&lt;br /&gt;s.inst_id,               -- INST_ID NUMBER&lt;br /&gt;s.kslessid,              -- SID NUMBER&lt;br /&gt;d.kslednam,              -- EVENT VARCHAR2(64)&lt;br /&gt;s.ksleswts,              -- TOTAL_WAITS NUMBER&lt;br /&gt;s.kslestmo,              -- TOTAL_TIMEOUTS NUMBER&lt;br /&gt;round                    -- TIME_WAITED NUMBER&lt;br /&gt;  (s.kslestim / 10000),&lt;br /&gt;round                    -- AVERAGE_WAIT NUMBER&lt;br /&gt;  (s.kslestim / (10000 * s.ksleswts), 2),&lt;br /&gt;round                    -- MAX_WAIT NUMBER&lt;br /&gt;  (s.kslesmxt / 10000),&lt;br /&gt;s.kslestim,              -- TIME_WAITED_MICRO NUMBER&lt;br /&gt;d.ksledhash,             -- EVENT_ID NUMBER&lt;br /&gt;d.ksledclassid,          -- WAIT_CLASS_ID NUMBER&lt;br /&gt;d.ksledclass#,           -- WAIT_CLASS# NUMBER&lt;br /&gt;d.ksledclass             -- WAIT_CLASS VARCHAR2(64)&lt;br /&gt;from&lt;br /&gt;x$ksles s,&lt;br /&gt;x$ksled d&lt;br /&gt;where&lt;br /&gt;s.ksleswts != 0 and s.kslesenm = d.indx&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Note that x$ksles is a fixed table. It means that it resides in fixed area of SGA and it can't be changed (grow/shrink) when instance is running. In other words, it's just a fixed piece of memory which changes its size only after you change 'sessions' parameter.&lt;br /&gt;&lt;br /&gt;The field x$ksles.kslesenm is an event# from v$event_name.&lt;br /&gt;&lt;br /&gt;Let's see how many events indexes we have in x$ksles:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SQL&gt; select count(distinct kslesenm) from x$ksles;&lt;br /&gt;&lt;br /&gt;COUNT(DISTINCTKSLESENM)&lt;br /&gt;-----------------------&lt;br /&gt;                    286&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;286! If we select events from v$session_event ordered by event# then first 286 events will be exactly these events.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SQL&gt; select event#,name,wait_class from v$event_name order by event#;&lt;br /&gt;     0 null event                           Other&lt;br /&gt;     1 pmon timer                           Idle&lt;br /&gt;     2 rdbms ipc message                    Idle&lt;br /&gt;...&lt;br /&gt;   283 JS kill job wait                     Administrative&lt;br /&gt;   284 JS coord start wait                  Administrative&lt;br /&gt;   285 events in waitclass Other            Other&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;See that last event with event#=285 ? Named as &lt;b&gt;'events in waitclass Other'&lt;/b&gt;. It's some kind of pseudo-event. When session generates any events with event# more than 285 (all of such events are in class 'Other') then they are reflected in v$session_events as one event 'events in waitclass Other'.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-114897743851316718?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/114897743851316718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=114897743851316718' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/114897743851316718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/114897743851316718'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2006/05/event-events-in-waitclass-other-in.html' title='event &apos;events in waitclass Other&apos; in Oracle 10.2'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-113670171327478953</id><published>2006-01-08T08:25:00.000+03:00</published><updated>2006-01-08T09:30:46.396+03:00</updated><title type='text'>"Optimizing Oracle Performance" in Russian</title><content type='html'>В декабре 2005 года издательство Символ-Плюс выпустило перевод книги "Optimizing Oracle Performance" под местным названием "Oracle. Оптимизация производительности". ISBN новой книги 5-93286-078-2. Тираж 2000 экземпляров.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-113670171327478953?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/113670171327478953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=113670171327478953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/113670171327478953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/113670171327478953'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2006/01/optimizing-oracle-performance-in.html' title='&quot;Optimizing Oracle Performance&quot; in Russian'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-113170240203490143</id><published>2005-11-11T12:30:00.000+03:00</published><updated>2005-11-11T12:46:42.056+03:00</updated><title type='text'>undocumented flags in tkprof</title><content type='html'>&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;verbose=yes&lt;/b&gt; instructs tkprof to display SQL Text address and SQL Text Hash Value for every statement and print Oracle commands count for a whole trace file.&lt;br /&gt;&lt;li&gt;&lt;b&gt;diag=filename&lt;/b&gt; instructs tkprof to generate some debugging information (helpful probably only to tkprof's developers).&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-113170240203490143?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/113170240203490143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=113170240203490143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/113170240203490143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/113170240203490143'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/11/undocumented-flags-in-tkprof.html' title='undocumented flags in tkprof'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-112952401566804148</id><published>2005-10-17T08:07:00.000+04:00</published><updated>2005-10-17T08:40:15.673+04:00</updated><title type='text'>link to podcast with Ray Lane</title><content type='html'>&lt;a href="http://gillmorgang.podshow.com/?p=17"&gt;Venture Gang&lt;/a&gt; is a podcast with Ray Lane who will be the keynote speaker at Hotsos Symposium 2006.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-112952401566804148?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://mp3.gillmorgang.podshow.com/GillmorGang-2005.10.14.mp3' title='link to podcast with Ray Lane'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/112952401566804148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=112952401566804148' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112952401566804148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112952401566804148'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/10/link-to-podcast-with-ray-lane.html' title='link to podcast with Ray Lane'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-112858790298126288</id><published>2005-10-06T12:10:00.000+04:00</published><updated>2005-10-06T12:38:23.093+04:00</updated><title type='text'>what's on your miniCD?</title><content type='html'>I have one miniCD (handmade remastered) with the following contents:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.damnsmalllinux.org"&gt;Damn Small Linux&lt;/a&gt; -- desktop Linux with number of useful applications (word-processor, spreadseet, email client, icq, firefox, vnc/rdesktop clients, pdf viewer, perl, python, cd/mp3 player, tetris, etc).&lt;br /&gt;&lt;li&gt;Full Oracle Database 10.2 documentation in html format.&lt;br /&gt;&lt;li&gt;Oracle instant client and sqlplus with support of command line editing and word-completion (like in bash).&lt;br /&gt;&lt;li&gt;TOra -- Toolkit for Oracle which aims to help the DBA or developer of database application. Features PL/SQL debugger, SQL worksheet with syntax highlighting, DB browser and a comprehensive set of DBA tools.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;All of this software resides on one small (80mm in diameter) miniCD with 210Mb of raw capacity.&lt;br /&gt;&lt;br /&gt;Amazing, isn't it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-112858790298126288?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/112858790298126288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=112858790298126288' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112858790298126288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112858790298126288'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/10/whats-on-your-minicd.html' title='what&apos;s on your miniCD?'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-112778616569850678</id><published>2005-09-27T05:43:00.000+04:00</published><updated>2005-09-27T05:56:05.703+04:00</updated><title type='text'>OraSRP v2.1</title><content type='html'>Well, it seems that after OOW (specifically, after presentation of Kyte and Millsap) everyone knows that Oracle enhanced format of 'WAIT' lines in trace files. By the way, OraSRP recognizes new 'WAIT' format starting from v1.8 (released in July).&lt;br /&gt;&lt;br /&gt;But in 10.2 Oracle also slightly changed format of 'BINDS' section. Yesterday I added support of this new format of 'BINDS' into OraSRP v2.1&lt;br /&gt;&lt;br /&gt;Also improved processing of 'RPC CALL/EXEC' entries (previously, when trace file contained more than one 'RPC EXEC' per one 'RPC CALL' then results were wrong).&lt;br /&gt;&lt;br /&gt;Removed irrelevant numbers (for 'Total' row) in 'Statement Resource Profile' section. &lt;br /&gt;&lt;br /&gt;Some fixes for preventing OraSRP from crashes when analyzing "inconsistent" traces.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-112778616569850678?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.oracledba.ru/orasrp/' title='OraSRP v2.1'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/112778616569850678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=112778616569850678' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112778616569850678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112778616569850678'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/09/orasrp-v21.html' title='OraSRP v2.1'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-112746659187081775</id><published>2005-09-23T12:49:00.000+04:00</published><updated>2005-09-23T13:21:12.106+04:00</updated><title type='text'>rather big plan</title><content type='html'>Want to see a big plan with little efforts?&lt;br /&gt;Just execute 'select count(*) from all_policies;'&lt;br&gt;&lt;br /&gt;10gR2 generates 161-lines plan for this statement!&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;center&gt;[ below the same in Russian ]&lt;/center&gt;&lt;br&gt;&lt;br /&gt;Если Вам хочется поглядеть на большой план, а под рукой нет соответствующего запроса, то &lt;br /&gt;сделайте 'select count(*) from all_policies;'.&lt;br&gt;&lt;br /&gt;10gR2 для этого select'а генерит план размером в 161 строку!&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-112746659187081775?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/112746659187081775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=112746659187081775' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112746659187081775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112746659187081775'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/09/rather-big-plan.html' title='rather big plan'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-112738258295879138</id><published>2005-09-22T13:45:00.000+04:00</published><updated>2005-09-22T13:49:42.966+04:00</updated><title type='text'>reading documentation</title><content type='html'>Just a citation from docs:&lt;br&gt;&lt;br /&gt;&lt;blockquote&gt;"The additional overhead of running the SQL Trace facility against an application with performance problems is normally insignificant compared with the inherent overhead caused by the application's inefficiency."&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-112738258295879138?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96533/sqltrace.htm#1018' title='reading documentation'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/112738258295879138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=112738258295879138' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112738258295879138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112738258295879138'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/09/reading-documentation.html' title='reading documentation'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-112617961141582279</id><published>2005-09-08T15:38:00.000+04:00</published><updated>2005-09-08T15:40:11.423+04:00</updated><title type='text'>OraSRP v2.0</title><content type='html'>I released OraSRP v2.0&lt;br /&gt;&lt;br /&gt;Starting from v1.6 I promised to implement 'statements tree' feature. Five(!) versions after that I finally implemented this feature. From now on resource profile contain section 'Statements Recursive Relationship' where you can see statements tree for session. By the way, sometimes it's just interesting to see how one user statement (like drop table) generates a lot of recursive statements!&lt;br /&gt;&lt;br /&gt;In this version I added calculation of elapsed time separately for every bind set. Bind values sets now sorted by elapsed time. By default only one bind set for statement is displayed. And it will be the set with the most elapsed time spent.&lt;br /&gt;&lt;br /&gt;Added check for presence of line '*** DUMP FILE SIZE IS LIMITED TO' in trace file. In that case a warning is displayed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-112617961141582279?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.oracledba.ru/orasrp/' title='OraSRP v2.0'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/112617961141582279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=112617961141582279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112617961141582279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112617961141582279'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/09/orasrp-v20.html' title='OraSRP v2.0'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-112427595232391745</id><published>2005-08-17T14:40:00.000+04:00</published><updated>2005-08-17T14:52:32.326+04:00</updated><title type='text'>OraSRP v1.11</title><content type='html'>Ok, yesterday I failed to parse 1.5Gb trace file with OraSRP v1.10 on Linux machine with 512Mb RAM. It reminds me to some inefficiency in internal data representation.&lt;br /&gt;&lt;br /&gt;So, I fixed this problem and released OraSRP v1.11 which succesfully parses that 1.5Gb file.&lt;br /&gt;&lt;br /&gt;Also in this version I splitted 'CPU service' pseudo-event into three events: 'CPU service, PARSE calls', 'CPU service, EXEC calls' and 'CPU service, FETCH calls'.&lt;br /&gt;&lt;br /&gt;And starting from v1.11 OraSRP shouldn't crash on trace files with malformed lines (this may happens when trace file reached the limit of max_dump_file_size).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-112427595232391745?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.oracledba.ru/orasrp/' title='OraSRP v1.11'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/112427595232391745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=112427595232391745' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112427595232391745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112427595232391745'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/08/orasrp-v111.html' title='OraSRP v1.11'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-112324213801472952</id><published>2005-08-05T15:41:00.000+04:00</published><updated>2005-08-05T15:58:40.386+04:00</updated><title type='text'>OraSRP v1.10</title><content type='html'>I released OraSRP v1.10&lt;br /&gt;&lt;br /&gt;Added printing of 'optimizer goal' info for every statement.&lt;br&gt;&lt;br /&gt;Added &amp;lt;!DOCTYPE&amp;gt; string into html output and changed a little CSS stylesheet.&lt;br /&gt;&lt;br /&gt;Added --binds flag: specify maximum number of binds sets to display (1 by default).&lt;br /&gt;&lt;br /&gt;It means that from now on OraSRP is able to process bind values in trace files. By default OraSRP displays only most frequent bind values set but you can change it via --bind flag (i.e. when you specify, f.e. --binds=999999, then OraSRP will display all bind values; and if you will specify --binds=0 then OraSRP will just ignore bind values).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-112324213801472952?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.oracledba.ru/orasrp/' title='OraSRP v1.10'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/112324213801472952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=112324213801472952' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112324213801472952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112324213801472952'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/08/orasrp-v110.html' title='OraSRP v1.10'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-112236956358639328</id><published>2005-07-26T13:13:00.000+04:00</published><updated>2005-07-26T13:21:01.213+04:00</updated><title type='text'>OraSRP v1.9</title><content type='html'>I released OraSRP v1.9 &lt;br /&gt;&lt;br /&gt;A little changes in &lt;a href="/orasrp/t.html"&gt;outputs&lt;/a&gt; (only get rid of irrelevant numbers in Summary section). &lt;br /&gt;&lt;br /&gt;Added three new flags: &lt;br /&gt;--stdin tells orasrp to read data from stdin. By using this flag its possible to analyze gzipped/compressed trace files on the fly. Like this: &lt;br /&gt;$ gzip -cd trace_file.trc.gz | orasrp.py -s --stdin &gt; trace_profile.html &lt;br /&gt;&lt;br /&gt;--pattern flag is used in http server mode. It tells OraSRP to show/process only those files which names contain specified pattern. &lt;br /&gt;&lt;br /&gt;--htpasswd flag is also used in http server mode. It instructs OraSRP to use .htpasswd file for client authentication. To create .htpasswd file one can use either htpasswd utility from apache web server or htpasswd.py supplied with new versions of OraSRP. &lt;br /&gt;&lt;br /&gt;Combination of --pattern and --htpasswd flags allows DBA to grant access to developer for analyzing of his/her own trace files without breaking security. I mean, that by default Oracle server process generates trace files accessible only to DBA. And this is good from security point of view (and, btw, setting up _trace_files_public=true is bad from security point of view). But, contrary, disallowing developer to access to his/her own trace files is bad from performance point of view. Here's the three-step solution for this dilemma: &lt;br /&gt;&lt;br /&gt;1. DBA tells developer to use unique tracefile_identifier (alter session set tracefile_identifier='uniq_devid') before enabling extended SQL trace. &lt;br /&gt;2. DBA creates .htpasswd file in user_dump_dest and adds an entry in this file for this developer. &lt;br /&gt;3. DBA runs OraSRP on the server (let's call it prod01) like this: &lt;br /&gt;$ orasrp.py -d /path/to/user_dump_dest --htpasswd --pattern=uniq_devid --port=3000 &lt;br /&gt;&lt;br /&gt;After that DBA just provide the developer with the link (http://prod01:3000/). &lt;br /&gt;&lt;br /&gt;Voila! Developer can now analyze his/her own trace files. But he/she still doesn't have access to other's traces and is not able to view raw traces (with systemstate dump, for example).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-112236956358639328?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.oracledba.ru/orasrp/download.html' title='OraSRP v1.9'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/112236956358639328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=112236956358639328' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112236956358639328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112236956358639328'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/07/orasrp-v19.html' title='OraSRP v1.9'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-112226517085904660</id><published>2005-07-25T08:05:00.000+04:00</published><updated>2005-07-25T08:26:49.180+04:00</updated><title type='text'>what to do with hanging database</title><content type='html'>Here's the citation from article &lt;a href="http://www.oracle.com/technology/pub/articles/10gdba/nanda_10gr2dba_part3.html"&gt;'Oracle Database 10g: Top Features for DBAs: Part 3—Performance Features'&lt;/a&gt; by Arup Nanda:&lt;br /&gt;&lt;i&gt;&lt;blockquote&gt;Let's assume that you use Oracle Enterprise Manager to diagnose and solve performance issues. One day, a nasty issue arises: a badly designed application is causing serious library-cache lock issues and the database appears to be hung. You have to quickly identify the culprit sessions and kill them quickly. &lt;br /&gt;&lt;br /&gt;You could bring up Oracle Enterprise Manager to diagnose this issue. But, wait! If the entire database is saturated with hung sessions, wouldn't the query from Oracle Enterprise Manager hang as well? &lt;br /&gt;&lt;br /&gt;With Oracle Database 10g Release 2, the answer is "no."&lt;br /&gt;&lt;/blockquote&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Actually, the answer is "no" for 8i, 9i and 10g r1 also!&lt;br /&gt;&lt;br /&gt;I mean that even we can't use Enterprise Manager still we can use hanganalyze event (starting from 8.1.6) as quick (real quick on hanging databases) and easy way to solve 'hanging database' issue.&lt;br /&gt;&lt;br /&gt;And remember, that we can use hanganalyze event even if we can't connect to database at all -- I explained how to do it in my previous post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-112226517085904660?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://oracledba.ru/hanganalyze/hanganalyze.py' title='what to do with hanging database'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/112226517085904660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=112226517085904660' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112226517085904660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112226517085904660'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/07/what-to-do-with-hanging-database.html' title='what to do with hanging database'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-112179553688465045</id><published>2005-07-19T21:40:00.000+04:00</published><updated>2005-07-21T07:48:47.150+04:00</updated><title type='text'>another way to generate systemstate/hanganalyze events</title><content type='html'>It's a known fact that we can generate systemstate dump by directly attaching to oracle process. Like this:&lt;br /&gt;&lt;br /&gt;$ cd $ORACLE_HOME/bin&lt;br /&gt;$ gdb oracle &amp;lt;oracle_pid_to_attach&amp;gt;&lt;oracle_pid_to_attach&gt;&lt;br /&gt;(gdb) call ksudss(10) # at this point attached process should do smth, i.e. it shouldn't sleep&lt;br /&gt;&lt;br /&gt;Search for 'ksudss' in Metalink for more detailed info.&lt;br /&gt;&lt;br /&gt;But if, instead of ksudss() we will call ksdhng() then hanganalyze trace (which is way more readable than systemstate dump and often is enough for analyzing 'hang database' issue) will be generated.&lt;br /&gt;&lt;br /&gt;&lt;font size=-1&gt;&lt;center&gt;[below the same in Russian]&lt;/center&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Известно, что мы можем сгенерить systemstate dump с помощью gdb, приаттачившись к любому oracle процессу. Примерно вот так:&lt;br /&gt;&lt;br /&gt;$ cd $ORACLE_HOME/bin&lt;br /&gt;$ gdb oracle &amp;lt;oracle_pid_to_attach&amp;gt;&lt;oracle_pid_to_attach&gt;&lt;br /&gt;(gdb) call ksudss(10) # процесс в это время должен что-нибудь делать, т.е. не находиться в ожидании&lt;br /&gt;&lt;br /&gt;Поиск по 'ksudss' на Metalink'е дает более подробное описание.&lt;br /&gt;&lt;br /&gt;Но если вместо ksudss сделать вызов ksdhng(), то сгенерится hanganalyze trace, который читается легче чем systemstate dump и которого, как правило, достаточно для разрешения проблемы 'почему_моя_база_зависла?'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-112179553688465045?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/112179553688465045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=112179553688465045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112179553688465045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112179553688465045'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/07/another-way-to-generate.html' title='another way to generate systemstate/hanganalyze events'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-112107028781059232</id><published>2005-07-11T11:02:00.000+04:00</published><updated>2005-07-21T07:56:07.656+04:00</updated><title type='text'>new fields in v$session</title><content type='html'>While one known 'balabol' blows at every corner about the fact that 'The 10046 wait interface becomes obsolete ', Oracle in its new version 10.2 added three new fields in view v$session, intended only for the work with 10046 wait interface and wrote three new procedures in package dbms_monitor, utilized for the same.&lt;br /&gt;&lt;br /&gt;Fields named SQL_TRACE, SQL_TRACE_WAITS, SQL_TRACE_BINDS make it possible to see whether session is traced and if yes, then with what parameters. However, finesse in the fact that the correct values in these fields are advanced only during use dbms_monitor, i.e., if we establish tracing with the aid of 'alter session set events' or via straight call of dbms_system.set_ev, then v$session will not show that the session is is traced. Looks like hint from Oracle about what interface we should use to enable extended SQL trace.&lt;br /&gt;&lt;br /&gt;&lt;font size=-1&gt;&lt;center&gt;[below the same in Russian]&lt;/center&gt;&lt;/font&gt;&lt;br /&gt;В то время, как один известный балабол трубит на каждом углу о том, что 'The 10046 wait interface becomes obsolete', Oracle в своей новой версии 10.2 добавил три новых поля во view v$session, предназначенных только для работы с 10046 wait interface'ом и написал пару новых процедур в пакете dbms_monitor, используемый для того же.&lt;br /&gt;&lt;br /&gt;Поля под названиями SQL_TRACE, SQL_TRACE_WAITS, SQL_TRACE_BINDS позволяют увидеть, трассируется ли сессия и если да, то с какими параметрами. Однако тонкость в том, что корректные значения в этих полях выставляются только во время использования dbms_monitor, т.е. если установить трассировку с помощью 'alter session set events' или путем прямого вызова 'dbms_system.set_ev', то v$session не покажет, что сессия трассируется. Похоже, таким образом Oracle недвусмысленно намекает, как именно надо включать extended sql trace.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-112107028781059232?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/112107028781059232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=112107028781059232' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112107028781059232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112107028781059232'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/07/new-fields-in-vsession.html' title='new fields in v$session'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-112090663869159619</id><published>2005-07-09T14:31:00.000+04:00</published><updated>2005-07-11T13:16:16.246+04:00</updated><title type='text'>новый формат extended sql trace файла в 10.2</title><content type='html'>На протяжении многих лет Oracle не менял формат extended sql trace файла. К примеру, версия 7.2, вышедшая в 1994 году генерит практически такой же trace файл, что и версия 10.1&lt;br /&gt;&lt;br /&gt;Однако, с выходом версии 10.2 инженеры корпорации Oracle решились на небольшое изменение формата trace файла. Если ранее 'WAIT'-строки выглядели примерно так:&lt;br /&gt;&lt;br /&gt;WAIT #1: nam='SQL*Net message to client' ela= 0 p1=1650815232 p2=1 p3=0&lt;br /&gt;&lt;br /&gt;то в 10.2 они выглядят так:&lt;br /&gt;&lt;br /&gt;WAIT #1: nam='SQL*Net message to client' ela= 5 driver id=1650815232 #bytes=1 p3=0 obj#=43442 tim=1094547545117701&lt;br /&gt;&lt;br /&gt;Т.е. названия параметров p1/p2/p3 тут же расшифровываются исходя из значения nam.&lt;br /&gt;Для каждого WAIT'а пишется возможный номер объекта, вызвавший ожидание. Ну и, наконец, ставится timestamp, что слегка облегчает задачу анализаторам trace файлов.&lt;br /&gt;&lt;br /&gt;Однако, tkrpof из 10.2 генерит отчет, ничем не отличимый от предыдущих версий. Возможно, в дальнейшем это изменится. Либо мы увидим какую-нибудь новую тулзу, учитывающую новый формат trace файла.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-112090663869159619?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/112090663869159619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=112090663869159619' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112090663869159619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112090663869159619'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/07/extended-sql-trace-102.html' title='новый формат extended sql trace файла в 10.2'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-112082720440396918</id><published>2005-07-08T16:43:00.000+04:00</published><updated>2005-07-08T16:53:24.410+04:00</updated><title type='text'>fixed view definitions in Oracle Database 10.2</title><content type='html'>Для любопытных персон, которые время от времени разглядывают определения fixed views (находящихся в &lt;a href="/fv10gr2/gv$fixed_view_definition.html"&gt;v$fixed_view_definition&lt;/a&gt;, но в неотформатированном виде) я выложил &lt;a href="/fv10gr2/index.html"&gt;определения&lt;/a&gt; fixed views из Oracle Database 10G Release 2 в человеческом виде.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-112082720440396918?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.oracledba.ru/fv10gr2/index.html' title='fixed view definitions in Oracle Database 10.2'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/112082720440396918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=112082720440396918' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112082720440396918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/112082720440396918'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/07/fixed-view-definitions-in-oracle.html' title='fixed view definitions in Oracle Database 10.2'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-111987118643625354</id><published>2005-06-27T15:12:00.000+04:00</published><updated>2005-06-27T15:19:46.440+04:00</updated><title type='text'>orasrp v1.7</title><content type='html'>Я выложил OraSRP версии 1.7&lt;br /&gt;&lt;br /&gt;Больших изменений нет.&lt;br /&gt;&lt;br /&gt;Теперь обрабатываются строки 'RPC CALL'/'RPC EXEC'.&lt;br /&gt;&lt;br /&gt;Поменялся CSS style sheet, в результате чего html-вывод по цветовой гамме стал похож на OEM 10g.&lt;br /&gt;&lt;br /&gt;Исправлена часть багов и опечаток.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-111987118643625354?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://oracledba.ru/orasrp/download.html' title='orasrp v1.7'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/111987118643625354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=111987118643625354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/111987118643625354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/111987118643625354'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/06/orasrp-v17.html' title='orasrp v1.7'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-111888773754732198</id><published>2005-06-16T05:44:00.000+04:00</published><updated>2005-06-16T06:11:05.653+04:00</updated><title type='text'>из oracle-l</title><content type='html'>как может ошибаться системный администратор?&lt;br /&gt;например так: вместо &lt;code&gt;rm -f *.dbf&lt;/code&gt; он может набрать &lt;code&gt;rm -f * .dbf&lt;/code&gt;&lt;br /&gt;или так: находясь в корне, вместо &lt;code&gt;rm -rf ./dir&lt;/code&gt; он может набрать &lt;code&gt;rm -rf ./ dir&lt;/code&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;Это так называемый URLT (Update Resume Leave Town) moment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-111888773754732198?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/111888773754732198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=111888773754732198' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/111888773754732198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/111888773754732198'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/06/oracle-l.html' title='из oracle-l'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-111582993511831533</id><published>2005-05-11T20:40:00.000+04:00</published><updated>2005-05-11T20:49:48.906+04:00</updated><title type='text'>Больше одной базы на одной машине?</title><content type='html'>Можно ли запустить две базы на одной (unix) машине?&lt;br /&gt;Конечно можно. Хоть в пределах одного $ORACLE_HOME, хоть в разных.&lt;br&gt;&lt;br /&gt;Здесь главное не переусердствовать.&lt;br&gt;&lt;br /&gt;Connor McDonald в списке рассылки oracle-l рассказал случай из своей практики, когда у клиента на одной машине было запущено 130 (сто тридцать) instance'ов! На каждую задачу/пользователя там создавался отдельный instance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-111582993511831533?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/111582993511831533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=111582993511831533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/111582993511831533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/111582993511831533'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/05/blog-post.html' title='Больше одной базы на одной машине?'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-111329994684475258</id><published>2005-04-12T13:56:00.000+04:00</published><updated>2005-04-12T14:00:00.506+04:00</updated><title type='text'>fast export - import</title><content type='html'>Как в разы ускорить export - import?&lt;br&gt;&lt;br /&gt;Об этом я написал в своей новой заметке &lt;a href="/notes_expimp.html"&gt;"быстрый export - import"&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-111329994684475258?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://oracledba.ru/notes_expimp.html' title='fast export - import'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/111329994684475258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=111329994684475258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/111329994684475258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/111329994684475258'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/04/fast-export-import.html' title='fast export - import'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-111216643487523714</id><published>2005-03-30T10:46:00.000+04:00</published><updated>2005-03-30T11:12:17.300+04:00</updated><title type='text'>orasrp v1.6</title><content type='html'>Я выпустил OraSRP v1.6&lt;br /&gt;&lt;br /&gt;Основное отличие этой версии -- добавлен флаг '--aggregate-statements'. По умолчанию этот флаг установлен в On. При этом OraSRP будет аггрегировать статистику по похожим (с точностью до bind variables) statements.&lt;br /&gt;&lt;br /&gt;Например, пара запросов вида &lt;code&gt;&lt;br /&gt;select * from table1 where column1='value1' и&lt;br /&gt;select * from table1 where column1='value2'&lt;br /&gt;&lt;/code&gt; будут обработаны как один запрос. Статистика саггрегируется, а при печати первого запроса будет указано, что есть 'similar statements: 1'&lt;br /&gt;&lt;br /&gt;Насколько мне известно, такая фича пока есть только в коммерческом Hotsos Profiler'е.&lt;br /&gt;Фича эта, несомненно, полезная и позволяет легко обнаружить statements, не использующие bind variables. Кстати, строчка 'Parse' в статистике при этом выглядит весьма выразительно и наглядно показывает необходимость использования bind variables.&lt;br /&gt;&lt;br /&gt;Установка --aggregate-statements=off, понятное дело, выключает режим аггрегирования и приводит к совместимому режиму с tkprof. На мой взгляд, такой режим имеет смысл использовать только при отладке.&lt;br /&gt;&lt;br /&gt;В этой версии также исправлены несколько багов связанных с флагами --cache и --ignore-statements.&lt;br /&gt;&lt;br /&gt;Результат работы новой версии OraSRP можно глянуть &lt;a href="/orasrp/t16.html"&gt;здесь&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Что касается заявленной печати 'statements tree', то эта фича переносится на следующую версию.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-111216643487523714?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://oracledba.ru/orasrp/download.html' title='orasrp v1.6'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/111216643487523714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=111216643487523714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/111216643487523714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/111216643487523714'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/03/orasrp-v16.html' title='orasrp v1.6'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10192669.post-111148451704273096</id><published>2005-03-22T12:37:00.000+03:00</published><updated>2005-03-22T12:41:57.043+03:00</updated><title type='text'>как придумать хороший пароль</title><content type='html'>Используете один-два пароля для всех account'ов и не меняли их уже два года?&lt;br /&gt;&lt;br /&gt;Это потому, что Вам не рассказали как можно быстро и просто создавать хорошие (и одновременно запоминающиеся для Вас) пароли.&lt;br /&gt;&lt;br /&gt;Читайте мою краткую заметку о том, &lt;a href="http://oracledba.ru/notes_password.html"&gt;как придумывать хорошие пароли&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='//blogger.googleusercontent.com/tracker/10192669-111148451704273096?l=www.oracledba.ru%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://oracledba.ru/notes_password.html' title='как придумать хороший пароль'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/111148451704273096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10192669&amp;postID=111148451704273096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/111148451704273096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10192669/posts/default/111148451704273096'/><link rel='alternate' type='text/html' href='http://www.oracledba.ru/blog/2005/03/blog-post_22.html' title='как придумать хороший пароль'/><author><name>egor</name><uri>http://www.blogger.com/profile/00292831520490238675</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>