MicroStrategy was one of the beta testers for Oracle In-Memory Database. Jochen Demuth, director of partner engineering, will be presenting on what MicroStrategy learned from beta testing and working closely with Oracle on this project. Demuth came away from the beta test with three key things anyone implementing Oracle In-Memory Database needs to do. Demuth will be lecturing on these best practices at Oracle OpenWorld 2014. Here is a preview of the MicroStrategy best practices for setting up Oracle In-Memory Database.
Design applications with dual-format in mind
Every time you query the database, it has to make a decision between searching the data in row store or column store. The answer will be identical, but the speed of the response will vary depending on whether the database pulls data from row store or column store. Demuth recommends that when you design an application to run on Oracle In-Memory Database, you do everything you can to help the database make the right choice each time.
The key steps to keeping the Oracle In-Memory Database on target are creating database schema designs, defining primary keys and foreign keys, and collecting statistics. While none of this is unique to Oracle In-Memory Database, it is especially important for it. Without this, the database may choose the wrong option and end up with slowed response time.
Zero in on relevant information
While minimizing the amount of work a database has to do is a general best practice, it is especially important in the context of the Oracle In-Memory Database. First, consider before any query how much data you actually need to see. Do you need the full table? Make sure to target only relevant information.
What you need to do is prevent the database from coming to the conclusion that it needs to go through everything you've stored there, or even any unnecessary data. The key to this is partitioning. Set up effective partitions to show only certain types of data -- for instance, only data from within a particular span of time.
Make the best use of your resources
Oracle In-Memory Database needs to have sufficient resources for efficient processing. The resources in question are power, in-memory, disk and I/O. MicroStrategy does not have a perfect ratio for these components worked out. However, there are multiple ways to look at this problem.
Demuth explained that Oracle's preferred solution is to buy more and better versions of whichever resource you're lacking. Unsurprisingly, in-memory needs, in particular, sufficient memory. "This is how Oracle can upsell its customers," Demuth said. While it's possible that Oracle In-Memory Database will require resources you just don't have, Demuth had other methods for making the resources you have count.
One strategy, according to Demuth, is to teach the database to be more efficient with its resources. "First, you need to make sure you are using what you have well," Demuth said.
Find out more about MicroStrategy with announcements from MicroStrategy World 2014
Learn about some other considerations for implementing Oracle In-Memory Database
Before turning on Oracle Database In-Memory, read up on some potential costs