Re: Buffer Gets question

  • From: Marian Bednar <bednar@xxxxxx>
  • To: Amir.Hameed@xxxxxxxxx
  • Date: Wed, 3 May 2017 07:42:39 +0200

It seems that the sql plans aren't identical - plan_hash_value 3209742519 
vs. 209742519...



From:   "Hameed, Amir" <Amir.Hameed@xxxxxxxxx>
To:     'ORACLE-L' <oracle-l@xxxxxxxxxxxxx>, 
Date:   03. 05. 2017 04:39
Subject:        Buffer Gets question
Sent by:        oracle-l-bounce@xxxxxxxxxxxxx



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: