1. Get rid of all advertisements and get unlimited access to documents by upgrading to Premium Membership. Upgrade to Premium Now and also get a Premium Badge!

consistent gets after flushing the cache

Discussion in 'General' started by dsub42, May 13, 2010.

  1. dsub42

    dsub42 Active Member

    Messages:
    31
    Likes Received:
    0
    Trophy Points:
    80
    Hi I have just ran a statement that selects 200,000 rows from a table, each row is unique...

    however after flushing the cache, I have ran this statement and the stats show both consistant gets and physical reads...

    why is this? i thaught after flushing the cache it would be all physical reads and no consistent gets as none of the data would be in the buffer?

    First I have pasted the results when not flushing the cache, secondly I have posted the results when flushing I have flushed the cache... why do i get consistent gets on the flushed version?

    Code ( (Unknown Language)):
     
    Code (SQL):
    PL/SQL PROCEDURE successfully completed.


    System altered.


    200000 ROWS selected.


    Execution Plan
    ----------------------------------------------------------                      
                                                                                   
    ---------------------------------------------------------------                
    | Id  | Operation         | Name      | ROWS  | Bytes | Cost  |                
    ---------------------------------------------------------------                
    |   0 | SELECT STATEMENT  |           |   200K|  4492K|  2062 |                
    |   1 |  TABLE ACCESS FULL| TBLPERSON |   200K|  4492K|  2062 |                
    ---------------------------------------------------------------                
                                                                                   
    Note                                                                            
    -----                                                                          
       - 'PLAN_TABLE' IS OLD version                                                


    Statistics
    ----------------------------------------------------------                      
              0  recursive calls                                                    
              0  db block gets                                                      
          20612  consistent gets                                                    
           7553  physical reads                                                    
              0  redo SIZE                                                          
        3691835  bytes sent via SQL*Net TO client                                  
         147079  bytes received via SQL*Net FROM client                            
          13335  SQL*Net roundtrips TO/FROM client                                  
              0  sorts (memory)                                                    
              0  sorts (disk)                                                      
         200000  ROWS processed                                                    

    timing FOR: timer7
    Elapsed: 00:00:01.67
    Any ideas?
     
  2. zargon

    zargon Community Moderator Forum Guru

    Messages:
    2,351
    Likes Received:
    348
    Trophy Points:
    1,430
    Location:
    Aurora, CO
    Certainly. While you may have flushed the buffer cache (indicating this is at least 11gR1 you're running) such a flush does not affect the results cache, new to this release. Yes, you had physical reads, performed to validate the results data blocks already in memory. The matching consistent gets testify to the fact that even though 7553 data blocks had been touched by another process or query none of those blocks experienced any change which may have affected the previously cached results, proven by the 0 blocks of redo reported.
     
  3. dsub42

    dsub42 Active Member

    Messages:
    31
    Likes Received:
    0
    Trophy Points:
    80
    I got a compleatly different answer on the oracle forum:

    "You must remember that even though you would do a physical read to get the data of your need, you would never directly read the data from the disk. It would be always preesnted to you from the cache only. In other words, data would be brought into the cache by oracle from the disk and form there it would be shown to you. So if you would do data selection from disk, than the total io's would be the LIOs plus the PiOs. Once the data has been brought to the cache, only that would be used and there would be no physical ios. So I guess it should clear your doubt. "

    so who's correct?
     
  4. zargon

    zargon Community Moderator Forum Guru

    Messages:
    2,351
    Likes Received:
    348
    Trophy Points:
    1,430
    Location:
    Aurora, CO
    Data is read from disk into the buffer cache and then read by the Oracle process requesting it. However that is still considered a physical read as the data was NOT in the cache prior to reading it from disk. Consistent gets are those gets from the buffer cache of a block already in the cache so no disk access is necessary. There would be physical io reported. Data was read into the buffer cache since you cleared the cache before this query ran. The consistent gets are exactly the same for both queries, telling me the results cache was used to satisfy your query; the physical io recorded was for the changed data blocks this query was using. Since none of those changes affected the query results the prior query results were returned from the results cache and that is why the consistent gets match up between the two runs.
     
  5. dsub42

    dsub42 Active Member

    Messages:
    31
    Likes Received:
    0
    Trophy Points:
    80
    o.k, on the same note, could you explain why when i dropped theold explain plan i was using and created the new one, why for some queries such as this one I get the same 'cost results:

    Code (SQL):
    Execution Plan
    ----------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
    Plan hash VALUE: 3913887230                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
    -------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
    | Id  | Operation         | Name      | ROWS  | Bytes | Cost (%CPU)| TIME     |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
    -------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
    |   0 | SELECT STATEMENT  |           |   453K|    23M|  1522   (2)| 00:00:19 |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
    |*  1 |  TABLE ACCESS FULL| TBLPERSON |   453K|    23M|  1522   (2)| 00:00:19 |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
    -------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
    Predicate Information (IDENTIFIED BY operation id):                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
    ---------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
       1 - FILTER("WORKCATID"=2 OR "WORKCATID"=3)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
    Note                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
    -----                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
       - dynamic sampling used FOR this statement                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          


    Statistics
    ----------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
              0  recursive calls                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
              0  db block gets                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
          32144  consistent gets                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
           5479  physical reads                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
              0  redo SIZE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
        7373824  bytes sent via SQL*Net TO client                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
         293742  bytes received via SQL*Net FROM client                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
          26668  SQL*Net roundtrips TO/FROM client                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
              0  sorts (memory)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
              0  sorts (disk)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
         400002  ROWS processed                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

    timing FOR: timer1
    Elapsed: 00:00:02.31

    400002 ROWS selected.

    AND##########################################


    400002 ROWS selected.


    Execution Plan
    ----------------------------------------------------------                      
                                                                                   
    ---------------------------------------------------------------                
    | Id  | Operation         | Name      | ROWS  | Bytes | Cost  |                
    ---------------------------------------------------------------                
    |   0 | SELECT STATEMENT  |           |   453K|    23M|  1522 |                
    |   1 |  TABLE ACCESS FULL| TBLPERSON |   453K|    23M|  1522 |                
    ---------------------------------------------------------------                
                                                                                   
    Note                                                                            
    -----                                                                          
       - 'PLAN_TABLE' IS OLD version                                                


    Statistics
    ----------------------------------------------------------                      
              0  recursive calls                                                    
              0  db block gets                                                      
          32144  consistent gets                                                    
           5479  physical reads                                                    
              0  redo SIZE                                                          
        7373824  bytes sent via SQL*Net TO client                                  
         293742  bytes received via SQL*Net FROM client                            
          26668  SQL*Net roundtrips TO/FROM client                                  
              0  sorts (memory)                                                    
              0  sorts (disk)                                                      
         400002  ROWS processed                                                    

    timing FOR: timer1
    Elapsed: 00:00:02.25

    400002 ROWS selected.

     
    But then other queries, im getting different results for the same query: eg..

    Code (SQL):
    400002 ROWS selected.


    Execution Plan
    ----------------------------------------------------------                      
                                                                                   
    --------------------------------------------------------------------------------
    ---------                                                                      
                                                                                   
    | Id  | Operation             | Name            | ROWS  | Bytes | Cost  | Pstart
    | Pstop |                                                                      
                                                                                   
    --------------------------------------------------------------------------------
    ---------                                                                      
                                                                                   
    |   0 | SELECT STATEMENT      |                 |   359K|    18M|   905 |      
    |       |                                                                      
                                                                                   
    |   1 |  PARTITION LIST INLIST|                 |   359K|    18M|   905 |KEY(I)
    |KEY(I) |                                                                      
                                                                                   
    |   2 |   TABLE ACCESS FULL   | TBLPERSON_LPART |   359K|    18M|   905 |KEY(I)
    |KEY(I) |                                                                      
                                                                                   
    --------------------------------------------------------------------------------
    ---------                                                                      
                                                                                   
                                                                                   
    Note                                                                            
    -----                                                                          
       - 'PLAN_TABLE' IS OLD version                                                


    Statistics
    ----------------------------------------------------------                      
              0  recursive calls                                                    
              0  db block gets                                                      
          29821  consistent gets                                                    
           3146  physical reads                                                    
              0  redo SIZE                                                          
        7373850  bytes sent via SQL*Net TO client                                  
         293742  bytes received via SQL*Net FROM client                            
          26668  SQL*Net roundtrips TO/FROM client                                  
              0  sorts (memory)                                                    
              0  sorts (disk)                                                      
         400002  ROWS processed                                                    

    timing FOR: timer4
    Elapsed: 00:00:01.82

    400002 ROWS selected.

    ###########################################################################

    Different than....

    400002 ROWS selected.


    Execution Plan
    ----------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
    Plan hash VALUE: 1338725477                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
    ---------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
    | Id  | Operation             | Name            | ROWS  | Bytes | Cost (%CPU)| TIME     | Pstart| Pstop |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
    ---------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
    |   0 | SELECT STATEMENT      |                 |   359K|    18M|  1213  (28)| 00:00:15 |       |       |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
    |   1 |  PARTITION LIST INLIST|                 |   359K|    18M|  1213  (28)| 00:00:15 |KEY(I) |KEY(I) |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
    |   2 |   TABLE ACCESS FULL   | TBLPERSON_LPART |   359K|    18M|  1213  (28)| 00:00:15 |KEY(I) |KEY(I) |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
    ---------------------------------------------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
    Note                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
    -----                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
       - dynamic sampling used FOR this statement                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          


    Statistics
    ----------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
              0  recursive calls                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
              0  db block gets                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
          29821  consistent gets                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
              0  physical reads                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
              0  redo SIZE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
        7373850  bytes sent via SQL*Net TO client                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
         293742  bytes received via SQL*Net FROM client                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
          26668  SQL*Net roundtrips TO/FROM client                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
              0  sorts (memory)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
              0  sorts (disk)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
         400002  ROWS processed                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

    timing FOR: timer4
    Elapsed: 00:00:01.60
     

    The problem is that i have done a shed load of testing... and on recent tests im using the new explain plan... but now its messing stuff up because its giving contradicting cost values for the same tests.
     
  6. zargon

    zargon Community Moderator Forum Guru

    Messages:
    2,351
    Likes Received:
    348
    Trophy Points:
    1,430
    Location:
    Aurora, CO
    You don't have the same tests as you've recreated this table as a partitioned table (it wasn't before if I read your explain plan correctly) and the costs (time) change as partitioned access is different from accessing a non-partitioned table.

    Compare apples to apples, please; you're comparing peaches to figs.
     
  7. dsub42

    dsub42 Active Member

    Messages:
    31
    Likes Received:
    0
    Trophy Points:
    80
    No that isnt what i posted, i am comparing like for like

    the first two are the same test ran on an unpartitioned table using both explain plans..... the cost is the same

    the second two are the same test ran on a partitioned table , using both explain plans...... the cost is different.

    im not comparing the first two against the second two....
     
  8. zargon

    zargon Community Moderator Forum Guru

    Messages:
    2,351
    Likes Received:
    348
    Trophy Points:
    1,430
    Location:
    Aurora, CO
    Cost is time measured in the block read time for the database at the time the query is run. On active systems such 'costs' can vary; a difference of 300 between query runs is not significant as this is usually reported in milliseconds.
     
  9. dsub42

    dsub42 Active Member

    Messages:
    31
    Likes Received:
    0
    Trophy Points:
    80
    I have ran that query many times for each plan table,

    I allways get 905 for the 'old' table

    and

    I allways get 1213 for the 'new' table..

    why is this?
     
  10. zargon

    zargon Community Moderator Forum Guru

    Messages:
    2,351
    Likes Received:
    348
    Trophy Points:
    1,430
    Location:
    Aurora, CO
    One, the PLAN_TABLE definition has changed.
    Two, the statistics gathered in later releases are far more detailed.
    Three, this 'new' table definition takes advantage of those enhanced statistics to generate its reports.
     
    dsub42 likes this.