Re: Buffer Gets question

  • From: Patrick Jolliffe <jolliffe@xxxxxxxxx>
  • To: Amir.Hameed@xxxxxxxxx
  • Date: Thu, 4 May 2017 12:51:00 +0200

This presentation by Mauro may give some ideas of where to start looking:
https://www.slideshare.net/mobile/MauroPagano3/same-plan-different-performance


On 3 May 2017 04:39, "Hameed, Amir" <Amir.Hameed@xxxxxxxxx> wrote:

We have two environments, one production and the other a copy of
production (about three weeks old). These are Oracle EBS 12.1.3
environments and are setup identically in terms of SGA settings, optimizer
parameters, etc. The database version is 12.1.0.2. The OS is RHL 6. The H/W
is identical for both databases (UCS blades with 16-cores on each database
server).



The environment, which is a copy of production, is the load test
environment. There is a standard Oracle query which is part of the
Contracts module that is running optimally in production but is taking
almost five times longer in the load test environment. The query has the
same plan hash value and cost in both environments. Based on information in
the AWR report, 10046 trace and from V$SQL, the reason the statement is
running longer in the load-test environment is because it is doing a lot
more buffer gets in that environment than in production. Below are database
stats from both production and the load test environment:



*Production*

                       Disk         Direct      Buffer         User IO
Wait    Rows        CPU Time   Elapsed      Physical            SQL Plan
Optimzr

SQL Id        Execs    Reads        Writes      Gets           Time
(micro)    Processed   (msecs)    Time (msecs) Read (bytes)        Hash
Value  Cost

------------- -------- ------------ ----------- --------------
--------------- ----------- ---------- ------------ -------------------
----------- --------

8752wtxdch988      749       11,705           0      6,169,428
43,689,599     983,756     39,935       83,239          95,887,360
3209742519       45





*Load test*

                         Disk         Direct      Buffer         User IO
Wait    Rows        CPU Time    Elapsed      Physical           SQL Plan
Optimzr

SQL Id        Execs      Reads        Writes      Gets           Time
(micro)    Processed   (msecs)     Time (msecs) Read (bytes)       Hash
Value  Cost

------------- ---------- ------------ ----------- --------------
--------------- ----------- ----------- ------------ ------------------
----------- --------

8752wtxdch988      1,714        4,376           0    120,837,353
18,988,036     154,148   1,583,597    1,607,511
6,971,392   209742519       45



I am trying to understand why a statement with the same execution plan is
doing a lot more buffer gets in two different environments which are almost
identical in terms of data volume. I said “almost identical” because the
load test copy has slightly less volume than in production because it is
about 3 weeks old.



Thanks,

Amir



Other related posts: