Oracle Scratchpad

July 27, 2014


Filed under: 12c,in-memory,Oracle — Jonathan Lewis @ 8:02 am BST Jul 27,2014

So is out with a number of interesting new features, of which the most noisily touted is the “in-memory columnar storage” feature. As ever the key to making best use of a feature is to have an intuitive grasp of what it gives you, and it’s often the case that a good analogy helps you reach that level of understanding; so here’s the first thought I had about the feature during one of the briefing days run by Maria Colgan.

“In-memory columnar storage gives you bitmap indexes on OLTP systems without the usual disastrous locking side effects.”

Obviously the analogy isn’t perfect … but I think it’s very close:  for each column stored you use a compression technique to pack the values for a large number of rows into a very small space, and for each stored row you can derive the rowid by arithmetic.  In highly concurrent OLTP systems there’s still room for some contention as the session journals are applied to the globally stored compressed columns (but then, private redo introduces some effects of that sort anyway); and the “indexes” have to be created dynamically as tables are initially accessed (but that’s a startup cost, it’s timing can be controlled, and it’s basically limited to a tablescan).

Whatever the technical hand-waving it introduces – thinking of the in-memory thing as enabling real-time bitmaps ought to help you think of ways to make good use of the feature.




  1. […] suggested a little while ago that thinking about the new in-memory columnar store as a variation on the principle of bitmap […]

    Pingback by Analogy – 2 | Oracle Scratchpad — August 3, 2014 @ 1:41 pm BST Aug 3,2014

  2. […] Of course, this method is just another example of the “visit a table twice to improve the efficiency” strategy that I wrote about a long time ago; and it’s this particular variant of the strategy that allows you to think of the in-memory columnar option as an implementation of OLTP bitmap indexes. […]

    Pingback by In-memory limitation | Oracle Scratchpad — August 15, 2014 @ 8:51 pm BST Aug 15,2014

RSS feed for comments on this post.

Powered by