{"id":1429,"date":"2008-08-20T12:00:00","date_gmt":"2008-08-20T12:00:00","guid":{"rendered":"http:\/\/orcldoug.com\/blog\/?p=1429"},"modified":"2008-08-20T12:00:00","modified_gmt":"2008-08-20T12:00:00","slug":"time-matters-db-time","status":"publish","type":"post","link":"http:\/\/orcldoug.com\/blog\/2008\/08\/20\/time-matters-db-time\/","title":{"rendered":"Time Matters &#8211; DB Time"},"content":{"rendered":"<p>[In retrospect, the title of that first blog post might have suited the subject, but doesn&#8217;t translate too well for subsequent related blog posts. That was a lack of planning or foresight on my part. These blog posts are tumbling out of my head in a fairly incoherent way. Maybe when they&#8217;re finished, I could revisit them and write them up in a single, sensible article! In the meantime, I&#8217;ve retitled the previous post.]<\/p>\n<p>The <a href=\"http:\/\/18.133.199.212\/?p=1428\">previous post<\/a> might have given the impression that you shouldn&#8217;t pay too much attention to the values in the &#8220;Time (S)&#8221; column of the Top 5 Timed Events section of a Statspack or AWR report*. That&#8217;s not true, particularly when comparing system workload between two different periods. (I was just building up to this slowly &#128521;) In fact, although the values in that column are not &#8220;DB Time&#8221; they are <strong>nearly<\/strong> all components of it and, just as an increase in the values in that column indicate increased workload or decreased performance during the two different periods, so does an increase in an Instance&#8217;s DB Time. (<strong>Edited later &#8211; see JB&#8217;s comment below. Background Wait Events are<br \/>\n*not* components of DB Time, just Foreground Wait Events. I knew that, but wasn&#8217;t careful enough with this<br \/>\nsentence.<\/strong>) <\/p>\n<p>As Chen pointed out in <a href=\"http:\/\/18.133.199.212\/?p=1428#c6596\">her comment on the last blog<\/a>, there&#8217;s a direct relationship between the number of sessions that were running during the reporting period and the total time values. No matter how busy the system, the total time available can not exceed the maximum number of concurrent sessions * wall clock duration that they were running. That&#8217;s a hard limit, but there are other relationships, too. If you think about it, as the number of <em>active<\/em> concurrent sessions increased from one to four so did the database instance&#8217;s workload as more sessions were either working or waiting for something and, if the database is working on something then that implies the application is waiting for it to complete! In all likelihood on a small laptop with limited resources, the actual time spent waiting on individual events would increase as well, as contention for resources increases. Both an increase in the duration of events and an increase in the number of different sessions running or waiting on events will increase DB Time.<\/p>\n<p>Here&#8217;s a definition of DB Time that you&#8217;ll see in various presentations from the Oracle guys who worked on this. (e.g. John Beresniewicz&#8217;s excellent presentation &#8220;<a href=\"http:\/\/perfvision.com\/docs\/JB_AAS.pdf\">Average active sessions: the magic metric?<\/a>&#8221; which is available on <a href=\"http:\/\/perfvision.com\/\">Kyle Hailey&#8217;s website<\/a>. I&#8217;ve never seen JB give the presentation, but I love the slides.)<\/p>\n<blockquote><p>Database time is total time spent by user processes either actively working or actively waiting in a database call<\/p><\/blockquote>\n<p>The same presentation describes the components of DB Time as<\/p>\n<blockquote><p>Time spent in the database by foreground sessions<br \/>\nIncludes CPU time, IO time and wait time<br \/>\nExcludes idle wait time<\/p><\/blockquote>\n<p>In the context of a Statspack or AWR report, the top 5 timed events section is showing you the top 5 contributors to DB Time. (In fact, what I find most interesting about the latest versions of the Statspack report is the increased focus on time. For example, the first section of top SQL statements by resource consumption is ordered by DB CPU, followed by the SQL ordered by Elapsed Time, before we get anywhere near Logical or Physical Reads. Regardless of whether you&#8217;re licensed for the Diagnostics Pack and have access to ASH, AWR and ADDM, you can still take advantage of some of the instrumentation improvements &#8211; Event Histograms, for example &#8211; and it&#8217;s clear that Oracle is increasing its focus on time.)<\/p>\n<p>Note that, although I&#8217;m choosing to write about aggregated system-wide values as a performance indicator because it&#8217;s one convenient use of DB Time (particularly when comparing two different periods of time that might be seperated by months or when you have hundreds of systems to support or, most important, if you&#8217;re writing a tool like ADDM.), I don&#8217;t think there is anything inherently system-wide about DB Time. If you insist that the only valid performance analysis is that carried out at the session level then, make no mistake, DB Time is recorded for each individual session. It can be used as the input to response time tuning and is really just the Oracle Servers recording of the R in R=S+W. i.e. it&#8217;s equally useful for Response Time tuning at the session level. In fact, I wish it had been called DB Response Time but I understand that even mentioning &#8216;Response Time&#8217; might have led to the argument that the Database Server is only one component of the user&#8217;s end-to-end response experience and that Response Time doesn&#8217;t make sense as a term for data that&#8217;s going to be aggregated for multiple sessions in some cases. (i.e. Can an entire instance have a aggregated Response Time?)<\/p>\n<p>DB Time is the most important of the various <a href=\"http:\/\/download.oracle.com\/docs\/cd\/B19306_01\/server.102\/b28051\/tdppt_method.htm#TDPPT008\">Time Model Statistics<\/a>, which break down the Service component of R = S + W into more detail. Here are the Time Model statistics from <a href=\"\/SOE1.txt\">the Statspack report for the single-user test<\/a>. (Don&#8217;t forget that, as always, this is just reporting underlying statistics. In this case, these statistics are also exposed via v$sys_time_model and v$sess_time_model)<\/p>\n<pre>Time Model System Stats\u00a0 DB\/Inst: TEST1020\/test1020\u00a0 Snaps: 22-23\n-&gt; Ordered by % of DB time desc, Statistic name\n\nStatistic\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Time (s) % of DB time\n----------------------------------- -------------------- ------------\nsql execute elapsed time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 282.9\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 88.0\nDB CPU\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 57.4\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 17.9\nPL\/SQL execution elapsed time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7.8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2.4\nparse time elapsed\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6.2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1.9\nhard parse elapsed time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4.6\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1.4\nhard parse (sharing criteria) elaps\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2.3\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .7\nhard parse (bind mismatch) elapsed\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.6\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .2\nPL\/SQL compilation elapsed time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.4\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .1\nconnection management call elapsed\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .0\nrepeated bind elapsed time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .0\nsequence load elapsed time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .0\n<strong>DB time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 321.5<\/strong>\nbackground elapsed time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 249.4\nbackground cpu time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2.3<\/pre>\n<p>&#8230; and here are the Time Model stats from <a href=\"\/SOE4.txt\">the Statspack report for the four-user test<\/a><\/p>\n<pre>Time Model System Stats\u00a0 DB\/Inst: TEST1020\/test1020\u00a0 Snaps: 24-25\n-&gt; Ordered by % of DB time desc, Statistic name\n\nStatistic\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Time (s) % of DB time\n----------------------------------- -------------------- ------------\nsql execute elapsed time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 779.5\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 64.8\nDB CPU\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 107.7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 9.0\nPL\/SQL execution elapsed time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 15.7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1.3\nparse time elapsed\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2.8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .2\nhard parse elapsed time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2.2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .2\nhard parse (sharing criteria) elaps\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1.1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .1\nhard parse (bind mismatch) elapsed\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1.1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .1\nconnection management call elapsed\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .0\nrepeated bind elapsed time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .0\nsequence load elapsed time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .0\n<strong>DB time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1,202.4<\/strong>\nbackground elapsed time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 408.3\nbackground cpu time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2.7<\/pre>\n<p>(For someone who asked me this question recently, DB CPU is just the value you would see in the CPU row of the existing top 5 timed events section although I understand that CPU measurement has been improved significantly in recent versions.)<\/p>\n<p>In this case, there&#8217;s a relationship between the number of people trying to do something and the total amount of DB Time consumed for a given wall clock duration. If we divide DB Time by the Wall Clock time, we&#8217;re left with the average number of active sessions during the period. If I apply this first to the single-user test, using the values from the Statspack report :-<\/p>\n<blockquote><p>Elapsed Time (from report header) = 5.95 minutes = 357 seconds<br \/>DB Time (from Time Model Statistics) = 321 seconds<br \/>321\/357 = 0.89 Average Active Sessions<\/p><\/blockquote>\n<p>and, for the four-session test :-<\/p>\n<blockquote><p>Elapsed Time = 5.5 minutes = 330 seconds<br \/>DB Time = 1202 seconds<br \/>1202\/330 = 3.64 Average Active Sessions<\/p><\/blockquote>\n<p>Clearly, the instance was a lot busier during the four session test. <\/p>\n<p>Why weren&#8217;t the values exactly 1 and 4? Well, for starters, the Statspack reporting periods were slightly longer than the test run period as I executed snapshots manually in a sqlplus session. Therefore there was a period of time in both reports when the server was dead quiet. There is also the application overhead of Swingbench running the benchmarks and submitting the calls to Oracle. Oracle can only sensibly record the time when it&#8217;s actually doing work on behalf of the application, not when the application is doing it&#8217;s own thing, processing the results of the last database request. None of the database sessions in this test that were performing many small transactions was active for 100% of the time.<\/p>\n<p>But that&#8217;s only one part of the relationship. In this case, the instances workload has increased because more users are working at the same time, but there&#8217;s more to performance problems than that. How about a different example? Imagine a single user is running a single query that takes 2 minutes to complete. The session has been connected for 20 minutes, most of which has been idle, waiting for the user to submit the query. If we look at the session-level information (using v$sess_time_model), we&#8217;d see something like this.<\/p>\n<blockquote><p>DB Time = 120 seconds<\/p><\/blockquote>\n<p>i.e. DB Time shows us &#8216;the Oracle bit&#8217; that we might be able to tune. The goal of the DB Time Performance Method that Graham Wood presented at last year&#8217;s UKOUG conference (amongst others) is to reduce the amount of DB Time taken to deliver the same results. So, how can we reduce DB Time here? By making the query run more quickly, whether it&#8217;s through tuning it to do less work, or increasing the efficiency of that work by reducing bottlenecks. Regardless of *how* I improve the performance of the query, let&#8217;s say I happen to make the query run in 50 seconds.<\/p>\n<blockquote><p>DB Time = 50 seconds <\/p><\/blockquote>\n<p>The end user&#8217;s experience has improved.<\/p>\n<p>There&#8217;s a lot more I could say about DB Time. Like all of the best performance concepts or methods (e.g. YAPP, Method-R) it can seem so obvious as to not be worth saying, but contains an enormous amount of common sense and technical rigour. I suppose one important aspect of DB Time that I would highlight is that it&#8217;s a common currency for ADDM. If you were to write an automatic performance diagnostic tool, what would be your goal? To reduce the time that any particular action takes, whether that&#8217;s by eliminating a bottleneck at the server level, or in the instance configuration or a particular part of the application code. By combining ASH and AWR data using DB Time as the key measurement, ADDM can focus on the actions that will deliver the most significant response time reductions, whether they be more CPU or disk resource, tuning individual SQL statements or eliminating locking issues. Because DB Time can be aggregated at many levels (e.g. Session, Service, Instance) , it can be used in a number of different ways, depending on what data is available and what the goal of the optimisation exercise is.<\/p>\n<p>DB Time &#8211; it&#8217;s the future &#128521;<\/p>\n<p>In the meantime, here are the slides from a couple of other presentations that cover DB Time in much more depth than I have here. Until Graham Wood starts that blog of his (hint, hint) these are the next best thing.<\/p>\n<p><a href=\"http:\/\/www.oracle.com\/technology\/products\/manageability\/database\/pdf\/ow07\/diag_techniques_presentation_ow07.pdf%20\">http:\/\/www.oracle.com\/technology\/products\/manageability\/database\/pdf\/ow07\/diag_techniques_presentation_ow07.pdf<\/a><\/p>\n<p><a href=\"http:\/\/doug.nl\/downloads\/OGH20080410_GRAHAM_WOOD.pdf\">http:\/\/doug.nl\/downloads\/OGH20080410_GRAHAM_WOOD.pdf<\/a> <\/p>\n<p><strong>Updated later &#8211; <a href=\"http:\/\/www.dbazine.com\/blogs\/blog-cf\/chrisfoot\/blogentry.2006-04-08.0966928498\">this article<\/a> from Chris Foot on dbazine.com looks at v$sys_time_model and v$sess_time_model in more detail.<\/strong><\/p>\n<p>* Of course, some people would say that <a href=\"http:\/\/wedonotuse.blogspot.com\/2005\/12\/what-good-is-statspack-really.html\">you shouldn&#8217;t pay too much attention to any values in Statspack reports<\/a>, but they&#8217;ve worked so many times for me that I&#8217;ll stick to my view that they&#8217;re not worthless. In any case, you have a balancing contrary view.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[In retrospect, the title of that first blog post might have suited the subject, but doesn&#8217;t translate too well for subsequent related blog posts. That was a lack of planning or foresight on my part. These blog posts are tumbling out of my head in a fairly incoherent way. Maybe when they&#8217;re finished, I could&hellip; <a class=\"more-link\" href=\"http:\/\/orcldoug.com\/blog\/2008\/08\/20\/time-matters-db-time\/\">Continue reading <span class=\"screen-reader-text\">Time Matters &#8211; DB Time<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1429","post","type-post","status-publish","format-standard","hentry","category-uncategorized","entry"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":1428,"url":"http:\/\/orcldoug.com\/blog\/2008\/08\/14\/time-matters-an-infinite-capacity-for-waiting\/","url_meta":{"origin":1429,"position":0},"title":"Time Matters &#8211; An Infinite Capacity for Waiting*","date":"August 14, 2008","format":false,"excerpt":"When I was teaching the 10g Performance class at my last customer site, I remarked that the total number of seconds you see in the \"Top 5 Timed Events\" section of a Statspack or AWR report will often be greater than the total number of seconds between the snapshot intervals.\u2026","rel":"","context":"With 6 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1684,"url":"http:\/\/orcldoug.com\/blog\/2012\/07\/14\/other_xml\/","url_meta":{"origin":1429,"position":1},"title":"OTHER_XML","date":"July 14, 2012","format":false,"excerpt":"Some features in this post require a Diagnostics Pack license.Just a small tip that could make things a little easier for you one day when you are trying to work out the underlying cause of a SQL execution plan change that leads to degraded performance, after the problem has occurred.There\u2026","rel":"","context":"With 2 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1191,"url":"http:\/\/orcldoug.com\/blog\/2007\/01\/27\/dba-documentation-catalogue\/","url_meta":{"origin":1429,"position":2},"title":"DBA Documentation &#8211; Catalogue","date":"January 27, 2007","format":false,"excerpt":"Prompted by Linda's comment on a previous blog, I thought it might be worth writing a couple of postings on DBA documentation.The first thing you need is a Database Catalogue of some kind.Benefits1) Even an experienced DBA arriving on site won't know what servers exist, how to login to them,\u2026","rel":"","context":"With 11 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":971,"url":"http:\/\/orcldoug.com\/blog\/2005\/06\/22\/dba_registry-again\/","url_meta":{"origin":1429,"position":3},"title":"dba_registry (again)","date":"June 22, 2005","format":false,"excerpt":"(Switch humour on ...)Many thanks to Pete Finnegan for making sure that my embarassing mistakes kick around on recent entries at Orablogs! (and off)To quote Pete ...Doug seems embarrassed a little by this but this is common mistakeMake that very embarassed, if you don't mind! Here are the reasons 1)\u2026","rel":"","context":"Similar post","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1506,"url":"http:\/\/orcldoug.com\/blog\/2009\/07\/02\/real-time-sql-monitoring-in-sql-developer\/","url_meta":{"origin":1429,"position":4},"title":"Real-Time SQL Monitoring in SQL Developer","date":"July 2, 2009","format":false,"excerpt":"Features in this post require both Diagnostics and Tuning Pack licenses.If you haven't seen 11g's Real Time SQL Monitoring feature, you need to. It's one of the most useful Oracle performance troubleshooting tools I've seen since I started working with Oracle too long ago. I was first aware of it\u2026","rel":"","context":"With 10 comments","img":{"alt_text":"","src":"\/serendipity\/uploads\/xsqldev1.png.pagespeed.ic.lI55QN9Yna.png","width":350,"height":200},"classes":[]},{"id":1596,"url":"http:\/\/orcldoug.com\/blog\/2010\/04\/22\/statistics-on-partitioned-tables-part-6a-copy_table_stats-intro\/","url_meta":{"origin":1429,"position":5},"title":"Statistics on Partitioned Tables &#8211; Part 6a &#8211; COPY_TABLE_STATS &#8211; Intro","date":"April 22, 2010","format":false,"excerpt":"[Phew. At last. The first draft of this was dated more than two weeks ago .... One of the problems with blogging about copying stats was the balance between explaining it and pointing out some of the problems I've encountered. So I've broken up this post, with a little explanation\u2026","rel":"","context":"With 4 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts\/1429","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/comments?post=1429"}],"version-history":[{"count":0,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts\/1429\/revisions"}],"wp:attachment":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/media?parent=1429"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/categories?post=1429"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/tags?post=1429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}