Refcursor + pooling + caching ?

Hi,
it's correctly make 1 mixture to get performance: refcursor+pooling+caching ?
con.ConnectionString = ".......Pooling=true;Statement cache size=1";
OracleCommand cmd =con.CreateCommand()
cmd.AddToStatementCache = true;
cmd.CommandType = CommadType.StoreProcedure;
cmd.CommandText = "curpkg.getPhones";
OracleParmter p_Phone=cmd.Paramters.Add("Phones",OracleDType.RefCursor")
1000 thanks

Hi,
I'm really not sure what your question is here.
In general, yes, pooling is good, statement caching is good.
With respect to what I think your specific question is, as I understand it when using ref cursors a soft parse will always occur, so statement caching probably wont help much in that specific case.
Corrections/comments welcome.
Greg

Similar Messages

  • Buffer pool Cache is two low .

    Dear Experts ,
    All of the sudden the producation database buffer pool cacheing had fallen down to 35 %
    select
    100*(1 - (v3.value / (v1.value + v2.value))) "Cache Hit Ratio [%]"
    from
    v$sysstat v1, v$sysstat v2, v$sysstat v3
    where
    v1.name = 'db block gets' and
    v2.name = 'consistent gets' and
    v3.name = 'physical reads';
    When i run this script i am getting '93.9% hit
    but
    select name,100 - round ((physical_reads/(db_block_gets+consistent_gets))*1
    "hit ratio" from v$buffer_pool_statistics;
    NAME hit ratio
    DEFAULT 34.87
    my hit ratio is also about 93% but sudden my database perforamce gone very low .
    please advise your valuable suggestion .

    > {quote:title=user640913 wrote:}{quote}
    > Thanks for the Response .
    > My DB version 10.2.0.4  on AIX 5.3
    >
    > there are some lending users . that cause this please help me how to find the stmt that making a troble and to solve it .
    > i am copyiing  the AWR REPORT with this mail .
    >
    > AWR REPORT LOAD PROFILE .
    >
    >                        Per Second                      PerTransaction I
    > Redo size:             89,912.03                            13,411.58
    > Logical reads:           55,554.6                             8,285.20
    > Block changes:        553.50                                 82.56
    > Physical reads:        15,842.52                              2,318.37
    > Physical writes:        20.93                                      3.12
    > User calls:              269.32                                      40.17
    > Parses:                 138.35                                      20.64
    > Hard parses:          4.13                                         0.62
    > Logons:                0.81                                          0.09
    > Executes:             356.3                                       53.23
    > ransactions:          6.70                                        0
    > [eBlocks changed per Read: 1.00 Recursive Call %: 70.83
    > Rollback per transaction %: 3.84 Rows per Sort: 103.67
    >
    Since you're licensed to run the AWR why are you bothering with something as silly as that SQL for the "buffer cache hit ratio" !
    You need to compare a "pre-problem" AWR with the current AWR reports to see if you can spot the changes that might be the significant ones, but based purely on the Load Profile that you have shown, you're not really doing much work, but you're doing it the hard way. The figures that stand out are:
    {code}
    Logical reads:           55,554.6                             8,285.20
    Physical reads:        15,842.52                              2,318.37
    {code}
    You can check the instance statistics to learn more about what type of read activity is generating these physical reads, and work out whether (a) it's sensible and (b) it's supportable on your number of disc. Having said that - take a look at the "SQL ordered by Reads" section of the report to see which SQL statements are responsible for most of the reads, get the historic plans from the AWR and then work out why the plan changed and how to produce a better plan.
    See my note below that explains why my quote of your results is tidier than your original.
    Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    http://www.jlcomp.demon.co.uk
    To post code, statspack/AWR report, execution plans or trace files, start and end the section with the tag {noformat}{code}{noformat} (lowercase, curly brackets, no spaces) so that the text appears in {code}fixed format{code}.
    There is a +"Preview"+ tab at the top of the text entry panel. Use this to check what your message will look like before you post the message. If it looks a complete mess you're unlikely to get a response. (Click on the +"Plain text"+ tab if you want to edit the text to tidy it up.)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Number of connections in JSP with pool cache connection

    I'm using a Bean from examples, its name: "ods", this is Pool Connection Cache, when a user start connection, this open 10 connections. In my project works 20 users, the DBA prefers don't use too many connections. The version of DB is 8.1.7 and web server 9iAS.
    How do I do?
    Can I use other number of connections by session?
    What is the most rapid connection for work?
    The instruction used is:
    <jsp:useBean id="ods" class="oracle.jdbc.pool.OracleConnectionCacheImpl" scope="session" />
    Thanks
    MIGUEL ANGEL CARO
    [email protected]

    Hi,
    Please repost your question in the J2EE forum. This forum is for Web Cache issues only. Sorry about the confusion.
    We'll be changing the title of this forum soon to avoid mispostings.

  • Number of connections with JSP pool cache

    I'm using a Bean from examples, its name: "ods", this is Pool Connection Cache, when a user start connection, this open 10 connections. In my project works 20 users, the DBA prefers don't use too many connections. The version of DB is 8.1.7 and web server 9iAS.
    How do I do?
    Can I use other number of connections by session?
    What is the most rapid connection for work?
    The instruction used is:
    <jsp:useBean id="ods" class="oracle.jdbc.pool.OracleConnectionCacheImpl" scope="session" />
    Thanks
    MIGUEL ANGEL CARO
    [email protected]

    Hi,
    Please repost your question in the J2EE forum. This forum is for Web Cache issues only. Sorry about the confusion.
    We'll be changing the title of this forum soon to avoid mispostings.

  • Pool cache exhausted ORA-12519 JDBC Driver configured. Quid for database ?

    Hello,
    I'm developping a java application (1.5) with threads (500). I'm using ojdbc14.jar to connect to my database (Oracle 10.2).
    I'm using a pool (oracle.jdbc.pool.OracleConnectionCacheManager).
    InitialLimit is 30.
    MaxLimit is 100 for tests but production value isn't defined yet.
    After 33 concurrents connections, my pool is exhausted.
    OracleDataSource.getConnection() throws an SqlException with error code : ORA-12519: TNS:no appropriate service handler found.
    So, I would like to configure database to allow more than 33 actives connections.
    I searched inside listener.ora but found nothing. I'm loosing mysel inside data dictionnary and don't find nothing on www.oracle.com, forums.oracle.com or even google.
    How can I configure properly database whether it is possible ?
    Else what can I do to improve number of maximum connections.
    I guess JDBC driver is limited by database configuration.
    Thanks a lot.

    I am also facing a similar problem, can any one let me know how this can be addressed?
    TIA,
    -Sethu

  • Oracle 10gReport POOL Size/Cache

    Could anybody tell me how to increase the Report server pool/cache size.
    I am getting cache error.

    Hi,
    You have not mentioned the Application Server version. Assuming it is 10.1.2.0.2, you can find extensive information about Tuning Oracle Reports in the Oracle Application Server Reports Services Publishing Reports to the Web
    10g Release 2 (10.1.2) ( B14048-01 ) - Chapter 20 :-
    http://download-west.oracle.com/docs/cd/B14099_18/bi.1012/b14048/pbr_tune.htm#i1006609
    Regards,
    Sandeep

  • Keeping a connection cache alive between program executions (pool)?

    Hey all,
    I am using the Oracle Connection Cache to maintain a connection pool. I have a java application that simply retrieves a document from an Oracle 8.1.7 database during each execution. In order to avoid the overhead of establishing a connection every time this simpe application executes, I'd like to use a connection pool/cache. However, I am not sure how to keep this connection cache "alive" between executions of my program. Basically, I would like to keep a connection cache to the database for an infinite amount of time. Does anyone know how I would do that? This way, my Java application will never have to make a new physical connection to the database in order to retrieve a document. I would really appeciate any help as I have spent a lot of time searching/reading/testing.
    Thanks,
    Marcus

    An application server would be the easiest solution, at least from a high level. Application servers exist to provide services like connection pooling to Java applications-- they're very good at it.
    If we're talking about code that's already been designed and written and whose deployment would be adversely affected by going to an application server, converting the process to a deamon would probably be the easiest approach.
    If you were to go down this road, you'd first have to identify what precisely should trigger the application to run. Perhaps it's a GUI, perhaps it's the creation of a file in a certain directory, etc. Then, you'd need to have a thread that monitored that (or registered as a listner for the appropriate event if we're talking about a GUI) and "woke up" the application.
    Justin
    Distributed Database Consulting, Inc.
    www.ddbcinc.com

  • Question of Berkeley DB "cache size"

    quote:
    Set the size of the shared memory buffer pool, that is, the size of the cache.
    The cache should be the size of the normal working data set of the application, with some small amount of additional memory for unusual situations. (Note: the working set is not the same as the number of pages accessed simultaneously, and is usually much larger.)
    The default cache size is 256KB, and may not be specified as less than 20KB. Any cache size less than 500MB is automatically increased by 25% to account for buffer pool overhead; cache sizes larger than 500MB are used as specified. The current maximum size of a single cache is 4GB. (All sizes are in powers-of-two, that is, 256KB is 2^18 not 256,000.)
    The database environment's cache size may also be set using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "set_cachesize", one or more whitespace characters, and the cache size specified in three parts: the gigabytes of cache, the additional bytes of cache, and the number of caches, also separated by whitespace characters. For example, "set_cachesize 2 524288000 3" would create a 2.5GB logical cache, split between three physical caches. Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.
    This method configures a database environment, including all threads of control accessing the database environment, not only the operations performed using a specified Environment handle.
    This method may not be called after the environment has been opened. If joining an existing database environment, any information specified to this method will be ignored.
    This method may be called at any time during the life of the application.
    Parameters:
    cacheSize The size of the shared memory buffer pool, that is, the size of the cache.
    The question:
    When I have a host, the memory total is 16G.
    I don't know what mean of this document.
    How many max cache size can be set ?
    4G? 16G?
    or cacheCount (4)* 4G = 16G?
    My Email: [email protected]

    What version of Berkeley DB are you using?
    I'm a little confused about what you are quoting. Most of your quote seems to be from DB_ENV->set_cachesize(), but set_cachesize does not have a parameter named cacheSize. The parameters for set_cachesize are gbytes, bytes and ncache.
    You use set_cachesize to specify the logical cache that you can optionally split into more than one physical region. The maximum size of the logical cache is 4GB and there is only one logical cache. You specify the total size of the logical cache with the gbytes and bytes parameters. If you set ncache to a value greater than 1, you split this logical cache into separate physical regions. So, for example, if you specify (gbytes=2, bytes=0, ncache=1) you will have a logical cache of 2GB that internally is split into 2 separate physical regions of 1GB each.
    You can read more about the memory pool cache in the Reference Guide sections "Selecting a cache size" and "Configuring the memory pool".
    If you have other Berkeley DB questions that are not specific to replication, you should direct them to the general Berkeley DB forum where you will have the benefit of a wider set of Berkeley DB experts:
    Berkeley DB
    Paula Bingham
    Oracle

  • Caching Session Beans

    Is there any way to cache Stateless-session beans? We have the following
    set up in the descriptor file:
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>statelessSession</ejb-name>
    <stateless-session-descriptor>
    <pool>
    <max-beans-in-free-pool>3000</max-beans-in-free-pool>
    <initial-beans-in-free-pool>3000</initial-beans-in-free-p
    ool>
    </pool>
    </stateless-session-descriptor>
    <jndi-name>ejb20-statelessBean</jndi-name>
    </weblogic-enterprise-bean>
    for some reason, the bean is loaded as specified, but is being called from
    disk for each process, not from the pool/cache.
    Any help would be appreciated.
    Thanks

    I'm not sure that I understand your question.
    For stateless session beans, we keep a pool of instances. When you make a
    method call, we grab an instance from the pool. When the method call
    finishes, we return it to the pool.
    There's probably no reason to set this value to 3000. Unless you recursively
    call your own instance, you'll never use more slsb instances than you have
    execute threads in the server. The default max-beans-in-free-pool value
    gives you the maximum parallelism.
    -- Rob
    [email protected] wrote:
    Is there any way to cache Stateless-session beans? We have the following
    set up in the descriptor file:
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>statelessSession</ejb-name>
    <stateless-session-descriptor>
    <pool>
    <max-beans-in-free-pool>3000</max-beans-in-free-pool>
    <initial-beans-in-free-pool>3000</initial-beans-in-free-p
    ool>
    </pool>
    </stateless-session-descriptor>
    <jndi-name>ejb20-statelessBean</jndi-name>
    </weblogic-enterprise-bean>
    for some reason, the bean is loaded as specified, but is being called from
    disk for each process, not from the pool/cache.
    Any help would be appreciated.
    Thanks

  • Problem w/ DataSource Pooling

    We are having difficulty getting 9iAS DataSource Pooling to work. We are using 9iAS 9.0.3 (without Infrastructure) and, as per the J2EE Services Guide, have :
    1) Added...
    Context ic = new InitialContext();
    DataSource ds (DataSource) ic.lookup("jdbc/OracleDS")
    Connection con = ds.getConnection();
    ...to our code.
    2) Modified the default DataSource's url, username, password, min-connections & max-connections from within Enterprise Manager (leaving ejb-location as is at "jdbc/OracleDS") and restarted the Instance.
    The app generates an exception when trying to locate the OracleDS, however.
    We have also tried replacing the "com.evermind.sql.DriverManagerDataSource" class with "oracle.jdbc.pool.OracleConnectionCacheImpl" as per another post's recommendation.
    It appears that others have had similar problems (prior to 903?), but some have, in fact, (now) got this working successfully -- what are we missing please......?
    Thanks.

    we are coming up with a much clearer and simpler to use data-sources story, which, for now, is the following:
    1) if your component does not requires JTA services then you must use JDBC vendor specific data source such as oracle.jdbc.pool.OracleConnectioncacheImp -- only "location" JNDI context needs to be specified in data-sources.xml (and you must lookup the data source specified at this location -- you get JDBC (vendor's specific, in this case Oracle) pooling/caching
    2) if your component requires JTA services but does not require 2PC, then you must use OC4J emulated data sources DriverManagerDataSource -- "location", "ejb-location" and "xa-location" JNDI contexts must be specified in data-sources.xml but we strongly recommend to only lookup the data source specified at ejb-location -- you get OC4J connection pooling
    3) your component requires JTA AND 2PC services, you must use OC4J's non-emulated data sources OrionCMTDataSource -- only "location" JNDI context needs to be specified in data-sources.xml (and you must lookup the data source specified at this location -- you get Oracle JDBC pooling/caching -- look the doc for additional configuration (dblink, commit-coordinator, etc)
    Anything else will lead to unwanted behavior
    Kuassi

  • Caching CMP Entity Beans with 9.0.2

    Hi,
    my CMP Entity Bean is accessed from a JSP-Page through a Stateless Session Bean. The Session-Bean executes findAll() on the Entity-Bean and the JSP-Page iterates over the Collection and displays the Fields through their getter-Methods. It turns out that every getXXX Methods results in a complete load of the Bean from the Database, so for 3 database-records with 4 attributes i get 12 SELECT - statements and 12 Activate/Load/Passivate cycles of the Entity Bean!!!!
    I tried to setup the attributes in orion-ejb-jar.xml correctly, but that didn't show a difference:
    -) exclusive-write-access="true" does only work in "read-only" mode (see oc4j_ejb_guide_r2.pdf)
    -) setting timeouts didnt work
    My Entity Bean settings are:
    exclusive-write-access="true"
    instance-cache-timeout="60"
    max-instances="100"
    max-tx-retries="0"
    pool-cache-timeout="100"
    The EJB-Callbacks are:
    first the Session-Bean is created, and findAll() is executed - then all Entity-Beans are passivated again:
    TestManBean Constructor called 1
    TestManBean.setSessionContext() 1
    TestManBean.ejbCreate() 1
    PersonBean Constructor called 1
    PersonBean.setEntityContext() 1
    PersonBean.ejbActivate() 1
    PersonBean.ejbLoad() 1
    PersonBean Constructor called 2
    PersonBean.setEntityContext() 2
    PersonBean.ejbActivate() 2
    PersonBean.ejbLoad() 2
    PersonBean Constructor called 3
    PersonBean.setEntityContext() 3
    PersonBean.ejbActivate() 3
    PersonBean.ejbLoad() 3
    PersonBean.ejbPassivate() 1
    PersonBean.ejbPassivate() 2
    PersonBean.ejbPassivate() 3
    now for every getXXX-Methods the following occurs:
    PersonBean.ejbActivate() 3
    PersonBean.ejbLoad() 3
    PersonBean.ejbPassivate() 3
    I user OC4J 9.0.2 Production with Oracle 8.1.6.
    How can I turn on Entity-Bean Caching?
    Thanks,
    Gilbert

    Hi Gilbert,
    Someone recently asked a similar question to yours. Perhaps that thread will
    be helpful to you?
    Author: Valeri Kireitchik
    Subject: how to set exclusive-write-access="true"
    Date: May 17, 2002 10:18 PT
    URL:
    Re: Get the Table name by providing the Sequence name
    The same person (Valeri) also asked his question on two other forums:
    http://www.elephantwalker.com/rfa?id=549
    http://www.mail-archive.com/orion-interest%40orionserver.com/msg19037.html
    Good Luck,
    Avi.

  • Script to find out table and index candidates to keep in the buffer pool

    I am looking for a script to find out tables and indexes to keep in the buffer pool.
    Could you help me on this ?
    thanks...
    Markus

    this is more of a open question. As you know ur data well. We do not know whats ur data. cachin tables in buffer pool is okay, but it might age out after not being used...instead you can use the KEEP POOL...to cache small tables/popular tables into the keep pool...as keep pool guarantees full caching .....
    here are some links on keep pool cacheing
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/memory.htm#sthref410
    http://www.dba-oracle.com/oracle_tips_cache_small_fts.htm
    http://www.dba-oracle.com/t_script_automate_keep_pool_tables_indexes.htm
    http://www.dba-oracle.com/oracle_news/news_caching_keep_pool_large_objects_clob_blob.htm
    Edited by: user630084 on Apr 8, 2009 5:48 AM

  • OC4J Connection Pool internals?

    Hi Folks,
    Regarding the connection pool available with a DataSource I would like to know if the pool caches:
    * Statements
    * Preparted Statements
    * ResultSets
    Is there any technial withepaper/guide available?
    Thx
    Toby

    Hi Folks,
    Regarding the connection pool available with a DataSource I would like to know if the pool caches:
    * Statements
    * Preparted Statements
    * ResultSets
    Is there any technial withepaper/guide available?
    Thx
    Toby

  • 关于cache buffers chains的问题

    question from oracler:
    由于没有代码,所以sql语句没法改。
    1、4_28_awr.html是最初的状态cache buffers chains 征用严重,后来我把热点的2个索引INFO_KEYWORD、PKKEY_ARTICLE单独挪到了16k和4k的非标准表空间,这样多增加了几个池子希望可以降低征用。
    2、4_28_2awr.html虽然cache buffers chains 还是比较多,但是waitstime比较低,没有影响前台使用。
    3、428_3_awr.html 是刚才cpu的使用率又上去了,做的awr报告,发现cache buffers chains仍然较多,waitstime明显上去了。
    请教:因为没办法修改sql语句的程序代码,只能从数据库层面入手。尽量降低热点块。是不是可以尝试将2个索引表空间的pctfree再增加到30%或者更高。或者2个索引采用4k的非标准块,这样分布在每个块中的行会比较少一点。我觉得我设置的16k块大小可能有点问题,盼赐教。
    http://t.askmaclean.com/viewthread.php?tid=866&extra=page%3D1%26amp%3Bfilter%3Ddigest

    就症结来看 是SQL语句存在优化空间,大多都Buffer Gets过高 这意味着大量的逻辑读
    Logical reads: 952,053.46 511,723.68
    在其中一个AWR中 每秒逻辑读 达到 7G
    buffer gets 较高 存在优化的SQL包括:
    SQL ordered by Gets
    Resources reported for PL/SQL code includes the resources used by all SQL statements called by the code.
    Total Buffer Gets: 1,733,719,818
    Captured SQL account for 42.9% of Total
    Buffer Gets Executions Gets per Exec %Total CPU Time (s) Elapsed Time (s) SQL Id SQL Module SQL Text
    150,857,840 6 25,142,973.33 8.70 1296.33 1769.90 gmm6ktqrft6n1 select rowid, title, filep...
    57,452,737 234 245,524.52 3.31 676.45 678.49 06r32459s5kzc select rowid, ArticleID, S...
    50,264,264 2 25,132,132.00 2.90 311.70 329.90 731rq4a5rd9by select rowid, title, filep...
    28,441,522 2 14,220,761.00 1.64 310.11 570.12 bxa7c0y5p6smg select rowid, title, filep...
    28,440,949 2 14,220,474.50 1.64 279.11 464.68 68pwkvkgs7taj select rowid, title, filep...
    28,433,242 2 14,216,621.00 1.64 234.45 391.91 f442cdh9hp6sk select rowid, title, filep...
    粗略看 可能是因为 希望执行计划准确 而没有去绑定变量
    这里考虑到 无法修改SQL 语句, 但是 有没有想过 通过其他手段(不修改语句 添加hint)而 改善其执行计划?
    Segments by Logical Reads
    Total Logical Reads: 1,733,719,818
    Captured Segments account for 98.8% of Total
    Owner Tablespace Name Object Name Subobject Name Obj. Type Logical Reads %Total
    JSCMS JSCMS INFO_KEYWORD INDEX 1,159,873,824 66.90
    JSCMS JSCMS PKKEY_ARTICLE INDEX 215,263,104 12.42
    JSCMS JSCMS ARTICLE SYS_P76 TABLE PARTITION 198,657,088 11.46
    逻辑较高的 segment 包括 INFO_KEYWORD 和 PKKEY_ARTICLE 把他们 移动到 block size的 非标准表空间上确实可以一定程度缓解 对这个segment 上buffer的交叉访问争用 , 但是 使用 16KB的block size意味着 数据行的分布更为集中 , 这可能导致段内buffer的争用加剧 。
    建议:
    1. 考虑在 不修改SQL文本 的情况下 调优SQL ,包括使用SQL Profile等技术
    2. 考试使用 global hash index ,当然hash index不是一定能缓解cbc
    3. 内存允许的话 可以吧 一个索引 keep到 db cache keep pool中(而非16k pool),另一个使用 4k pool
    一些Cache buffer chains相关的master Notes:
    ODM FINDING:
    Cache Buffers Chains Latch waits are caused by contention where multiple sessions waiting to read the same block.
    Typical solutions are:-
    o Look for SQL that accesses the blocks in question and determine if the repeated reads are necessary.
    o Check for suboptimal SQL (this is the most common cause of the events) - look at the execution plan for the
    SQL being run and try to reduce the gets per executions which will minimise the number of blocks being accessed
    and therefore reduce the chances of multiple sessions contending for the same block
    Note 34405.1 WAITEVENT: "buffer busy waits" Reference Note
    @Note 42152.1 LATCH: CACHE BUFFERS CHAINS
    Note 155971.1 Ext/Pub Resolving Intense and "Random" Buffer Busy Wait Performance Problems:
    Note 163424.1 Ext/Pub How To Identify a Hot Block Within The Database Buffer Cache.:
    These queries would benefit from tuning. They either do too much buffer gets (logical reads) per execution or just do a lot of buffer gets. Tuning these queries would lower the load on the CPU and reduce the CPU wait time. Check if all objects in these queries have representative and up to date stats present. Also check if all the indexes are present.
    If a query does not do an excessive amount of gets for 1 run but when the query runs often, then lowering the amount of buffer gets per run with for example 10% will have a big impact overall.
    To see the full SQL open the html AWR report and select SQL Statistics in the Main Report section, then select SQL ordered by Gets clicking on the SQL id then gives the complete statement.
    "Cache Buffers Chains Latch waits are caused by contention where multiple sessions waiting to read the same block.
    那么与
    read by others session 这个等待事件有什么区别?"
    通俗的说 (不深究技术细节)
    CBC latch 是 大家都要逻辑读取同一个块,对于Consistent Read会使用kcbgtcr函数, kcbgtcr 函数可能使用2中模式去get cache buffer chains, 分别是 kcbgtcr: kslbegin excl 和 kcbgtcr: kslbegin shared, 在上述AWR中 主要是 kslbegin excl
    “我们一般认为Latch结构是Mostly exclusive access的,也就是极少会有共享访问闩的机会。但Oracle一般对外宣称读取数据时服务进程是以共享模式使用cache buffers chains闩,这就造成了许多人误以为读读是不会出现latch: cache buffers chains争用的。
    但是实际上查询语句大部分情况下仍需要以exclusive模式持有该类子闩(有时会以SHARED模式持有,这取决于读取时是使用kcbgtcr: kslbegin shared还是kcbgtcr: kslbegin excl;kcbgtcr是Oracle rdbms中重要的获取一致性读的函数,其含义为Kernal Cache Buffer GeT Cosistents Read,显然该函数存在两种获取cache buffers chains的方式即kslbegin shared和excl。与之相对应的是kcbgcur: kslbegin,kcbgcur的含义为Kernel Cache Buffer Get Current,该函数用以获取当前块以便修改,也就是”写”;很显然kcbgcur: kslbegin函数只有以excl排他方式持有child cache buffers chains latch的必要),原因在于虽然是查询语句但同样需要修改buffer header结构,譬如修改tch抢手度、holder list的hash变量us_nxt、us_prv以及waiter list的hash变量wa_prv、wa_nxt等。换而言之读读是会引起Latch free:cache buffers chains等待的,而非许多人认为的仅有读写、写写会导致缓存链闩争用。”
    FROM http://www.oracledatabase12g.com/archives/oracle%E9%97%A9latch-cache-buffers-chains.html
    cache buffers chains kcbgtcr: kslbegin excl 0 28,633,140 27,628,172
    cache buffers chains kcbrls: kslbegin 0 27,162,431 28,455,820
    cache buffers chains kcbgtcr: fast path 0 1,969 2,664
    read by others session 是这个block不在缓存(buffer cache)中,大家都想要访问这个block,但是只需要一个人去做物理读取到Buffer cache, 其他人在 有一个人去做physical read 的情况下非空闲(non-idle wait)等待即可。

  • CACHE Oracle Tables

    Hello Gurus,
    We are building a new application and identified that few tables will be accesses very frequently. To decrease I/O we are planning to CACHE these tables. I am not sure if we made right decision. My question what are the things you need to consider before caching Oracle tables.
    Any help greatly appreciated. Thanks.
    select * from V$VERSIONBANNER                                                                          
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production    
    PL/SQL Release 11.2.0.3.0 - Production                                          
    CORE     11.2.0.3.0     Production                                                        
    TNS for IBM/AIX RISC System/6000: Version 11.2.0.3.0 - Production               
    NLSRTL Version 11.2.0.3.0 - Production    

    OK, so you want to use multiple buffer pools and to put these tables into the keep pool?
    Why do you believe that this will improve performance? Oracle's default algorithm for aging out blocks that are seldomly used is pretty good for the vast majority of applications. Why do you believe that you can identify what blocks will most benefit from caching better than Oracle? Why do you believe that you wouldn't be better off giving whatever KEEP pool cache size you would allocate to the DEFAULT pool and letting Oracle's cache algorithm cache whatever it determines is appropriate? It is possible that there is something that you know about your application that allows you to make this sort of determination. But in the vast majority of cases I've seen, people that have tried to do so end up hurting performance at least a little because they're forcing Oracle at the margin to age out blocks that it would benefit from caching and to cache blocks that it would benefit from aging out.
    Do you understand the maintenance impact of using multiple buffer caches? If you are using a vaguely recent version of Oracle and using any of the automatic memory management features, Oracle does not automatically manage the non-default buffer caches. That increases the probability that using non-default buffer caches is going to create performance problems since humans are much less efficient at recognizing and reacting to changing memory utilization and substantially increases the amount of monitoring and work that the DBAs need to do on the system (which, in turn, increases the risk that they make a mistake).
    Justin

Maybe you are looking for

  • Database adapter - table related by foreign key - not picking

    Hi All, we have a Invoke which picks data from database by using the query feature(not polling) of db adapter. we are picking data from multiple tables. there is foreign key relation between tables,which we have defined at the db adapter. Parent - >

  • Issue connecting ios 7 devices to WPA2 wifi networks

    I am using Cisco Wireless in our corporate environment.  We are using Enterprise WPA2 security which requires the user to accept the certificate.  I am no longer able to connect to these networks after installing ios 7 except for a newtork that I alr

  • Unable to import masters from a memory card

    Hi, As always I wanted to add a new project with incrementally new RAW files from my SD memory card. I have the photo management system the image master files (RAWS) are stored in Pictures folder on the HDD. The import dialogue enables to select a de

  • Adobe Muse - Problème mon site a disparu !!

    Bonjour Je rencontre un ENORME problème !! Après la dernière mise à jour d'Adobe Muse, j'ai voulu me remettre a travailler sur mon site, et là !! SURPRISE !! dans la partie "site récent" j'ai le nom de mon site, et quand je veux l'ouvrir, j'ai une fe

  • When I close my iPad cover accidentally, I loses my connection

    I have a iPad cover. & I hv a passcode everytime I want to use my iPad. since I upgrade to iOS 7 I notice that if I accidentally close my iPad cover I loses my connection & it wants me to enter my passcode again. pls help what shud I do? thanks