ADO 2.0 includes few optimizations when it is marked as an Apartment model in the Registry. It determines the threading model from the Registry at DLL load time. The scaling characteristic of ADO applications can be significantly improved using ADO in this way.
Also, the default threading model of ADO 2.0 is Apartment, as it is in ADO 1.0 and 1.5. Therefore, to take advantage of this optimization, only use ADO like an Apartment model. If the threading model is marked Apartment, only the class factories and globals are protected with critical sections. At all other places in the code, ADO doesn't initialize, delete, enter, or leave critical sections that result in reduced work.