Why cursor type adOpenForwardOnly performance is better than adOpenStatic? <p>I am trying to understand the difference between <code>CursorTypeEnum</code> 0 and 3, as described <a href="https://msdn.microsoft.com/en-us/library/ms681771(v=vs.85).aspx" rel="nofollow">here</a>. Both are static, except type 0 only supports forward iteration.</p> <p>In my case <code>rs.Open strsql, cn, 0</code> returns consistently in under 30 seconds, whereas performance of the same query with type 3 cursor fluctuates widely between 3 and 8 minutes.</p> <p>They both need to lock the underlying tables in order to create static set, so why such dramatic difference?</p> <p><em>Disclaimer: I am no expert in VBA or transactional databases. I understand concurrency, algorithmic complexity and data structures.</em></p>