What is the overhead of enabling Block Change Tracking?

I’ve been wondering what kind of impact BCT has on databases and had the opportunity to talk to Vinay Srihari.*

Kyle: Vinay, what kind of impact does BCT have on the performance of an Oracle database?

Vinay: After it was introduced in 10gR1, BCT was put through TPCC-style OLTP benchmarks internally at Oracle. There was no measurable performance overhead on OLTP. However, it took a release to stabilize the feature and fix several fundamental bugs: is all right, not so sure about 10.1.

There was some concern because BCT updates to the in-memory bitmap are done in the critical redo generation path by every foreground. The BCT logging turned out to be negligible in terms of CPU (instruction count) because redo generation was an order of magnitude more work. The main issue was bugs that caused the BCT background (CTWR) to get stuck or slow down, to the point where no more in-memory bitmap buffers were available and impacted foreground activity.

BCT for the Physical Standby was added in 11.1, as part of the Active Data Guard licensed option. There were some critical bugs with this feature that were fully resolved only in 11.2, although patches are available for

I have seen BCT deployed successfully at customers with > 20MB/s (50 GB/hr), Oracle’s internal testing was ~50MB/s.

Bottom line, stability of the feature and not performance is the concern. On the primary:,, 11.2 are solid. On the standby: (+ BCT patches), (+ BCT patches), are best.

* Vinay is currently an architect at Delphix and spent the past  12 years  at Oracle where he was involved in building High Availability services for the Oracle Database kernel. He was a member of early development teams that delivered RAC Cache Fusion, multi-threaded redo generation, and high performance replication. Since 2005 he was managing the High Availability infrastructure engineering team responsible for the development of the recoverability features of the core database and high-revenue products like Active Data Guard Standby, RAC, and Exadata. Prior to that Vinay also had stints in Oracle’s technical support and server performance organizations.


  1. Trackbacks


  2. Alex Gorbachev
    May 5th, 2011 at 01:23 | #1

    If interested, I’ve researched it and published the results of BCT internals which are about 5 years old now. I think I’ve got most of these things right and while I don’t answer exactly your question on the overhead, you can imply the overhead level – http://www.pythian.com/documents/Pythian-oracle-block-change.pdf

  3. Kyle Hailey
    May 5th, 2011 at 01:29 | #2

    Hi Alex,
    I’ve much appreciated your impressive paper on BCT. Awesome work.

  4. Marva
    November 27th, 2019 at 02:42 | #3

    I see the author has ground knowledge it the subject in addition to some practical
    experience. This sort of info is more favorable than copypasted blog articles thoughts.

You must be logged in to post a comment.