Buffer cache hit ration found 99.7%,still the app users complains.

Here in my database,i querey the v$sysstat and found the buffer cache hit ration 99.7% ,by looking that hit ration there is room improvements.
what are the other things which can examine here ?
hare krishna
Alok

As others have said, buffer cache hit ratio is only one of the measurements - and it is often improperly applied, making it worse than useless.
Since this is in production,. it's too late to do anything about the design. So we skip that very important step and go to the SQL statements ...
What are the users complaining about, in detail? Is it the system, or is it a specific operation? Use that knowledge to attempt to define a single SQL statement or a small set of SQL statements, and then start tuning those.
The other possibility, seen A LOT these days, is that the app was written in Visual Basic, .Net or Java and uses the "build the statement on the fly and execute immediate" method. In that case, your server is probably sitting at very high CPU useage and your shared pool is used very inefficiently. Use the V$PGA_TARGET_ADVICE and V$SHARED_POOL_ADVICE views (described in the Administrator's manual and the Performance Tuning manual) to adjust these memory segments properly. All youi can do is alleviate the result of bad development.
And finally, you may simply have gone into swapping or paging, the evil that occurs when you attempt to a) put multiple instances on a server, or b) put the instance and the application background tasks on the same server, or c) do not use PGA_AGGREGATE_TARGET properly.

Similar Messages

  • How to tune effectively to the buffer cache hit ratio?

    We have a database with following sga sizes;
    shared pool : 256 MB
    Buffer Cache: 880 MB
    Large pool: 32 MB
    Java pool: 32 MB
    Total SGA: 1201.435 mb. From the health check, i found Buffer Cache Hit Ratio is giving the trouble. so, i need advice from dba gurus, should Buffer Cache Hit ratio be increase or decreasee, in order to improve the performance?
    Please help me
    Ateeq

    I will generate statspack tommorrow morning when there will be lot of activity on the database. In the meantime, some output from Health check toad are:
    ->!Buffer Cache Hit Ratio : 82.3246
    -->[Segments with > 100 extents] Exec Time 1 seconds
    ! TABLE IN_CHIYODA.SPEC_REVISION_DOCUMENT_MAIN: 107 Extents
    ! TABLE EF2_DATA.N3RGRPRGRP: 126 Extents
    ! TABLE EF2_DATA.N3OBJATTR: 192 Extents
    ! TABLE EF2_DATA.EFT_UID: 119 Extents
    ! TABLE EF2_DATA.N2FILEOBJ: 121 Extents
    ! TABLE EF2_DATA.N2IFOBJ: 211 Extents
    ! TABLE EF2_DATA.N2REVGRP: 128 Extents
    ! INDEX EF2_DATA.N3OBJATTR_RLTLEFTRELINDEX: 122 Extents
    ! INDEX EF2_DATA.N3OBJATTR_RLTRIGHTRELINDEX: 114 Extents
    ! INDEX EF2_DATA.PK_N3OBJATTR: 119 Extents
    ! INDEX EF2_DATA.EFI_UID_N1UID: 120 Extents
    ! INDEX EF2_DATA.EFI_UID_N1OBJOBID: 103 Extents
    ! INDEX EF2_DATA.N1BOBJOBID_N2IFOBJ: 186 Extents
    ! INDEX EF2_DATA.N2IFOBJ_N1BOBJOBID: 159 Extents
    ! INDEX EF2_DATA.N2IFOBJ_N1NAME: 115 Extents
    ! INDEX EF2_DATA.PK_N2IFOBJ: 158 Extents
    ! INDEX EF2_DATA.N2IFOBJ_MYINDEX: 187 Extents
    Can you advice anthing based on these results.
    Thanks

  • RAC - buffer cache hit ratio

    Hi, I'm a newbie to the forums, so please bear with me.
    I am trying to determine if the usual buffer cache hit ratio figures are irrelevant when used on a RAC environment, because of Cache Fusion and the blocks being moves between the SGA's of the instance?

    Buffer cache hit ratios are always relevant (but not necessarily an indicator of performance).
    Wether it is coming in by cache fusion or a direct read from a datafile, you are still moving a datablock into the cache or reading from the cache.

  • Buffer cache hit ratio query

    Hi,
    I would appreciate some advice please.
    My Oracle 10.2.0.4.0 database starts off in the day with a buffer cache hit ratio of almost 100% but this drops gradually in the course of the day as the system gets busier. Is this something I need to be concerned about if no performance problem has been reported by the users?
    I would have thought this should be a normal situation, i.e. as the system gets busier, I would expect that less number of calls to the buffer cache will be satisfied because many more calls are using up the memory?
    Please note that I've done some reading up on this but would like some suggestions from more experienced people than myself on what I should normally expect and what should or should not be a concern.
    thanks

    user8869798 wrote:
    hi,
    thanks again for your response and apologies for not being able to get back yesterday.No problem :) .
    >
    - What i am doing and how - it is the backend database r our Finance application, many users with various transactions.Okay , that sounds like a "normal" database with normal workload.
    - configuring buffer cache size - I haven't done anything manually yet, it's all been as installed, this is what I'm trying to figure out whether it is something I should be looking into doing simply because of the dropping hit ratio and not because of any reported performance problem.If you don't have much of the knowledge, its the best to take use of the advisories which would tell you in a better and in a graphical way that whether you should or shouldn't be worries. Look at the view v$db_cache_advice which can suggest to you that whether you would need to tweak the buffer cache or not.
    >
    - looking at the queries - What is the easiest way of doing this in an environment where many users are running different queries? What's the easiest way to identify queries that we may need to have a closer look at?Easiest way? Well, let the users come back to you ;-) .
    >
    - Basically, I'm just trying to ascertain whether or not I need to be concerned that my hit ratio drops below 89% even though no performance problem has been reported. If it is something that I should look into, then what is the best way to go about it?
    I believe that's answered by couple of us already, nope.
    Aman....

  • Buffer Cache hit Ratio

    Hi All,
    My DB Version: 10.2.0
    OS: Windows Server 2003
    I run the following script to get Hit ratio's
    SELECT cur.inst_id, 'Buffer Cache Hit Ratio ' "Ratio", to_char(ROUND((1-(phy.value / (cur.value + con.value)))*100,2)) "Value"
    FROM gv$sysstat cur, gv$sysstat con, gv$sysstat phy
    WHERE cur.name = 'db block gets'
    AND con.name = 'consistent gets'
    AND phy.name = 'physical reads'
    and phy.inst_id=1
    and cur.inst_id=1
    and con.inst_id=1
    union all
    SELECT cur.inst_id,'Buffer Cache Hit Ratio ' "Ratio", to_char(ROUND((1-(phy.value / (cur.value + con.value)))*100,2)) "Buffer Cache Hit Ratio"
    FROM gv$sysstat cur, gv$sysstat con, gv$sysstat phy
    WHERE cur.name = 'db block gets'
    AND con.name = 'consistent gets'
    AND phy.name = 'physical reads'
    and phy.inst_id=2
    and cur.inst_id=2
    and con.inst_id=2
    union
    SELECT inst_id, 'Library Cache Hit Ratio ' "Ratio", to_char(Round(sum(pins) / (sum(pins)+sum(reloads)) * 100,2)) "Library Cache Hit Ratio"
    FROM gv$librarycache group by inst_id
    union
    SELECT inst_id,'Dictionary Cache Hit Ratio ' "Ratio", to_char(ROUND ((1 - (SUM (getmisses) / SUM (gets))) * 100, 2)) "Percentage"
    FROM gv$rowcache group by inst_id
    union
    Select inst_id, 'Get Hit Ratio ' "Ratio",to_char(round((sum(GETHITRATIO))*100,2)) "Get Hit"--, round((sum(PINHITRATIO))*100,2)"Pin Hit"
    FROM GV$librarycache
    where namespace in ('SQL AREA')
    group by inst_id
    union
    Select inst_id, 'Pin Hit Ratio ' "Ratio", to_char(round((sum(PINHITRATIO))*100,2))"Pin Hit"
    FROM GV$librarycache
    where namespace in ('SQL AREA')
    group by inst_id
    union
    select a.inst_id,'Soft-Parse Ratio ' "Ratio", to_char(round(100 * ((a.value - b.value) / a.value ),2)) "Soft-Parse Ratio"
    from (select inst_id,value from gv$sysstat where name like 'parse count (total)') a,
    (select inst_id, value from gv$sysstat where name like 'parse count (hard)') b
    where a.inst_id = b.inst_id
    union
    select a.inst_id,'Execute Parse Ratio ' "Ratio", to_char(round(100 - ((a.value / b.value)* 100),2)) "Execute Parse Ratio"
    from (Select inst_id, value from gv$sysstat where name like 'parse count (total)') a,
    (select inst_id, value from gv$sysstat where name like 'execute count') b
    where a.inst_id = b.inst_id
    union
    select a.inst_id,'Parse CPU to Elapsed Ratio ' "Ratio", to_char(round((a.value / b.value)* 100,2)) "Parse CPU to Elapsed Ratio"
    from (Select inst_id, value from gv$sysstat where name like 'parse time cpu') a,
    (select inst_id, value from gv$sysstat where name like 'parse time elapsed') b
    where a.inst_id = b.inst_id
    union
    Select a.inst_id,'Chained Row Ratio ' "Ratio", to_char(round((a.val/b.val)*100,2)) "Chained Row Ratio"
    from (SELECT inst_id, SUM(value) val FROM gV$SYSSTAT WHERE name = 'table fetch continued row' group by inst_id) a,
    (SELECT inst_id, SUM(value) val FROM gV$SYSSTAT WHERE name IN ('table scan rows gotten', 'table fetch by rowid') group by inst_id) b
    where a.inst_id = b.inst_id
    union
    Select inst_id,'Latch Hit Ratio ' "Ratio", to_char(round(((sum(gets) - sum(misses))/sum(gets))*100,2)) "Latch Hit Ratio"
    from gv$latch
    group by inst_id
    /* Available from 10g
    union
    select inst_id, metric_name, to_char(value)
    from gv$sysmetric
    where metric_name in ( 'Database Wait Time Ratio', 'Database CPU Time Ratio')
    and intsize_csec = (select max(intsize_csec) from gv$sysmetric)
    order by inst_id
    What i am getting after this is:
    INST_ID Ratio Value
    1 Buffer Cache Hit Ratio .83
    1 Chained Row Ratio 0
    1 Dictionary Cache Hit Ratio 77.5
    1 Execute Parse Ratio 45.32
    1 Get Hit Ratio 75.88
    1 Latch Hit Ratio 100
    1 Library Cache Hit Ratio 99.52
    1 Parse CPU to Elapsed Ratio 24.35
    1 Pin Hit Ratio 95.24
    1 Soft-Parse Ratio 89.73
    i have a doubt with buffer cache hit ratio, can anyone please help me to understand this

    Buffer Cache Hit Ratio .83Quite weird value. It seems your system is doing all physical reads, which seems unrealistic.
    I had a 10.2.0.1 database where i saw this kind of result for cache hit ratio and after patching it to 10.2.0.4, it started showing results correctly.
    Probably it could be some Oracle 10g bug which made this odd display of hit ratio information in data dictionary. Can you try patching your database to latest 10g PSU, or contact Oracle support for a one-off patch for this problem
    Salman

  • Buffer Cache hit ratio low (40.42%)

    Can someone help me with a good guide or advice in order to increase my Buffer Cache hit ratio? If I am not wrong databases should have +85% hit ratio for a good performance.
    thanks

    Here is a script that will bump up your BCHR
    http://www.oracledba.co.uk/tips/choose.htm
    I think you understood from that you shouldn't worry about your bchr but better focus on your real problems i.e. parts of your app that run slowly and people are expecting quicker resposnse.
    Gints Plivna
    http://www.gplivna.eu

  • Buffer Cache Hit ratio 48

    just now I have checked the buffer cache hit ratio is 48% . In my production database . is It any problem.
    Thank You
    Prasad

    Maybe, maybe not.
    You might want to post your question into a more appropriate forum : General Database Discussions
    Nicolas.

  • Manual calculation of 'Buffer Cache hit ratio'

    Using: Oracle 10.2.0.1.0, Redhat 4, 64bit.
    Manual calculation of ‘Buffer Cache hit ratio’ is very off from what it shown in statspack.
    Statspack shows:
    Instance Efficiency Percentages
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                Buffer Nowait %:  100.00       Redo NoWait %:   99.97
                Buffer  Hit   %:   99.18    In-memory Sort %:  100.00
                Library Hit   %:   90.43        Soft Parse %:   52.56
             Execute to Parse %:   80.14         Latch Hit %:   99.98
    Parse CPU to Parse Elapsd %:   96.21     % Non-Parse CPU:   56.89
    Manual calculation (Got this formula from Sybex PT book, page 275):
    SQL> select name, 1-(PHYSICAL_READS/(DB_BLOCK_GETS+CONSISTENT_GETS))
    from  v$buffer_pool_statistics;
    NAME                 1-(PHYSICAL_READS/(DB_BLOCK_GETS+CONSISTENT_GETS))
    DEFAULT                                                      .700247215Any idea, why using v$buffer_pool_statistics gives wrong results?
    Thanks regards,

    SYS@oradocms11> select (P1.value + P2.value - P3.value)/(P1.value + P2.value)*100
    2 from v$sysstat P1, v$sysstat P2, v$sysstat P3
    3 where P1.name = 'db block gets'
    4 and P2.name = 'consistent gets'
    5 and P3.name = 'physical reads';
    (P1.VALUE+P2.VALUE-P3.VALUE)/(P1.VALUE+P2.VALUE)*100
    99.6977839
    SYS@oradocms11> select name, 1 - (PHYSICAL_READS/(DB_BLOCK_GETS+CONSISTENT_GETS)) from v$buffer_pool_statistics
    NAME 1-(PHYSICAL_READS/(DB_BLOCK_GETS+CONSISTENT_GETS))
    DEFAULT .997009542
    In my case, both are giving almost same result.

  • Buffer Cache Hit

    Hello !
    I am relativelly new to DBA so I have some doubts. I have read that the a high Buffer Cache Hit ratio means that the DB does not have to do so many reads on the disk. I am now checking our production db every day (a third part company istalled EBS and now they have left). The Buffer Cache Hit ratio is always (in the time people are working) on 100% or a bit under (99, 98...). It is ok for the buffer cache to be above 90% but it is also really ok for it to be almoust all the time on 100%? We have a 9.2.0.6 on Win2003 DB, the hit ratio % was read from EM, in SQLPlus:
    SQL> select 1-(sum(decode(name,'physical reads',value,0))/
    2 (sum(decode(name,'db block gets',value,0)) +
    3 (sum(decode(name,'consistent gets',value,0))))) "Hit Ratio"
    4 from v$sysstat;
    Hit Ratio
    ,996897321
    Is this ok?
    Thanks for advices.

    I calculate the physical_reads_per_hour and tune to reduce this by increasing the buffer cache, adding indexes and archiving old rows.
    To see the physical reads per hour, use:
    select
    host_name,instance_name,(round((sysdate-i.startup_time)*100))/100 updays,
    SUM(DECODE(Name, 'consistent gets',Value,0)) consistent,
    ROUND(((SUM(DECODE(Name, 'consistent gets', Value, 0))+
    SUM(DECODE(Name, 'db block gets', Value, 0)) -
    SUM(DECODE(Name, 'physical reads', Value, 0)) )/
    (SUM(DECODE(Name, 'consistent gets',Value,0))+
    SUM(DECODE(Name, 'db block gets', Value, 0)))) *100,2)
    BlkHit,
    round(SUM(DECODE(Name, 'physical reads',Value,0))/to_number(sysdate-i.startup_time)/24) Physrds_per_hour,
    SUM(DECODE(Name, 'consistent gets',Value,0))/to_number(sysdate-i.startup_time)/24 Con_per_hour,
    SUM(DECODE(Name, 'db block gets',Value,0)) Dbblock,
    SUM(DECODE(Name, 'db block gets',Value,0))/to_number(sysdate-i.startup_time)/24 Dbblock_per_hour,
    SUM(DECODE(Name, 'physical reads',Value,0)) Physrds
    from V$SYSSTAT,v$instance i
    group by host_name,instance_name,(sysdate-i.startup_time)
    To see what is taking memory, look for large tables in memory and add indexes:
    set pages 30
    set heading on
    COLUMN OBJECT_in_memory FORMAT A40
    COLUMN NUMBER_OF_BLOCKS FORMAT 999,999,999,999
    column meg_in_memory format 9999999999
    SELECT COUNT(*)*8192/1024/1024 meg_in_memory,
    o.object_type,o.OBJECT_NAME Object_in_Memory
    FROM DBA_OBJECTS o, V$BH bh
    WHERE o.DATA_OBJECT_ID = bh.OBJD
    AND o.OWNER != 'SYS'
    and o.object_name like upper('%&object_name%')
    GROUP BY o.OBJECT_NAME,o.object_type
    having count(*)>0
    ORDER BY COUNT(*);
    To see what is taking I/O:
    COLUMN OBJECT_in_memory FORMAT A40
    COLUMN NUMBER_OF_BLOCKS FORMAT 999,999,999,999
    column buffers_read_into_memory format 9999999999
    set termout off
    drop table alan9;
    drop table alan10;
    create table alan9 nologging as
    select OBJD,FILE#,BLOCK# from v$bh;
    create table alan10 nologging as
    select OBJD,FILE#,BLOCK# from v$bh
    minus
    select OBJD,FILE#,BLOCK# from alan9;
    set termout on
    SELECT COUNT(*) buffers_read_into_memory,
    o.OBJECT_NAME Object_in_Memory
    FROM DBA_OBJECTS o, alan10 bh
    WHERE o.DATA_OBJECT_ID = bh.OBJD
    AND o.OWNER != 'SYS'
    GROUP BY o.OBJECT_NAME
    having count(*)>0
    ORDER BY COUNT(*);
    set termout off
    drop table alan9;
    drop table alan10;
    set termout on

  • TS1702 After having found my iPad wit the app "Find iPhone" I cannot lock up the iPad. A message "Find my iPad warning" wit an OK tap appears, but after having tappet the OK tab severel times, I still cannot lock up the iPad

    After having found my iPad wit the app "Find iPhone" I cannot lock up the iPad. A message "Find my iPad warning" wit an OK tap appears, but after having tappet the OK tab severel times, I still cannot lock up the iPad

    Apple (and no one else) can not assist (with serial number or iCloud) in finding a lost or stolen iPad.
    Report to police along with serial number. Change all your passwords.
    These links may be helpful.
    How to Track and Report Stolen iPad
    http://www.ipadastic.com/tutorials/how-to-track-and-report-stolen-ipad
    Reporting a lost or stolen Apple product
    http://support.apple.com/kb/ht2526
    iCloud: Locate your device on a map
    http://support.apple.com/kb/PH2698
    Report Stolen iPad Tips and iPad Theft Prevention
    http://www.stolen-property.com/report-stolen-ipad.php
    How to recover a lost or stolen iPad
    http://ipadhelp.com/ipad-help/how-to-recover-a-lost-or-stolen-ipad/
    How to Find a Stolen iPad
    http://www.ehow.com/how_7586429_stolen-ipad.html
    What NOT to do if your iPhone or iPad is lost or stolen
    http://www.tomahaiku.com/what-not-to-do-if-your-iphone-or-ipad-lost-or-stolen/
    Apple Product Lost or Stolen
    http://sites.google.com/site/appleclubfhs/support/advice-and-articles/lost-or-st olen
    Oops! iForgot My New iPad On the Plane; Now What?
    http://online.wsj.com/article/SB10001424052702303459004577362194012634000.html
    If you don't know your lost/stolen iPad's serial number, use the instructions below. The S/N is also on the iPad's box.
    How to Find Your iPad Serial Number
    http://www.ipadastic.com/tutorials/how-to-find-your-ipad-serial-number
    iOS: How to find the serial number, IMEI, MEID, CDN, and ICCID number
    http://support.apple.com/kb/HT4061
     Cheers, Tom

  • TS1702 Whenever i click the link for a great app i found, to go to the app-store, the app store reply is " could not complete your request" this happen for every app link that i persue! Need help

    Whenever i click the link for a great app i found, to go to the app-store, the app store reply is " could not complete your request" this happen for every app link that i persue! Need help

    Try signing out of your account and then sign back in and see if that helps.
    Settings>Store>Apple ID. Tap your ID and sign out. Restart the iPad by holding down on the sleep button until the red slider appears and then slide to shut off. To power up hold the sleep button until the Apple logo appears and let go of the button.
    Go back to Settings>Store>Sign in and then try again.

  • Hi there, I bought a second hand Imac, there is still the previous user. How to configure it right?

    I guess I did anything wrong, whatever one can do if you are new to Mac's. I have no idea how to setup the Mac properly. I tried but still remains the former user.

    You need the install discs that originally came with the iMac to reformat the drive.
    You can get replacement System Install & Restore CD/DVDs from Apple's Customer Support - in the US, (800) 767-2775 - for a nominal S&H fee. You'll need to have the model and/or serial number of your Mac available.

  • Database buffer cache hit ratio is less that 90%

    Hi All,
    For the following query i get result less than 90%
    SELECT ROUND(((1 -(phy.VALUE /(cur.VALUE con.VALUE)))*100),2) "HIT RATIO"+
    FROM SYS.v_$sysstat cur,
    SYS.v_$sysstat con,
    SYS.v_$sysstat phy
    WHERE cur.NAME = 'db block gets'
    AND con.NAME = 'consistent gets'
    AND phy.NAME = 'physical reads' ;
    HIT RATIO
    +81.79+
    Please advice me what may be the reasons and how can i make it more than 90%.
    I have metalink access. Can i raise this issue with Oracle metalink?
    Thanks and regards,
    Arun Kumar

    user8853422 wrote:
    Thnaks for the reply..
    I have noticed for the another database it is 23.29.
    But i did not get any complaints from application side yet.
    It's laudable that you want to be proactive and fix the database before people complain, but I'll second what the others said, targetting a specific hit ratio is useless for that.
    Who told you to run that hit ratio script? There are a number of reasonable methodologies to determine if there might be problems, but that isn't one of them. Waiting for users to complain may or may not work, some users simply accept poor performance, thinking that's just the way it is.
    What are you really trying to accomplish?

  • My iPhone 4 won't sync because the "required disk cannot be found" and also because the "apps installed on my iPhone cannot be determined" Has anyone else had this problem? How can I fix it?

    Is there anything I can do to fix these error messages?

    Ok, i have restarted my dad's iphone and the same error keeps coming up, i still can't complete a full sync, as mentioned above, because of the error

  • Cache hit ratio - index sql statement

    I am reading the note 33833.1 on Metalink web site. I have diffult to understand the part in the last page of the note. In the last page author talk of a situation where the cache hit ratio is near 100% but the system is not good because. the author talk of a bad sql statement using a non selective index.
    Anyone can explain me this situation ?
    thanks for all

    Because it can be spoofed easily, cache hit ration should never be used as an indicator of system performance. I could not find the article you refered to I can explain it this way:
    Repeatedly hitting the same large amount of datablocks to return a small amount of data will show an artificially high buffer cache hit ratio because the same block get hit over and over, even though most of the data in them is irrelavent.
    Another example would be using subquries instead of joins or joins on inline views.
    All that being said, a low buffer cache hit ratio over an extended period of time is an indicator that the cache is too small, however a high buffer cache hit ration does not mean that is the right size.
    (it's Monday, I hope this makes sense.)

Maybe you are looking for

  • Error in Standard SAP movement type 309?

    Path: SPRO > Logistic execution > Warehouse Management > Interfaces > Inventory Management > Define Movement type > Assign WM Movement Type References to IM Movement Types IM Movement type 309 has as Reference Movement types WM 301, 302 and 309. IM M

  • CREATE DATABASE with data file and log file in query pane

    Hi everyone,  After I ran the below code I got the following error message. Can someone help me fix this? Thanks CREATE DATABASE project ON (Name= 'project_dat', FILENAME ='C:\project.mdf', SIZE = 10, MAXSIZE = 100, FILEGROWTH = 5) LOG ON (NAME = pro

  • Itunes won't open with converter

    I installed a converting program called WinAVI and ever since then I cannot open Itunes or Quicktime. I uninstalled and reinstalled both quicktime and itunes several times and ran many virus scans with norton and lavasoft. I also uninstalled the WinA

  • Deleting original email

    I was wondering what will happen if I delete the email account I used to set up my email on my Blackberry Curve? I no longer use that account, but am still getting emails and would like to disable it on my phone. Since I used that email account to or

  • LineSeries form property missing in 2.01

    I just "upgraded" flex builder to 2.01 from 2.0. It looks like the LineSeries class no longer contains the 'form' property. Has it been renamed?