Swapping and Database Buffer Cache size
I've read that setting the database buffer cache size too large can cause swapping and paging. Why is this the case? More memory for sql data would seem to not be a problem. Unless it is the proportion of the database buffer to the rest of the SGA that matters.
Well I am always a defender of the large DB buffer cache. Setting the bigger db buffer cache alone will not in any way hurt Oracle performance.
However ... as the buffer cache grows, the time to determine 'which blocks
need to be cleaned' increases. Therefore, at a certain point the benefit of a
larger cache is offset by the time to keep it sync'd to the disk. After that point,
increasing buffer cache size can actually hurt performance. That's the reason why Oracle has checkpoint.
A checkpoint performs the following three operations:
1. Every dirty block in the buffer cache is written to the data files. That is, it synchronizes the datablocks in the buffer cache with the datafiles on disk.
It's the DBWR that writes all modified databaseblocks back to the datafiles.
2. The latest SCN is written (updated) into the datafile header.
3. The latest SCN is also written to the controlfiles.
The following events trigger a checkpoint.
1. Redo log switch
2. LOG_CHECKPOINT_TIMEOUT has expired
3. LOG_CHECKPOINT_INTERVAL has been reached
4. DBA requires so (alter system checkpoint)
Similar Messages
-
Database buffer cache and library cache (order)
hi
after I issue:
select * from employees where employee_id=98
which one is performed by oracle first?
Oracle looks database buffer cache for any block it needs.
If block not found in database buffer cache ;server reads block from datafile and places copy in database buffer cache
OR
parse the sql and look in library cache for same execution plan ,.....Hi Ricardinho
How does Oracle know which blocks it might need ? Does it need blocks from any indexes or does it only need blocks from a table ?
Do you think it even remotely likely that Oracle will somehow get all the blocks it needs first and then worry about determining an execution plan at some later point in time ?
Cheers
Richard Foote
http://richardfoote.wordpress.com/ -
LRU and CKPTQ in database buffer cache
Hi experts out here,
This functionality will work out in Database buffer cache of Oracle 10.2 or greater.
Sources:OTN forums and Concepts 11.2 guide
As per my readings.To improve the funtionality and make it more good Database Bufer cache is divided into several areas which are called workareasNow further
zooming this each workarea will store multiple lists to store the buffers inside the database buffer cache.
Each wrokarea can have one or more then one lists to maintain the wrokordering in there.So the list each workarea will have is LRU list and CKPTQ list.LRU list
is a list of pinned,free and dirty buffers and CKPTQ is a list of Dirty buffers.We can say CKPTQ is a bundled of dirty buffers in low RBA ordering and ready to be flushed from cache to disk.
CKPTQ list is maintained in low RBA ordering.
As being novice let me clear about low RBA and High RBA first
RBA is stored in the block header and will give us the information about when this block is changed and how many times it is changed.
Low RBA : the low RBA is the address of the redo for the first change that was applied to the block since it was last clean,
high RBA : the high RBA is the address of the redo for the most recent change to have been applied to the block.
Now Back to CKPTQ
It can be like this (Pathetic diagram of CKPTQ)
lowRBA==================================High RBA
(Head Of CKPTQ) (Tail Of CKPTQ)
CKPTQ is a list of Dirty buffers.As per RBA concept.The most recent buffer modified is at the tail of CKPTQ.
Now oracle process starts and Try to Get buffer from DB cache if it gets a Buffer it will put a buffer MRU end of the LRU list.and buffer will become the most
recently used.
Now if process cant find a required buffer.then first it will try to find out Free buffer in LRU.And if it finds it its over it will place a datablock from datafile to the
place where free buffer was sitting.(Good enough).
Now if process cant fnd a Free buffer in LRU then First step would be it will find some Dirty buffers from the LRU end of the LRU list and place them on a
CKPTQ(Remeber in low order of RBA it will arrange it in CKPT queue). and now oracle process will take required buffer and place it on the MRU end of LRU list.(Because space has been acclaimed by moving Dirty buffers to CKPTQ).
I am sure that from CKPTQ the buffers(to be more accurate Dirty buffers) will move to datafiles.all the buffers are line up n CKPTQ in lower RBA first manner.But
will be flushed to datafile how and in which manner and what event?
This is what i understand after last three days flicking through blogs,forums and concepts guide.Now what i am missing please clear me out and apart from that
i cant link the following functionalities with this flow..that is
1)How the incremental checkpoint work with this CKPTQ?
2)Now what is that 3 seconds timeout?
(Every 3 seconds DBWR process will wake and find if anything there to write on datafiles for this DBWR will only check CKPTQ).
3)apart form 3 second funda , when CKPTQ the buffers will be moved??(IS it when Process cant find any space in CKPTQ to keep buffers from LRU.ITs a
moment when buffer from CKPTQ will be moved to disk)
4)Can you please relate when control file will be updated with checkpoint so it can reduce recovery time?
To many ques but i am trying to build up the whole process in mind that how it works may be i can be wrong in any phase in any step please correct me up and
take me @ the end of flow..
THANKS
KameshHi Amansir,
So i m back with my bunch of questions.I cant again ask a single because you know its a flow so i cant end up with single doubt.Thanks for your last reply.
Yes amansir first doubt clear that was buffer will be inserted at MID point for this i got one nice document (PDF)names "All about oracle touch count algorithm by CRAIG A SHALLAHAMER".That was quite nice PDF allabout hot and cold buffer and buffer movments inside the LRU list.I am prettly much clear with that point.Thank you. and Incremental checkpoint i read from Harald.van.Breederode ppt a person from oracle.You have shared it on one of your thread.that was nice reference
flicking through threads i came across term REPL and its variations REPL-AUX (thread was for Oracle 9i).Is this variation REPL-AUX deprecated in 10g So i i am not wrong For each work area two main lists that are LRU and CKPTQ exists??not more than that any other types?
For non-RAC database Thread checkpoint is a Full checkpoint?
I read about the incremental checkpointing Here incremental checkpointing in my words n brief.Incremental Checkpoints means write only some selected buffer from CKPTQ to Datafiles.FROM CKPTQ few Low orders RBA buffers are selected and chekcpointed *(Buffer will be checkpointed on many conditions)* and When the Next checkpoint occurs that buffers are flushed to disk.Now this thing *(Checkpointing few buffers and flushing them to disk)* can be multiple times within three seconds so after 3 seconds *(This is the 3 second concept i was asking in the starting of the thread,Can this time be changed if yes with which parameter)* the checkpoint RBA and Checkpoint*(the point upto which database buffer has flushed to disk)* will be updated in Control file header *(Datafile also)* by CKPT process.So that Checkpoint will be used for Instance recovery purpose.Which can dramatically down the instance recovery time.
every 3 seconds control file is updated with checkpoint and that checkpoint is the point from where we have to start the recovery process in oracle from redo log.I m aware that incremental checkpointing is controlled by Fast_start_mttr_target prarameter and now it is autotuned for >10.2 but the smaller value i will keep the less time my instance will take.
Is above two para right what i understood if wrong correct me??
What i understand is after three seconds it will take some buffers from the CKPTQ ( from low RBA end ) and flush them to disk.apart from this many other conditions are there when Data will be flushed to disk.
1) like CKPTQ is full.
2)Process cant find a free buffer in LRU
3)to advance checkpoint DBWR writes..
Correct me if i m wrong?
THANKS
Kamesh
Edited by: Kamy on May 2, 2011 10:55 PM -
About database buffer cache issue
Hi all, for example,a DBBC of 4mb size & there is a 1gb table, How this table will be used in DBBC?
Hi,
The whole table will not be taken to cache, but only the required blocks will be placed for oracle operations and unused blocks will be flushed from cache with LRU algorithm. Googling can provide you huge data on this topic.
Oracle Database Buffer Cache Tips
Thank you!! -
Hello,
I'd like to get the type of information in version 8 that I can get in version 9 through v$db_cache_advice in order to determine the size that the buffer cache should be. I've found sites that say you can set db_block_lru_extended_statistics to populate v$recent_bucket, but they say there is a performance hit. Can anyone tell me qualitatively how much of a performance hit this causes (obviously it would only be run this way for a short period of time), and whether or not this is really the best/right way to do this?
Thanks.Actually ours is bank Database,
Our Database size is 400GB.
last month they got ORA-000604 error,
so that production database got hanged for 15 min, issue got resolved automatically after 15min.
At that time complete buffer cache was flushed out & all oracle Processes was terminated.
becoz of that they increased buffer cache size. -
I need to calculate buffer cache size calculation for get operation.
SELECT o.object_name, h.status, count(*) number_of_blockes
FROM V$BH h, DBA_OBJECTS o WHERE h.objd=o.data_object_id
AND o.owner NOT IN('SYS','SYSTEM','SYSMAN')
AND h.status NOT IN('free')
GROUP BY o.object_name,h.status
ORDER BY count(*) DESC;
Used the above query, so i got the number of blocks used to cache data.
I performed a get operation in one db and number of blocks noticed.
But the problem is same operation in another db shows different number of blocks.
Both db are same configuration.
Anyone notices this issue??Why do you expect them to be the same?
Oracle version of each database?
Number of objects in each database?
Size of buffer cache in each database?
The amount of query activity that would actually load blocks into the buffer cache in each database is not likely to be "the same".
Identical data can take up a different number of blocks in different databases, depending on how it was loaded, transactions on that data, etc, so the number of blocks used in the buffer cache is likely to be different in different databases, even for the same data set. -
Suggest buffer cache size check
Hi experts,
please suggest how much give size of buffer cache. please tell me how to calculate this.
Note: on database running huge select with where clause.
>
SQL> show sga
Total System Global Area 536870912 bytes
Fixed Size 1220408 bytes
Variable Size 117440712 bytes
Database Buffers 411041792 bytes
Redo Buffers 7168000 bytes
>
>
SGA_ADVISORE
SQL> column c1 heading 'Cache Size (m)' format 999,999,999,999
SQL> column c2 heading 'Buffers' format 999,999,999
SQL> column c3 heading 'Estd Phys|Read Factor' format 999.90
SQL> column c4 heading 'Estd Phys| Reads' format 999,999,999,999
SQL>
SQL> select
2 size_for_estimate c1,
3 buffers_for_estimate c2,
estd_physical_read_factor c3,
4 5 estd_physical_reads c4
6 from
7 v$db_cache_advice
8 where
9 name = 'DEFAULT'
10 and
11 block_size = (SELECT value FROM V$PARAMETER
12 WHERE name = 'db_block_size')
and
13 14 advice_status = 'ON';
Estd Phys Estd Phys
Cache Size (m) Buffers Read Factor Reads
36 4,491 1.02 1,768,088,631
72 8,982 1.01 1,751,858,036
108 13,473 1.01 1,745,807,886
144 17,964 1.00 1,742,684,545
180 22,455 1.00 1,740,606,287
216 26,946 1.00 1,739,127,030
252 31,437 1.00 1,737,935,545
288 35,928 1.00 1,736,936,513
324 40,419 1.00 1,736,098,119
360 44,910 1.00 1,735,368,624
Estd Phys Estd Phys
Cache Size (m) Buffers Read Factor Reads
392 48,902 1.00 1,734,775,608
396 49,401 1.00 1,734,701,493
432 53,892 1.00 1,734,086,804
468 58,383 1.00 1,733,466,505
504 62,874 1.00 1,732,871,083
540 67,365 1.00 1,732,300,725
576 71,856 1.00 1,731,737,930
612 76,347 1.00 1,731,204,779
648 80,838 1.00 1,730,669,455
684 85,329 1.00 1,730,117,349
Estd Phys Estd Phys
Cache Size (m) Buffers Read Factor Reads
720 89,820 .98 1,703,583,925
21 rows selected.
Dictionary Cache Hit Ratio : 99.92% Value Acceptable.
Library Cache Hit Ratio : 98.22% Increase SHARED_POOL_SIZE parameter to bring value above 99%
DB Block Buffer Cache Hit Ratio : 60.53% Increase DB_BLOCK_BUFFERS parameter to bring value above 89%
Latch Hit Ratio : 99.72% Value acceptable.
Disk Sort Ratio : 0.00% Value Acceptable.
Rollback Segment Waits : 0.00% Value acceptable.
Dispatcher Workload : 0.00% Value acceptable.
>
Edited by: 928992 on Oct 18, 2012 2:31 PM
Edited by: 928992 on Oct 18, 2012 3:04 PMI am displaying you mine test db's buffer cache size : (11.2.0.1 on Windows box)
SQL> show parameter db_cache_size;
NAME TYPE VALUE
db_cache_size big integer 0
SQL> select name, current_size, buffers, prev_size, prev_buffers from v$buffer_pool;
NAME CURRENT_SIZE BUFFERS PREV_SIZE PREV_BUFFERS
DEFAULT 640 78800 0 0
SQL> select name,bytes from v$sgainfo where name='Buffer Cache Size';
NAME BYTES
Buffer Cache Size *671088640*
SQL> show sga;
Total System Global Area 1603411968 bytes
Fixed Size 2176168 bytes
Variable Size 922749784 bytes
*Database Buffers 671088640 bytes*
Redo Buffers 7397376 bytes
SQL> select * from v$sga;
NAME VALUE
Fixed Size 2176168
Variable Size 922749784
*Database Buffers 671088640*
Redo Buffers 7397376
SQL> show parameter sga_target;
NAME TYPE VALUE
sga_target big integer 0
SQL>Regards
Girish Sharma
Edited by: Girish Sharma on Oct 18, 2012 2:51 PM
Oracle and OS Info added. -
Hi there,
Can anyone explain these results on a 10.2.0.1 database?
SQL> select name, bytes/1024/1024 from v$sgainfo where name='Buffer Cache Size';
NAME BYTES/1024/1024
Buffer Cache Size 1728
SQL> show parameter db_cache_size
NAME TYPE VALUE
db_cache_size big integer 768M
NAME TYPE VALUE
sga_target big integer 0
As you can see AMM is disabled (sga_target=0), however v$sgainfo and dba_hist_sga record always a buffer cache size of 1728 MB and db_cache_size is set to 768 MB.
How can it be?
Many thanks.I answer myself:
db_8k_cache_size big integer 160M
db_cache_size big integer 768M
db_keep_cache_size big integer 400M
db_recycle_cache_size big integer 400M
I am like a newbee... -
What else are stored in the database buffer cache?
What else are stored in the database buffer cache except the data blocks read from datafiles?
That is a good idea.
SQL> desc v$BH;
Name Null? Type
FILE# NUMBER
BLOCK# NUMBER
CLASS# NUMBER
STATUS VARCHAR2(10)
XNC NUMBER
FORCED_READS NUMBER
FORCED_WRITES NUMBER
LOCK_ELEMENT_ADDR RAW(4)
LOCK_ELEMENT_NAME NUMBER
LOCK_ELEMENT_CLASS NUMBER
DIRTY VARCHAR2(1)
TEMP VARCHAR2(1)
PING VARCHAR2(1)
STALE VARCHAR2(1)
DIRECT VARCHAR2(1)
NEW CHAR(1)
OBJD NUMBER
TS# NUMBERTEMP VARCHAR2(1) Y - temporary block
PING VARCHAR2(1) Y - block pinged
STALE VARCHAR2(1) Y - block is stale
DIRECT VARCHAR2(1) Y - direct block
My question is what are temporary block and direct block?
Is it true that some blocks in temp tablespace are stored in the data buffer? -
Hello -
We have 3 x EX2010 SP3 RU5 nodes in a cross-site DAG.
Multi-role servers with 18 GB RAM [increased from 16 GB in an attempt to clear this warning without success].
We run nightly backups on both nodes at the Primary Site.
Node 1 backup covers all mailbox databases [active & passive].
Node 2 backup covers the Public Folders database.
The backups for each database are timed so they do not overlap.
During each backup we get several of these event log warnings:
Log Name: Application
Source: ESE
Date: 23/04/2014 00:47:22
Event ID: 906
Task Category: Performance
Level: Warning
Keywords: Classic
User: N/A
Computer: EX1.xxx.com
Description:
Information Store (5012) A significant portion of the database buffer cache has been written out to the system paging file. This may result in severe performance degradation.
See help link for complete details of possible causes.
Resident cache has fallen by 42523 buffers (or 27%) in the last 903 seconds.
Current Total Percent Resident: 26% (110122 of 421303 buffers)
We've rescheduled the backups and the warning message occurences just move with the backup schedules.
We're not aware of perceived end-user performance degradation, overnight backups in this time zone coincide with the business day for mailbox users in SEA.
I raised a call with the Microsoft Enterprise Support folks, they had a look at BPA output and from their diagnostics tool. We have enough RAM and no major issues detected.
They suggested McAfee AV could be the root of our problems, but we have v8.8 with EX2010 exceptions configured.
Backup software is Asigra V12.2 with latest hotfixes.
We're trying to clear up these warnings as they're throwing SCOM alerts and making a mess of availability reporting.
Any suggestions please?
Thanks in advanceHaving said all that, a colleague has suggested we just limit the amount of RAM available for the EX2010 DB cache
Then it won't have to start releasing RAM when the backup runs, and won't throw SCOM alerts
This attribute should do it...
msExchESEParamCacheSizeMax
http://technet.microsoft.com/en-us/library/ee832793.aspx
Give me a shout if this is a bad idea
Thanks -
Hi,
We seem to get this error through SCOM every couple of weeks. It doesn't correlate with the AV updates, so I'm not sure what's eating up the memory. The server has been patched to the latest roll up and service pack. The mailbox servers
have been provisioned sufficiently with more than enough memory. Currently they just slow down until the databases activate on another mailbox server.
A significant portion of the database buffer cache has been written out to the system paging file.
Any ideas?I've seen this with properly sized servers with very little Exchange load running. It could be a number of different things. Here are some items to check:
Confirm that the server hardware has the latest BIOS, drivers, firmware, etc
Confirm that the Windows OS is running the recommended hotfixes. Here is an older post that might still apply to you
http://blogs.technet.com/b/dblanch/archive/2012/02/27/a-few-hotfixes-to-consider.aspx
http://support.microsoft.com/kb/2699780/en-us
Setup a perfmon to capture data from the server. Look for disk performance, excessive paging, CPU/Processor spikes, and more. Use the PAL tool to collect and analyze the perf data -
http://pal.codeplex.com/
Include looking for other applications or processes that might be consuming system resources (AV, Backup, security, etc)
Be sure that the disk are properly aligned -
http://blogs.technet.com/b/mikelag/archive/2011/02/09/how-fragmentation-on-incorrectly-formatted-ntfs-volumes-affects-exchange.aspx
Check that the network is properly configured for Exchange server. You might be surprise how the network config can cause perf & scom alerts.
Make sure that you did not (improperly) statically set msExchESEParamCacheSizeMax and msExchESEParamCacheSizeMin attributes in Active Directory -
http://technet.microsoft.com/en-us/library/ee832793(v=exchg.141).aspx
Be sure that hyperthreading is NOT enabled -
http://technet.microsoft.com/en-us/library/dd346699(v=exchg.141).aspx#Hyper
Check that there are no hardware issues on the server (RAM, CPU, etc). You might need to run some vendor specific utilities/tools to validate.
Proper paging file configuration should be considered for Exchange servers. You can use the perfmon to see just how much paging is occurring.
These will usually lead you in the right direction. Good Luck! -
This was discussed here, with no resolution
http://social.technet.microsoft.com/Forums/en-US/exchange2010/thread/bb073c59-b88f-471b-a209-d7b5d9e5aa28?prof=required
I have the same issue. This is a single-purpose physical mailbox server with 320 users and 72GB of RAM. That should be plenty. I've checked and there are no manual settings for the database cache. There are no other problems with
the server, nothing reported in the logs, except for the aforementioned error (see below).
The server is sluggish. A reboot will clear up the problem temporarily. The only processes using any significant amount of memory are store.exe (using 53GB), regsvc (using 5) and W3 and Monitoringhost.exe using 1 GB each. Does anyone have
any ideas on this?
Warning ESE Event ID 906.
Information Store (1497076) A significant portion of the database buffer cache has been written out to the system paging file. This may result in severe performance degradation. See help link for complete details of possible causes. Resident cache
has fallen by 213107 buffers (or 11%) in the last 207168 seconds. Current Total Percent Resident: 79% (1574197 of 1969409 buffers)Brian,
We had this event log entry as well which SCOM picked up on, and 10 seconds before it the Forefront Protection 2010 for Exchange updated all of its engines.
We are running Exchange 2010 SP2 RU3 with no file system antivirus (the boxes are restricted and have UAC turned on as mitigations). We are running the servers primarily as Hub Transport servers with 16GB of RAM, but they do have the mailbox role installed
for the sole purpose of serving as our public folder servers.
So we theroized the STORE process was just grabbing a ton of RAM, and occasionally it was told to dump the memory so the other processes could grab some - thus generating the alert. Up until last night we thought nothing of it, but ~25 seconds after the
cache flush to paging file, we got the following alert:
Log Name: Application
Source: MSExchangeTransport
Date: 8/2/2012 2:08:14 AM
Event ID: 17012
Task Category: Storage
Level: Error
Keywords: Classic
User: N/A
Computer: HTS1.company.com
Description:
Transport Mail Database: The database could not allocate memory. Please close some applications to make sure you have enough memory for Exchange Server. The exception is Microsoft.Exchange.Isam.IsamOutOfMemoryException: Out of Memory (-1011)
at Microsoft.Exchange.Isam.JetInterop.CallW(Int32 errFn)
at Microsoft.Exchange.Isam.JetInterop.MJetOpenDatabase(MJET_SESID sesid, String file, String connect, MJET_GRBIT grbit, MJET_WRN& wrn)
at Microsoft.Exchange.Isam.JetInterop.MJetOpenDatabase(MJET_SESID sesid, String file, MJET_GRBIT grbit)
at Microsoft.Exchange.Isam.JetInterop.MJetOpenDatabase(MJET_SESID sesid, String file)
at Microsoft.Exchange.Isam.Interop.MJetOpenDatabase(MJET_SESID sesid, String file)
at Microsoft.Exchange.Transport.Storage.DataConnection..ctor(MJET_INSTANCE instance, DataSource source).
Followed by:
Log Name: Application
Source: MSExchangeTransport
Date: 8/2/2012 2:08:15 AM
Event ID: 17106
Task Category: Storage
Level: Information
Keywords: Classic
User: N/A
Computer: HTS1.company.com
Description:
Transport Mail Database: MSExchangeTransport has detected a critical storage error, updated the registry key (SOFTWARE\Microsoft\ExchangeServer\v14\Transport\QueueDatabase) and as a result, will attempt self-healing after process restart.
Log Name: Application
Source: MSExchangeTransport
Date: 8/2/2012 2:13:50 AM
Event ID: 17102
Task Category: Storage
Level: Warning
Keywords: Classic
User: N/A
Computer: HTS1.company.com
Description:
Transport Mail Database: MSExchangeTransport has detected a critical storage error and has taken an automated recovery action. This recovery action will not be repeated until the target folders are renamed or deleted. Directory path:E:\EXCHSRVR\TransportRoles\Data\Queue
is moved to directory path:E:\EXCHSRVR\TransportRoles\Data\Queue\Queue.old.
So it seems as if the Forefront Protection 2010 for Exchange inadvertently trigger the cache flush which didn't appear to happen quick or thuroughly enough for the transport service to do what it needed to do, so it freaked out and performed the subsequent
actions.
Do you have any ideas on how to prevent this 906 warning, which cascaded into a transport service outage?
Thanks! -
Will Oracle look into the database buffer cache in this scenario?
hi guys,
say I have a table with a million rows, there are no indexes on it, and I did a
select * from t where t.id=522,000.
About 5 minutes later (while that particular (call it blockA) block is still in the database buffer cache) I do a
select * from t where t.id >400,000 and t.id < 600,000
Would Oracle still pick blockA up from the database buffer cache? if so, how? How would it know that that block is part of our query?
thanksWithout an Index, Oracle would have done a FullTableScan on the first query. The blocks would be very quickly aged out of the buffer cache as they have been retrieved for an FTS on a large table. It is unlikely that block 'A' would be in the buffer_cache after 5minutes.
However, assuming that block 'A' is still in the buffer_cache, how does Oracle know that records for the second query are in block 'A' ? It doesn't. Oracle will attempt another FullTableScan for the second query -- even if, as in the first query -- the resultset returned is only 1 row.
Now, if the table were indexed and rows were being retrieved via the Index, Oracle would use the ROWID to get the "DBA" (DataBlockAddress) and get the hash value of that DBA to identify the 'cache buffers chain' where the block is likely to be found. Oracle will make a read request if the block is not present in the expected location.
Hemant K Chitale
http://hemantoracledba.blogspot.com -
Flushing Database Buffer Cache
I am trying out variants of a SQL statement in an attempt to tune it. Each variant involves joins across a different combination of tables, although some tables are common across all variants. In order to be able to do a valid comparison of the TKPROF outputs for the variants, I believe I need to flush the database buffer cache between variants so that the db block gets, consistent gets and physical reads parameters are true for each variant. By doing this, data retrieved for one variant is not already in the buffer cache for the next variant, thus not influencing the above parameters for the next variant.
Is it possible to flush the buffer cache? The shared pool can be flushed with the ALTER SYSTEM FLUSH SHARED_POOL command. I've searched but have not been able to find an equivalent for the buffer cache. The NOCACHE option to the ALTER TABLE command only pushes retrieved data to the LRU list in the buffer cache, but does not remove it from the buffer cache.
I'm hoping to be able to do this without bouncing the database between variants. It is a development instance, and I have it to myself after hours.Hi,
I never tried this before, but if you want make a test you can try corrupt the block ID's returned by one of these queries below:
Try corrupt the ID of the block containing the segment header
select dbms_rowid.rowid_block_number(rowid) from hr.regions;
Try corrupt one of the blocks returned by the query, which shows the ID of the block where each row is located
select s.owner,t.ts#,s.header_file,s.header_block
from
v$tablespace t, dba_segments s
where
s.segment_name='REGIONS' and
owner='HR' and
t.name = s.tablespace_name;Legatti
Cheers -
Hi Guru,
Can anyone tell me what is the actual definition of Data buffer Cache & Log buffer Cache and how it works in Oracle 10g??
Please
Regards,
Rajeev,India
Edited by: 970371 on Nov 8, 2012 7:06 PMvlethakula wrote:
Databuffer cache contains the blocks which are read from physical data files.Database buffer cache contains buffers that hold the blocks read from the disk.
Log buffer cahce contains changes made to the database
e.g: You try to update a row, the changes made to that row is written in form of change vectors to Log buffer cache, from there on certail rules(like commit) LGWR background process writes those changes from LOG BUFFER CACHE to redo log files.
The block which is modified in database buffer cache, will be written to physical files by DBWR process after certain rules are met (like checkpoint)The reason that I didn't give the explanation or the links containing the same from the docs that I wanted OP to come up with some sort of his own understanding about the two caches first.
Aman....
Maybe you are looking for
-
Z22 will not sync after re-installing Desktop
My Palm Desktop (V 6.2.2) ceased working - the program reported errors and refused to launch. Suspecting a corrupted file, I uninstalled it completely and reinstalled. Now the desktop will launch but will not Hotsync with the Z22 handheld, which no
-
HI, I HAVE AN IPHONE4, I CHANGED MY PASSCODE BUT FORGOT WHAT IT WAS THE NEXT DAY, AFTER SEVERAL ATTEMPTS TO UNLOCK MY PHONE BECAM DISABLED AND SAYING IPHONE DISABLED CONNECT TO ITUNES, HOWEVER MY PHONE ISNT SYNCED TO ITUNES NOR A COMPUTER, PLEASE TEL
-
How to change the width of a switch control?
If I set long on&off texts, they can't be fully displayed. How to change the width of this sap.m.switch control? P.S., "width" attribute doesn't work here.
-
I just got a nb205-330WH--and partitioned the Hard Disc--now I have 4 parts and I can't change the size of the recovery part. I would like to go back to the beginning, and recover the whole system--how can I do it? I didn't get a recovery CD. And whe
-
Assembly indicator in BOM doesnu2019t consider BOM Usage
In a business scenario we are using two types of BOM 1. Production BOM & 2. Engineering BOM. Letu2019s say for Material 'A' there is an engineering BOM & it consists of two components say 'B' & 'C'. Material 'C' has its own BOM but with usage "Produc