RE: buffer advisor (has become: should there be a private sql area?)

From: Iggy Fernandez <iggy_fernandez_at_hotmail.com>
Date: Fri, 12 Sep 2014 11:45:22 -0700
Message-ID: <BLU179-W48083B3DC27BE098C04D2EEBCD0_at_phx.gbl>



I have to disagree with you vehemently dear Tim (because I just flunked a job interview and am in a combative mood this morning). <vehement counterattack>Why is "operate in degraded mode" such a bad thing? Why is "give the customer a choice" such a bad thing? Why is "kill a critical business process" the right thing?</vehement counterattack> Iggy

Date: Fri, 12 Sep 2014 08:01:11 -0600
From: tim_at_evdbt.com
To: oracle-l_at_freelists.org
Subject: Re: buffer advisor (has become: should there be a private sql area?)

Not really mind-boggling. This is a scalability mechanism, so it's rarely only one session that will be unable to share, it will be undoubtedly be many.

You don't hear people saying, "it's only *one* person with Ebola, just stabilize 'em and send 'em home".


    On 9/10/14, 11:07, Iggy Fernandez
      wrote:

    
    
      
      +42
        

        
        It boggles the mind that a session must die if it cannot
          share #ShareOrDie
        

        
        Iggy
        

          

          
            From: mwf_at_rsiz.com

            To: mark.powell2_at_hp.com; oracle-l_at_freelists.org

            Subject: RE: buffer advisor (has become: should there be a
            private sql area?)

            Date: Wed, 10 Sep 2014 13:01:43 -0400

            

            
            
               
              The
                  design choice is not limited to converting versus
                  flooding; you leave out the alternative: “versus not
                  searching the pool, not using latches, and just
                  parsing it privately.”
               
              When
                  parsing is a significant part of the total query cost
                  and there is a high fan in, sharing is essential to
                  scalability and mapping tends to work.
               
              When
                  parsing is an insignificant part of the total query
                  cost sharing is not relevant to performance.
              When
                  no similar query is likely to be used, sharing is
                  probably just overhead. Likewise, you don’t define
                  outlines for things that have not be run before.
              When
                  sharing drives an avoidable error, that is the
                  ultimate performance penalty.
               
              Since
                  private parsing has not been available since 6 (when
                  it was the only choice), it is correct to ignore it as
                  a trouble-shooting mechanism. It is not irrelevant in
                  the context of an enhancement request to avoid shared
                  pool contention and space errors or reduce the time to
                  parse of simple queries containing literals. MANY
                  literal queries retrieve one row by an obvious one row
                  choice index. IF plan creation started with the
                  heuristic: Is there an obvious plan that delivers cost
                  < epsilon or cost < psi where epsilon is some
                  multiple of the cost to look for a better plan and psi
                  is the cost to search the shared pool, then avoiding
                  sharing could be a gated scaling benefit.
               
              Flooding
                  the shared pool with un-sharable SQL is clearly a bad
                  idea.
               
              
                
                  From:
                      oracle-l-bounce_at_freelists.org
                      [mailto:oracle-l-bounce_at_freelists.org] On
                        Behalf Of Powell, Mark

                      Sent: Wednesday, September 10, 2014 12:24
                      PM

                      To: 'ORACLE-L'

                      Subject: RE: buffer advisor
                
              
               
               
              And
                  sometimes you do not.   The question becomes would
                  automatically converting constants to bind variables
                  in all cases be more beneficial to the overall system
                  verse flooding the shared pool with un-sharable SQL? 
                  In the case where the code runs better with a constant
                  then there are Outlines and SQL Profiles to assist
                  with tuning.  Then again if Oracle works this way bind
                  variable peeking might just peek on every execution
                  for statements where it might make a difference.
               
               
              
                
                  From:
                      Mark W. Farnham [mailto:mwf_at_rsiz.com]
                      

                      Sent: Wednesday, September 10, 2014 11:19
                      AM

                      To: Powell, Mark; 'ORACLE-L'

                      Subject: RE: buffer advisor
                
              
               
              Because
                  sometimes you get a superior plan with a literal (by a
                  lot),  and then we’d have to hint one way or the other
                  and we cannot do that because sometimes (often) we do
                  not control the source code.
               
              
                
                  From:
                      oracle-l-bounce_at_freelists.org
                      [mailto:oracle-l-bounce_at_freelists.org]
                      On Behalf Of Powell, Mark

                      Sent: Wednesday, September 10, 2014 11:03
                      AM

                      To: 'ORACLE-L'

                      Subject: RE: buffer advisor
                
              
               
              Why
                  not automatically convert all constants to bind
                  variables as part of the parse?  This would make
                  nearly identical SQL statements where only the value
                  of the constant changes into identical statements
                  supporting sharing. 
               
               
              
                
                  From:
                      oracle-l-bounce_at_freelists.org
                      [mailto:oracle-l-bounce_at_freelists.org]
                      On Behalf Of Mark W. Farnham

                      Sent: Tuesday, September 09, 2014 11:09 PM

                      To: Hemant-K.Chitale_at_sc.com;
                      'ORACLE-L'

                      Subject: RE: buffer advisor
                
              
               
              There
                  is no question that reusing reusable sql parses was a
                  huge advance for scalability. But tossing non-reusable
                  sql in the shared pool just puts extra pressure on the
                  latches.
               
              mwf
               
              
                
                  From:
                      oracle-l-bounce_at_freelists.org
                      [mailto:oracle-l-bounce_at_freelists.org]
                      On Behalf Of Chitale, Hemant K

                      Sent: Tuesday, September 09, 2014 10:57 PM

                      To: ORACLE-L

                      Subject: RE: buffer advisor
                
              
               
              The shared pool came at the same time as
                  database server  pl/sql  --- if I remember
                  correctly.   [there was forms pl/sql available
                  earlier]
              Was there co-development or dependency ?
               
              
                Hemant
                    K Chitale
                 
              
               
              
                
                  From:
                      oracle-l-bounce_at_freelists.org
                      [mailto:oracle-l-bounce_at_freelists.org]
                      On Behalf Of Mark W. Farnham

                      Sent: Wednesday, September 10, 2014 10:48
                      AM

                      To: iggy_fernandez_at_hotmail.com;
                      jeremy.schneider_at_ardentperf.com

                      Cc: 'Seth Miller'; 'Oracle-L Freelists'

                      Subject: RE: buffer advisor
                
              
               
              In
                  fact, why not parse all sqls with literals privately?
                  It worked just fine in V6.
               
              mwf
               
              
                
                  From:
                      oracle-l-bounce_at_freelists.org
                      [mailto:oracle-l-bounce_at_freelists.org]
                      On Behalf Of Iggy Fernandez

                      Sent: Tuesday, September 09, 2014 9:25 PM

                      To: jeremy.schneider_at_ardentperf.com

                      Cc: Seth Miller; Oracle-L Freelists

                      Subject: RE: buffer advisor
                
              
               
              
                I
                    wish that the ORA-4031 issue could be solved
                    permanently #IfWishesWereHorses
                
                   
                
                
                  Is
                      a solution to this problem beyond the capabilities
                      of mortals? #ShoutingIntoTheWind
                  
                     
                  
                  
                    Why
                        is it necessary for a session to die if it
                        cannot write to the shared pool? Why not just do
                        what it needs to do even if it cannot share?
                        #AskingTheObvious
                  
                
                
                   
                
                
                  Iggy
                
              
              

                  This email and any attachments are confidential and
                  may also be privileged. If you are not the intended
                  recipient, please delete all copies and notify the
                  sender immediately. You may wish to refer to the
                  incorporation details of Standard Chartered PLC,
                  Standard Chartered Bank and their subsidiaries at https://www.sc.com/en/incorporation-details.html.
            
          
        
      
    
    
 		 	   		  
--
http://www.freelists.org/webpage/oracle-l
Received on Fri Sep 12 2014 - 20:45:22 CEST

Original text of this message