Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Slow Streams Performance.

RE: Slow Streams Performance.

From: Luca Canali <>
Date: Thu, 2 Nov 2006 19:40:40 +0100
Message-ID: <>

Hi Ajay,  

I have tried similar tests and then concluded that the apply processes were the bottleneck. It is not too easy to analyze these kind of problems though. In my test I could see a limit of abbot 4000 LCR/sec. strmmon (from metalink) is a good tool for this kind of analysis. You can also activate 10046 traces on the apply processes. Multiple parallel apply processes often don't increase throughput when inserting in a single table as in you test because they would serialized on buffer busy events (typically on the PK).  

I would be interested in knowing what is the current max LCR/s rate that you are seeing.  


[] On Behalf Of Thotangare, Ajay

Sent: Thursday, November 02, 2006 6:04 PM To:
Subject: Slow Streams Performance.

Hi All,

Slow Streams Performance. I want to reduce the time for the changes to be reflected in target site sooner.


Site A :
I execute a particular transaction and it takes 3 Mins.
(Transaction Inserts 1,000,000 rows in a table. Commit every 1000 Rows.
No Indexes)

SIte B
I execute same transaction and it takes approx. 3 Mins.
(Transaction Inserts 1,000,000 rows in a table.Commit every 1000 Rows.
No Indexes)


Site A :
I execute a particular transaction and it takes 3 Mins.
(Transaction Inserts 1,000,000 rows in a table.Commit every 1000 Rows.
No Indexes)

Site B :
Capture, Propagation and Apply runs on this site.

Steps :
(a) Execute transaction on SiteA ( 3 minutes) (Generates approx. 275MB
of redo)
(b) Switch archivelog on Site A atleast 2 times (done Immediately)
(c) Time to transport archivelog from SiteA to SiteB (approx. 1mins).
Archive log is automatically transported via RFS
(d) It takes around 2mins to get status of capture process as "capturing
(e) It takes 10Mins to reflect the transaction on SiteB which is a slow

Earlier it use to take 24Mins. Now its reduced to 10mins due to following changes
(a) Add parallelism to Capture : 12 Parallel process (4CPU BOX)
(b) Add parallelism to Apply : 8 Parallel process (4CPU BOX).

    Parallelism for apply was reduced from 12 to 8 which gained performance by 1 mins.

        Noticed that 4 parallel out of 12 process were always idle so reduced the parallelism to 8 (Gained 1 Minute in performance)

(c) Changed propagation latency to 0
(d) Streams Pool SIze increased to 2G. (This helped to remove all
spilling and incresed performance)
(e) _SGA_SIZE increased to 500M. (our logfile is just 275MB)
(f) Checkpoint Frequency : 100M

When I check the status continuously from v$buffer_subscriber and v$buffer_publishers,
It shows the publisher state as "IN FLOW CONTROL: Lots of Unbrowsed msgs". Capture Process also shows status as "PAUSED for flow control intermitently".

How can I completely eliminate the status "IN FLOW CONTROL" , which indicates either low memory or apply or propagation is not as fast as capture.

We confirmed its not memory problem by reducing commit size. We think problem is with Propagation as apply seems working fine.

Can anybody help to resolve this problem? Pls let me know if anybody needs more info.


If you are not an intended recipient of this e-mail, please notify the sender, delete it and do not read, act upon, print, disclose, copy, retain or redistribute it. Click here <> for important additional terms relating to this e-mail.

Received on Thu Nov 02 2006 - 12:40:40 CST

Original text of this message