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: 10.2.0.4 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 126.96.36.199.
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: 10.2.0.4, 188.8.131.52, 11.2 are solid. On the standby: 184.108.40.206 (+ BCT patches), 220.127.116.11 (+ BCT patches), 18.104.22.168 are best.