Re: Why such high buffer gets for a simple insert and inconsistent in every run

  • From: kunwar singh <krishsingh.111@xxxxxxxxx>
  • To: sachin pawar <getsach@xxxxxxxxx>
  • Date: Sun, 5 Aug 2018 12:24:25 -0400

Hi Sachin,
Thank you for replying!

- I just ran that trace. it didnt trace anything.

ALTER SESSION SET EVENTS '10200 TRACE NAME CONTEXT FOREVER, LEVEL 1';
ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 8';
insert into emp values(1114,'TESTEMP3','MANAGER',7839,sysdate,100,100,20);

But the trace file doesnt show any new information compared to what a
normal 10046 trace would show.
Am i doing something wrong?


-Yes i did review that post . x$kcbsw dont have all columns referenced in
the view.  He did mention at the end of the note: that  the two x$
structures( i believe x$kcbsw , x$kcbwh )are not updated in the same way in
11g. So not sure if procedure can be used for this purpose in 12c.

-Yes i already did that before posting here.

Cheers,
Kunwar


On Sun, Aug 5, 2018 at 12:17 PM, sachin pawar <getsach@xxxxxxxxx> wrote:

hi Kunwar,

-Did you try tracing with 10200 event?
I have never used but saw it in few posts after google on it.

-Did you review this post from Jonathan Lewis?
http://www.jlcomp.demon.co.uk/buffer_usage.html
note: Not sure if still works for 12c because x$kcbsw structure has
changed , but you can go through it anyways.

-How about searching on MOS for troubleshooting it?
i quickly searched but no exact hits to suggest to you .

Rgds,
Sachin
https://twitter.com/sach_pwr




On Sun, Aug 5, 2018 at 12:07 PM, kunwar singh <krishsingh.111@xxxxxxxxx>
wrote:

Hello Performance Experts,

I always thought simple insert ( table doesnt have a LOB)  would always
return very few buffer gets ( if only 1 index on the table) . But below
testcase shows 9 or 11 buffer gets everytime i insert these records . If i
keep on repeating the same inserts it drops to ~6 gets/exec.
Can anyone tell why this is the case? I always thought it would be 3
gets/exec for every execution in such a simple insert into and single index
table.

Version:12.1.0.1.0

TESTCASE:
++++++ ++++++ ++++++

13:48:51 SQL> alter system flush shared_pool;
System altered.
Elapsed: 00:00:00.04
13:48:55 SQL> alter system flush buffer_cache;
System altered.
Elapsed: 00:00:00.17
13:49:03 SQL> create index emp_ix on emp(empno);
Index created.
Elapsed: 00:00:00.16
13:49:08 SQL> exec dbms_stats.gather_table_stats(user, upper('EMP'),
null, method_opt=>'FOR TABLE FOR ALL COLUMNS SIZE REPEAT', cascade=>true);
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.92
select *from user_tables where table_name='EMP'
============================================================
====================
TABLE_NAME                     --> EMP
TABLESPACE_NAME                --> USERS
CLUSTER_NAME                   -->
IOT_NAME                       -->
STATUS                         --> VALID
PCT_FREE                       --> 10
PCT_USED                       -->
INI_TRANS                      --> 1
MAX_TRANS                      --> 255
INITIAL_EXTENT               &nb