Buffer pool parameter vs LRU/MRU

Dear Friends,
I know that in the database buffer cache , the following parameters define the sizes of the caches for buffers :
–     Default : DB_CACHE_SIZE
–     Keep : DB_KEEP_CACHE_SIZE
–     Recycle: DB_RECYCLE_CACHE_SIZE
And also I know LRU and MRU also works in this regards .Now my ques is , when the "keep pool" and " the "buffer pool" is on then LRU and MRU are active ?
Both the above 3 pools and (LRU+MRU) is working together ? I have confusion about that . plz help .. ..

I am getting buffer busy waits on some tables.
Users are not experiencing any problem.Looks like you got bit by the CTD troll while sleeping.
Note also that (if I'm reading the report alright) out of 23 mins you have 6 seconds accounted to buffer busy waits.
Read the sample chapter here.

Similar Messages

  • MULTIPLE BUFFER POOL의 개념 및 사용 방법 (ORACLE8)

    제품 : ORACLE SERVER
    작성날짜 : 1999-05-13
    Multiple Buffer Pool의 개념 및 사용 방법
    1. 필요성
    table이나 index 등 segment는 그 사용 빈도나 중요도 등에 따라 memory에
    buffering되는 것을 달리 할 필요가 있다. Oracle8에서는 buffer cache에 대해서
    multiple buffer pool이라는 새로운 특성의 개념을 제공하여 segment마다 다른
    buffer를 사용할 수 있도록 하고 있다.
    multiple buffer pool은 'keep', 'recycle', 그리고 'default' buffer pool로
    구성되며, 이것을 control하기 위한 internal algorithm은 하나의 buffer pool을
    사용할 때와 대부분 마찬가지다. 즉, 기존의 CACHE option이나 full table scan 시
    LRU end에 위치시키는 것 등은 모두 변함이 없으며, 단지 그러한 기법들이 각
    buffer마다 별도로 적용된다는 것 뿐이다.
    2. buffer의 종류
    multiple buffer pool의 주요 목적은 서로 다른 형태로 사용되는 것을 나누어 놓
    아 서로 방해가 되지 않도록 하는 것으로 정리할 수 있으며, 각각 다음과 같은
    경우에 사용하도록 한다.
    (1) KEEP buffer pool : 가능한 한 memory에 오랫동안 유지되어져야 하는
    segment를 위해 사용되어져야 한다. 자주 사용되어지고 cache size의 약 10%
    전후의 크기를 가진 segment가 이 pool을 사용하기에 적당하다.
    그러나, 여기에서도 Oracle7.3의 CACHE option과 마찬가지로 새로이 access
    되는 segment에 의해 LRU end 쪽으로 이동하는 것이 가능하므로 항상 cache
    된다고 보장할 수는 없다.
    적당한 크기로 지정하는 것이 중요한데 당연히, 동시에 memory에 올려지기를
    바라는 object들의 크기의 합보다는 커야 한다.
    (2) RECYCLE buffer pool : 자주 사용되어지지 않거나, buffer pool의 두배보다
    큰 정도의 큰 segment가 index search를 하는 작업 등에 사용되어지도록 한다.
    (3) DEFAULT buffer pool : 위의 두 buffer pool에 할당되지 않은 나머지는
    default buffer pool이 된다. 그러므로 KEEP이나 RECYCLE buffer pool은
    없어도 반드시 default buffer pool은 존재하게 된다.
    이 buffer pool은 Oracle7의 하나의 buffer pool과 같다.
    3. buffer pool을 설정하는 방법
    이러한 종류의 buffer pool을 지정하기 위해서 BUFFER_POOL_KEEP과
    BUFFER_POOL_RECYCLE이라는 parameter가 존재하며, DB_BLOCK_BUFFERS
    와 DB_BLOCK_LRU_LATCHES parameter도 함께 고려하여야 한다.
    syntax는 다음과 같다.
    BUFFER_POOL_KEEP=(buffers:<value>,lru_latches:<value>) 혹은
    BUFFER_POOL_KEEP=<value>
    BUFFER_POOL_RECYCLE=(buffers:<value>,lru_latches:<value>) 혹은
    BUFFER_POOL_RECYCLE=<value>
    위의 syntax에서 보는 바와 같이 각 pool에 대해서 buffer의 갯수 뿐 아니라
    LRU latch의 갯수도 지정할 수 있다. 만약 지정하지 않으면 그 pool에 대해서
    하나의 latch가 할당되는 것이다.
    DEFAULT pool에 대해서는 명시적으로 block의 갯수나 latch의 갯수를 지정할
    수 없고, 대신 전체 block의 갯수 (DB_BLOCK_BUFFERS)와 전체 LRU latch의
    갯수 (DB_BLOCK_LRU_LATCHES)에서 KEEP과 RECYCLE에 할당된 각각의
    값을 뺀 것만큼 default pool에 할당된다.
    간단한 예제로 설명하면 다음과 같다.
    예를 들어 initSID.ora file에 다음과 같이 parameter가 설정되어 있다고 가정한다.
    DB_BLOCK_BUFFERS=1000
    DB_BLOCK_LRU_LATCHES=6
    BUFFER_POOL_KEEP=(buffers:400,lru_latches:2)
    BUFFER_POOL_RECYCLE=100
    이러한 경우 KEEP pool에 대해서는 400개의 block과 2개의 LRU latch가 할당
    되고 RECYCLE pool에는 100개의 block과 1개의 LRU latch가 할당된다. 그리
    고 DEFAULT pool에는 500 (1000-400-100) 개의 block과 3 (6-2-1)개의 LRU latch
    가 할당되게 된다.
    각 LRU queue에 대해서 block은 균등하게 배분된다.
    즉, 이 예에서 DEFAULT queue는 LRU 1번이 167개의 block을 LRU2도 167개, 그리
    고 LRU3은 166개의 block을 가지게 되며, KEEP queue는 두개의 latch가 각각
    200개씩의 block을 그리고 RECYCLE queue는 100개의 block을 가지게 된다.
    이러한 정보는 v$buffer_pool을 통해 확인이 가능하며,
    이 예의 경우 다음과 같이 조회된다. 여기에서 set_count가 각 pool에 할당된
    latch의 갯수이며, lo_bnum과 hi_bnum이 buffer의 range이다.
    SQL> select * from v$buffer_pool;
    NAME      LO_SETID HI_SETID SET_COUNT BUFFERS LO_BNUM HI_BNUM
         0 0 0 0 0 0
    KEEP 4 5 2 400 0 399
    RECYCLE 6 6 1 100 400 499
    DEFAULT 1 3 3      500 500 999
    각 queue는 최소 50개의 block은 할당받아야 하며, 그렇지 않은 경우에는 오류
    가 발생한다. 즉 예를 들어, BUFFER_POOL_KEEP=(buffers:100, lru_latches:3)과
    같이 설정하면 alert.log file에 "Incorrect parameter specification for
    BUFFER_POOL_KEEP"이라는 오류 메시지가 적히게 되며, 100개의 block에 대해서
    최대 두개의 LRU latch만이 가능하게 된다.
    4. buffer pool을 지정하는 방법
    BUFFER_POOL이라는 Oracle8에서 새로 추가된 storage 절의 parameter를 이용
    하여 segment가 사용할 default pool을 지정할 수 있다. segment의 모든 block은
    지정된 pool을 사용하게 되며, 아래의 예제와 같이 사용하면 된다.
    CREATE TABLE keep_table(t NUMBER(10)) STORAGE (BUFFER_POOL KEEP);
    ALTER TABLE recycle_table storage(BUFFER_POOL RECYCLE);
    BUFFER_POOL은 tablespace나 rollback segment에 대해서는 지정할 수 없으며,
    clustered table에 대해서는 cluster level에서만 지정이 가능하다. partition
    table에 대해서는 각 partition별로 pool을 지정하는 것이 가능하다.
    일단 segments가 적당한 pool에 할당이 되고 난 후에는, logical hit ratio나
    free buffer waits와 같은 다양한 통계 정보가 확인 가능하다.
    이러한 통계 정보를 담고 있는 view는 v$buffer_pool_statistics이며,
    이 view는 $ORACLE_HOME/rdbms/admin/catperf.sql을 수행하면 생성된다.

  • Db_keep_cache_size shows 0 when i keep object in KEEP buffer pool !

    Dear Frineds ,
    I use Oracle 10g . Form the oracle 10g documentaiton, I get the following information regarding ASMM (Automatic Shared Memory Management) :
    The following pools are manually sized components and are not affected by Automatic Shared Memory Management:
    Log buffer
    Other buffer caches (such as KEEP, RECYCLE, and other non-default block size)
    Fixed SGA and other internal allocations
    Now plz see the following examle :
    1) SQL> select sum(bytes)/1024/1024 " SGA size used in MB" from v$sgastat where name!='free memory';
    SGA size used in MB
    247.09124
    2) SQL> show parameter keep_
    NAME TYPE VALUE
    db_keep_cache_size big integer 0 (Here db_keep_cache_size is 0 )
    3) Now I keep the scott's dept table to KEEP cache :
    SQL> select owner,segment_type,segment_name,buffer_pool from dba_segments where buffer_pool != 'DEFAULT';
    no rows selected
    SQL> alter table scott.dept storage(BUFFER_POOL KEEP);
    Table altered.
    SQL> select owner,segment_type,segment_name,buffer_pool from dba_segments where buffer_pool != 'DEFAULT';
    OWNER SEGMENT_TYPE SEGMENT_NAME
    SCOTT TABLE DEPT
    4)
    After doing this , I have to see the following parameter :
    SQL> show parameter keep
    NAME TYPE VALUE
    db_keep_cache_size big integer 0
    SQL> select sum(bytes)/1024/1024 " SGA size used in MB" from v$sgastat where name!='free memory';
    SGA size used in MB
    246.76825
    Here I see that my sga is used but "db_keep_cache_size" still shows the '0' .
    Can u plz explain why this parameter value shows '0' now ?
    Thx in advance ... ...

    Hi,
    I am not sure I have understood the question fully but if you are trying to monitor usage of the buffer pools you should use some of the dynamic views like in the example query below. If this is not what you are interested in let me know.
    SELECT NAME, BLOCK_SIZE, SUM(BUFFERS)
    FROM V$BUFFER_POOL
    GROUP BY NAME, BLOCK_SIZE
    HAVING SUM(BUFFERS) > 0;

  • KIMYONG : Applications Database Connection Pool 관련 parameter 설명

    Purpose
    JVM 이 과도한 CPU / Memory를 사용하게 되어 Application Performance에 영향을 미칠때가 있으며 이럴경우 Connection Pool 관련하여 Parameter Tunning을 해야 할때가 있습니다. 이때 사용되는 Parameter들의 의미를 설명하고자 합니다.
    The Applications Database Connection Pool is a pool of JDBC database connections that are shared among java applications. Applications obtain connections from the pool by using the getJDBCConnection(...) methods of AppsContext.
    Essentially, each AppsContext has a single database connection associated with it at all times.
    The AOL/J layer internally borrows and returns this connection to the pool as needed to maintain connection reference that is properly initialized for the current Java tier AOL security context and NLS state.
    FND_MAX_JDBC_CONNECTIONS
    ============================
    The maximum pool size is the maximum allowed sum of the number of available connections and thenumber of locked connections. If the pool reaches the maximum size and all connections are locked, new clients will not be able to borrow a connection until one of the current clients has returned one. The default setting for this parameter is essentially unlimited (about 2 billion).
    FND_JDBC_BUFFER_MIN
    ======================
    The buffer minimum is the minimum number of connections that the pool should try to maintain in the available list. When the buffer size falls below the buffer minimum, the pool maintenance thread will be notified to create new connections. When notified, the thread will immediately attempt to create the number of connections to fill the difference. New connections will not be created if the pool is already at its maximum size. When creating new connections the thread uses the attributes of the most recent client request that resulted in a new connection being created.
    Setting this parameter to "0" will disable maintenance of the buffer minimum.
    However, the buffer maximum will still be maintained.
    Setting this parameter to a number greater than the maximum pool size(FND_MAX_JDBC_CONNECTIONS) will disable all buffer maintenance.
    FND_JDBC_BUFFER_MAX
    ======================
    The buffer maximum is the maximum number of connections that the pool should try to maintain in the available list. During heavy usage, the buffer may exceed this maximum. However, during periods of low usage, the maintenance thread will decrease the buffer size until the buffer maximum is reached.
    If the value of this parameter is an integer, (for example "20") the buffer maximum is static. If the value is a percent (for example, "20%"), the buffer maximum is not constant but instead is calculated dynamically as a percent of total pool size. The buffer minimum is also taken into account when
    determining a dynamic buffer maximum.
    The exact expression used is:
    maximum(t) = buffer minimum + ( (FND_JDBC_BUFFER_MAX/100) * size(t) )
    where maximum(t) and size(t) are the buffer maximum and pool size at some time t.
    The thread is configured to periodically check the buffer size. If the buffer size is greater than the maximum, the thread will remove either the number of available connections specified by FND_JDBC_BUFFER_DECAY_SIZE or the number of connections in excess of the buffer minimum, whichever is smaller. When connections are removed from the available list, the least recently used ones are removed first.
    Setting this parameter to100%, or to a number equal to FND_MAXIMUM_JDBC_CONNECTIONS, or to a number less than or equal to FND_JDBC_BUFFER_MIN will effectively prevent the maintenance thread from ever removing any connections.
    FND_JDBC_BUFFER_DECAY_INTERVAL
    ===================================
    The buffer decay interval specifies how often the connection pool maintenance thread should check the buffer size. The thread will check the buffer size at most once every FND_JDBC_BUFFER_DECAY_INTERVAL seconds. The actual time between consecutive thread cycles will vary somewhat depending on the JVM load.
    This parameter, along with FND_JDBC_BUFFER_DECAY_SIZE, allows the buffer decay rate to be tuned. For example, if the buffer decay size is 2 and the buffer decay interval is one minute, the buffer decay rate will never exceed two connections per minute. When connections are removed, the least recently used ones are removed first.
    FND_JDBC_BUFFER_DECAY_SIZE
    =============================
    The buffer decay size specifies the maximum number of connections that should be removed during any single thread cycle during which the number of available connections is greater than the buffer size. This parameter, along with FND_JDBC_BUFFER_DECAY_INTERVAL, allows the buffer decay rate to be tuned.
    FND_JDBC_MAX_WAIT_TIME
    =========================
    The maximum wait time specifies how much time a client should spend trying to get a connection. The borrow algorithm, used to borrow an object from the pool, contains check points at which the elapsed time is compared to the maximum wait time. If it exceeds the maximum wait time, then a null object will be returned to the client. The pre-configured value for the maximum wait time is
    10 seconds.
    FND_JDBC_SELECTION_POLICY
    ============================
    The selection policy determines how a connection is selected from the list of available connections for a particular client. The connection pool is pre-configured to use a cost-based selection algorithm, which selects the connection that will require the smallest amount of initialization to match the
    client's context.
    FND_JDBC_USABLE_CHECK
    ===========================
    The FND_JDBC_USABLE_CHECK parameter governs whether a pl/sql query is performed before giving a connection to a client. The pool checks whether a connection is usable before handing it to a client. This always involves checking that the connection is not null and is not closed. If FND_JDBC_USABLE_CHECK is set to true, then it also verifies that the connection can be used to perform a simple PL/SQL query. (This parameter may have to be set to "true" in order to clean up
    connections to a database that has been restarted.)
    FND_JDBC_CONTEXT_CHECK
    ==========================
    The FND_JDBC_CONTEXT_CHECK parameter governs whether the AOL security context and NLS state is obtained from the database when the connection is returned to the pool. If FND_JDBC_CONTEXT_CHECK is "true", when the connection is returned to the pool, the AOL security context and NLS state will be obtained from the database. (This is implemented in the DBConnObj.isReusable() method). This check must be done when the connection is returned (rather than when it is borrowed) so that the selection matching algorithm has access to the actual
    session context of the connections in the available list.
    FND_JDBC_PLSQL_RESET
    ========================
    The PL/SQL reset flag, set using the variable FND_JDBC_PLSQL_RESET, governs whether the PL/SQL state associated with a connection should be freed before the pool hands the connection to the client. By default this flag is false.
    If the flag is set by true, by including the line "FND_JDBC_PLSQL_RESET=true" in the .dbc file, each connection to the database will have its PL/SQL state cleared before the pool returns the connection to the client.
    This is how it works. After the pool selects a connection from the available list for a client, it initializes the connection. One of the things initialization does is to set a flag that is later used by SessionManager to determine if the apps initialization routine needs to be performed for the connection. When FND_JDBC_PLSQL_RESET has been set to "true", this flag will always be set to true. After the pool initializes the connection, it also checks whether the connection is usable. In this case, this check will include a call to DBMS_SESSION.RESET_PACKAGE, which frees the PL/SQL state. The table below summaries the affect of FND_JDBC_PLSQL_RESET and the other safety check parameters on borrowing a connection from the pool.
    The FND_JDBC_PLSQL_RESET parameter has been added to only to address the case where production PL/SQL global bugs are known to exist. The performance of the pool is reduced by setting this flag to true.
    Reference : Note 264599.1

    Purpose
    JVM 이 과도한 CPU / Memory를 사용하게 되어 Application Performance에 영향을 미칠때가 있으며 이럴경우 Connection Pool 관련하여 Parameter Tunning을 해야 할때가 있습니다. 이때 사용되는 Parameter들의 의미를 설명하고자 합니다.
    The Applications Database Connection Pool is a pool of JDBC database connections that are shared among java applications. Applications obtain connections from the pool by using the getJDBCConnection(...) methods of AppsContext.
    Essentially, each AppsContext has a single database connection associated with it at all times.
    The AOL/J layer internally borrows and returns this connection to the pool as needed to maintain connection reference that is properly initialized for the current Java tier AOL security context and NLS state.
    FND_MAX_JDBC_CONNECTIONS
    ============================
    The maximum pool size is the maximum allowed sum of the number of available connections and thenumber of locked connections. If the pool reaches the maximum size and all connections are locked, new clients will not be able to borrow a connection until one of the current clients has returned one. The default setting for this parameter is essentially unlimited (about 2 billion).
    FND_JDBC_BUFFER_MIN
    ======================
    The buffer minimum is the minimum number of connections that the pool should try to maintain in the available list. When the buffer size falls below the buffer minimum, the pool maintenance thread will be notified to create new connections. When notified, the thread will immediately attempt to create the number of connections to fill the difference. New connections will not be created if the pool is already at its maximum size. When creating new connections the thread uses the attributes of the most recent client request that resulted in a new connection being created.
    Setting this parameter to "0" will disable maintenance of the buffer minimum.
    However, the buffer maximum will still be maintained.
    Setting this parameter to a number greater than the maximum pool size(FND_MAX_JDBC_CONNECTIONS) will disable all buffer maintenance.
    FND_JDBC_BUFFER_MAX
    ======================
    The buffer maximum is the maximum number of connections that the pool should try to maintain in the available list. During heavy usage, the buffer may exceed this maximum. However, during periods of low usage, the maintenance thread will decrease the buffer size until the buffer maximum is reached.
    If the value of this parameter is an integer, (for example "20") the buffer maximum is static. If the value is a percent (for example, "20%"), the buffer maximum is not constant but instead is calculated dynamically as a percent of total pool size. The buffer minimum is also taken into account when
    determining a dynamic buffer maximum.
    The exact expression used is:
    maximum(t) = buffer minimum + ( (FND_JDBC_BUFFER_MAX/100) * size(t) )
    where maximum(t) and size(t) are the buffer maximum and pool size at some time t.
    The thread is configured to periodically check the buffer size. If the buffer size is greater than the maximum, the thread will remove either the number of available connections specified by FND_JDBC_BUFFER_DECAY_SIZE or the number of connections in excess of the buffer minimum, whichever is smaller. When connections are removed from the available list, the least recently used ones are removed first.
    Setting this parameter to100%, or to a number equal to FND_MAXIMUM_JDBC_CONNECTIONS, or to a number less than or equal to FND_JDBC_BUFFER_MIN will effectively prevent the maintenance thread from ever removing any connections.
    FND_JDBC_BUFFER_DECAY_INTERVAL
    ===================================
    The buffer decay interval specifies how often the connection pool maintenance thread should check the buffer size. The thread will check the buffer size at most once every FND_JDBC_BUFFER_DECAY_INTERVAL seconds. The actual time between consecutive thread cycles will vary somewhat depending on the JVM load.
    This parameter, along with FND_JDBC_BUFFER_DECAY_SIZE, allows the buffer decay rate to be tuned. For example, if the buffer decay size is 2 and the buffer decay interval is one minute, the buffer decay rate will never exceed two connections per minute. When connections are removed, the least recently used ones are removed first.
    FND_JDBC_BUFFER_DECAY_SIZE
    =============================
    The buffer decay size specifies the maximum number of connections that should be removed during any single thread cycle during which the number of available connections is greater than the buffer size. This parameter, along with FND_JDBC_BUFFER_DECAY_INTERVAL, allows the buffer decay rate to be tuned.
    FND_JDBC_MAX_WAIT_TIME
    =========================
    The maximum wait time specifies how much time a client should spend trying to get a connection. The borrow algorithm, used to borrow an object from the pool, contains check points at which the elapsed time is compared to the maximum wait time. If it exceeds the maximum wait time, then a null object will be returned to the client. The pre-configured value for the maximum wait time is
    10 seconds.
    FND_JDBC_SELECTION_POLICY
    ============================
    The selection policy determines how a connection is selected from the list of available connections for a particular client. The connection pool is pre-configured to use a cost-based selection algorithm, which selects the connection that will require the smallest amount of initialization to match the
    client's context.
    FND_JDBC_USABLE_CHECK
    ===========================
    The FND_JDBC_USABLE_CHECK parameter governs whether a pl/sql query is performed before giving a connection to a client. The pool checks whether a connection is usable before handing it to a client. This always involves checking that the connection is not null and is not closed. If FND_JDBC_USABLE_CHECK is set to true, then it also verifies that the connection can be used to perform a simple PL/SQL query. (This parameter may have to be set to "true" in order to clean up
    connections to a database that has been restarted.)
    FND_JDBC_CONTEXT_CHECK
    ==========================
    The FND_JDBC_CONTEXT_CHECK parameter governs whether the AOL security context and NLS state is obtained from the database when the connection is returned to the pool. If FND_JDBC_CONTEXT_CHECK is "true", when the connection is returned to the pool, the AOL security context and NLS state will be obtained from the database. (This is implemented in the DBConnObj.isReusable() method). This check must be done when the connection is returned (rather than when it is borrowed) so that the selection matching algorithm has access to the actual
    session context of the connections in the available list.
    FND_JDBC_PLSQL_RESET
    ========================
    The PL/SQL reset flag, set using the variable FND_JDBC_PLSQL_RESET, governs whether the PL/SQL state associated with a connection should be freed before the pool hands the connection to the client. By default this flag is false.
    If the flag is set by true, by including the line "FND_JDBC_PLSQL_RESET=true" in the .dbc file, each connection to the database will have its PL/SQL state cleared before the pool returns the connection to the client.
    This is how it works. After the pool selects a connection from the available list for a client, it initializes the connection. One of the things initialization does is to set a flag that is later used by SessionManager to determine if the apps initialization routine needs to be performed for the connection. When FND_JDBC_PLSQL_RESET has been set to "true", this flag will always be set to true. After the pool initializes the connection, it also checks whether the connection is usable. In this case, this check will include a call to DBMS_SESSION.RESET_PACKAGE, which frees the PL/SQL state. The table below summaries the affect of FND_JDBC_PLSQL_RESET and the other safety check parameters on borrowing a connection from the pool.
    The FND_JDBC_PLSQL_RESET parameter has been added to only to address the case where production PL/SQL global bugs are known to exist. The performance of the pool is reduced by setting this flag to true.
    Reference : Note 264599.1

  • KEEP and RECYCLE buffer pools question...

    About the DB buffer cache's two optional buffer pools: KEEP and RECYCLE pools.
    If i want a table to be kept in KEEP buffer pool, can i specify that in CREATE TABLE or ALTER TABLE syntax? Or is it possible only at tablespace level?

    HI,
    You can keep tables at keep pool by specifying storage (buffer_pool keep) parameter.

  • Buffer pool size

    Oracle 9.2.0.4.0
    java 1.4.2
    Hi,
    How can I set the buffer pool size in oracle 9i?
    Thanks
    JN

    DB_CACHE_SIZE
    Parameter type
    Big integer
    Syntax
    DB_CACHE_SIZE = integer [K | M | G]
    Default value
    48 MB, rounded up to the nearest granule size
    Parameter class
    Dynamic: ALTER SYSTEM
    DB_CACHE_SIZE specifies the size of the DEFAULT buffer pool for buffers with the primary block size (the block size defined by the DB_BLOCK_SIZE parameter).
    The value must be at least the size of one granule (smaller values are automatically rounded up to the granule size). A value of zero is illegal because zero is the size of the DEFAULT pool for the standard block size, which is the block size for the SYSTEM tablespace.
    [email protected]
    Joel P�rez

  • Keep buffer pool tuning

    hello,
    we have development database 10gR2
    ASSM is ON...
    and the system memory is
    SQL> sho sga
    Total System Global Area 293601280 bytes
    Fixed Size 1290232 bytes
    Variable Size 209715208 bytes
    Database Buffers 79691776 bytes
    Redo Buffers 2904064 bytes
    SQL> sho parameter sga_
    NAME TYPE VALUE
    sga_max_size big integer 280M
    sga_target big integer 280M
    SQL> select component,current_size from v$sga_dynamic_components;
    COMPONENT CURRENT_SIZE
    shared pool 171966464
    large pool 4194304
    java pool 12582912
    streams pool 20971520
    DEFAULT buffer cache 79691776
    KEEP buffer cache 0
    RECYCLE buffer cache 0
    DEFAULT 2K buffer cache 0
    DEFAULT 4K buffer cache 0
    DEFAULT 8K buffer cache 0
    DEFAULT 16K buffer cache 0
    DEFAULT 32K buffer cache 0
    ASM Buffer Cache 0
    i need to ping around 5 to 6 tables in keep buffer pool since they are frequently accessed ....so just need help on how can i properly configure the keep buffer pool sizewise...
    thank you very much

    Why do you need a keep pool?
    Why would the default buffer cache not be sufficient?
    See http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1590999000346302363
    99.999999999999% of the world does not need, want, nor desire a keep and recycle pool, they add
    to your administrative overhead and are for very special edge cases Edited by: Dom Brooks on Apr 19, 2011 12:00 PM

  • No free buffers available in buffer pool default

    We encounter this error ORA00379 No free buffers available in buffer pool default with one of our online transaction system.
    Initially, the errors occur once every 30 sec, and became less frequent (about twice a day) after the buffers has been increased to the size of Oracle's default medium size database.
    Currently, the system is under testing and we have 4 staffs using the same userid to send transactions. Furthermore the size of each transaction is about 3-5mb. Will these issues actually caused Oracle to run out of free buffer spaces?
    Please advise.
    Thankyou,

    Kenny
    I think your are running your server as dedicated server. Make it multi-threaded server if it is applicable. It will use the resources more efficiently. Otherwise, you have to set your pool size, prespawn, etc to their maximums.
    Regards

  • Default Buffer Pool Busy Waits and Default Buffer Pool Hit Ratio

    Hi experts,
    I am having oracle database with version 11gR2 on windows server 2003 platform.
    I am continuously getting alerts related to "Default Buffer Pool Busy Waits" and "Default Buffer Pool Hit Ratio."
    I have fired some of the queries(which contain view like v$session_wait) to get information of sessions that causing the same issue,but unable to get it.
    Please help me to resolve the same issue.

    Hi - Try this query for Buffer busy wait
    COL class FORM a10
    COL total_waits FORM 9,999,999,999
    COL "WAITS %" FORM 9999999
    COL time_waited FORM 9999999
    COL "TIME %" FORM 9999999
    COL event FORM a24
    COL avg_wait FORM 9999.99
    SELECT a.event event, substr(c.wait_class,1,9) class,
    a.total_waits total_waits, a.time_waited/100 time_waited,
    a.average_wait avg_wait
    -- a.average_wait/100 avg_wait -- displays seconds instead of 100s
    FROM v$system_event a, v$event_name b, v$system_wait_class c
    WHERE a.event_id=b.event_id
    AND b.wait_class#=c.wait_class#
    AND a.time_waited/100 > 0
    AND (event LIKE '%HW%' OR event = 'buffer busy waits')
    -- AND c.wait_class in ('Application','Concurrency','User I/O')
    ORDER BY 1 DESC;

  • Buffer pool keep and multiple db block sizes

    I have a tablespace with 8k block size (database default) and a tablespace with 16k block size. I have db_cache_size and db_16k_cache_size set (obviously).
    Also i have buffer cache keep set in the database.
    Question: If a table is placed in a tablespace with 16k block size, and it's buffer pool is keep, does it end up in the keep pool (like tables from 8k tablsepace and keep pool set), or it ends in 16k buffer?

    You can find in the following online manual
    http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14220/memory.htm#i16408

  • Table in Keep Buffer Pool

    Hi DBAs,
    I need to identify the database tables and indexes which I can put in KEEP Pool. I need your hellp
    How can I identify the object which are good candidate for KEEP Pool ? ( I want to put all the tables/indexes which are more than 50% in db buffer)
    How can I cache these table and indexes in KEEP Pool ?
    Thanks
    -Samar-

    Hi,
    IMO tables in the KEEP pool should be relatively small, and they should fit in the pool in their entirety.
    Above all those tables should be lookup tables as opposed to fact tables.
    To get them in the pool
    issue
    alter table <table_name> storage (buffer pool keep)
    Sybrand Bakker
    Senior Oracle DBA

  • Clearing Data Buffer Pools

    Is it possible to clear the buffer pool in Oracle without bouncing the database? We are configuring our database to use the keep buffer pools, and I wanted to test the performance improvements with pinning different tables into the keep buffer. Unfortunately the only way I can clear the buffer is to bounce the database, which disrupts several other people. I was hoping there was something like the "alter system flush shared_pool" to do this.
    Any help would be greatly appreciated...

    Is it possible to clear the buffer pool in Oracle without bouncing the database? We are configuring our database to use the keep buffer pools, and I wanted to test the performance improvements with pinning different tables into the keep buffer. Unfortunately the only way I can clear the buffer is to bounce the database, which disrupts several other people. I was hoping there was something like the "alter system flush shared_pool" to do this.
    Any help would be greatly appreciated... i guess there is no straight forward method like 'flush shared pool'
    maybe you can try running a full table scan or a cartesian join on two large tables
    which will flush the buffers of the tables that you are trying to tune.
    this is exactly the situation why you want to go for 'keep' buffer pool.

  • How to configure params for buffer pool for named data cache?

    when create a named data cache on ase 12.5, it will setup 2K I/O buffer pool by default with Configured size=0, wash size = 60M
    1. if 2K can be changed to 8K for this buffer pool?
    2. If add another 16k buffer pool, should Affected Pool be changed to the right pool?
    3. How to decide then pagesize, configured size and wash size for a buffer pool? Are they part of total memory size allocated for this cache?

    > 1. if 2K can be changed to 8K for this buffer pool?
    You should be able to create an 8K i/o pool, then drop the 2k pool by setting its size to 0.
    > 2. If add another 16k buffer pool, should Affected Pool be changed to the right pool?
    If you don't specify the Affected Pool (when calling sp_poolconfig), the procedure uses the pool with the smallest i/o.  So if you had an 8k but not had dropped the 2k, the space for the new 16k pool would come from the 8k pool.
    > 3. How to decide then pagesize, configured size and wash size for a buffer pool? Are they part of total memory size allocated for this cache?
    The wash is included in the pool. I don't think it usually needs to be adjusted.
    Which page size pools to have will depend on how the cache is used.  Tables with a clustered index that have a lot of range queries will benefit from larger page size pools, as will text/image/java.   Syslogs is said to do well on a 4k pool.
    -bret

  • ICM Host name buffer cache parameter

    Hello,
    Does any body know about the ICM Host name buffer cache parameter?
    I mean how long does it hold this value and cache refresh rate..
    REgards,
    Atul

    Hello Prem,
    Thanks for information.
    I know that parameter and how to check.
    My specific question is about hostname buffer cache rate and how long does it hold that value in buffer and refresh rate.
    Regards,
    Atul

  • Keep buffer pool after restart of the server

    Hi,
    What happens to the blocks in keep buffer pool when database is restarted. I was thinking that Oracle database will reload the object that I have declared storage as keep. But seems like that's not how how database behaves. How can I make sure when I restart the database server it reloads the objects into keep pool which I have declared storage as keep pool?
    Thanks
    S

    Hi S,
    What happens to the blocks in keep buffer pool when database is restarted.It gets flushed out, like the whole SGA!
    But fear not, it will populate itself without too much disk I/O!
    Remember, it's you job to make sure that the KEEP pool is always large enough to hold all objects assigned to the KEEP pool, plus a small fusge-factor to accommodate growth:
    http://www.oracle-training.cc/s49.htm
    Hope this helps . . .
    Donald K. Burleson
    Oracle Press author
    Author of "Oracle Tuning: The Definitive Reference"
    http://www.rampant-books.com/book_2005_1_awr_proactive_tuning.htm

Maybe you are looking for

  • "Archive Source Files with Errors"  feature - how to?

    File sender adapter has a feature to  Archive Source Files with Errors. I have an adapter module applied to inbound files and in case an error occurs during the processing of the adapter module, I want to make use of this feature , this is because th

  • Which template files need to be uploaded?

    I have completed my web pages and want to upload to my host site.  I am confused as to which files must be uploaded.  I created a home page using a template, designated the areas to edit/not edit and created several other pages using the original pag

  • Why have apple disabled file transfer between iphone and other devices?

    I have recently purchased an iPhone and i was about to send a file from my iPhone to a friends android and i found that it wasnt possible. Does anyone know why apple have not allowed this feature on any of the iPhones?

  • Doin' the "Sequence Shuffle" (or not)

    Here's a problem: Check out [javafx.util.Sequences API|http://java.sun.com/javafx/1/docs/api/javafx.util/javafx.util.Sequences.html] . It has some nifty functions like sort and shuffle. However, say you make a sequence of stuff with an id attribute:

  • Can I install windows XP and Ubuntu in macbook pro ? (without using virtual machine )

    Hi, I am planning to buy new Apple Macbook Pro with i5 processor , 2.4 GHZ , 500GB HDD , 4GB RAM. I want to know can I install ubuntu and windows XP on this Mac ? I don't want to use VMWare (virtual machine) software to install these OS. When system