
{"id":7964,"date":"2019-07-10T11:52:59","date_gmt":"2019-07-10T11:52:59","guid":{"rendered":"https:\/\/rax-stg-wp-aws.com\/blogs\/oracle-exadata-and-the-storage-index-feature\/"},"modified":"2026-11-03T19:29:11","modified_gmt":"2026-11-03T19:29:11","slug":"oracle-exadata-and-the-storage-index-feature","status":"publish","type":"blogs","link":"https:\/\/www.rackspace.com\/de\/blogs\/oracle-exadata-and-the-storage-index-feature\/","title":{"rendered":"Oracle Exadata and the storage index feature"},"content":{"rendered":"<p><strong>Introduction<\/strong><\/p>\n<p>The Oracle\u00a9&nbsp;Exadata\u00a9 system introduces storage indexes, which improve database&nbsp;performance. A storage index is a structure store in memory that contains key&nbsp;statistics. This storage index enables Exadata to speed up disk I\/O operations<br \/>\nand queries by checking the index first to find relevant data rather than by&nbsp;reading every row.<\/p>\n<p>One important consideration with storage indexes is that, for Exadata to produce&nbsp;storage index I\/O savings, the system needs to write the data in these indexes&nbsp;to the indexes&#8217; storage regions. In other words, to be used, storage index data&nbsp;needs to be primed on the cell server\u2019s region index memory structures. When&nbsp;you run a query for the first time, you see no storage index I\/O savings because&nbsp;the region indexes contain no relevant data.<\/p>\n<p><strong>How storage indexes work<\/strong><\/p>\n<p>The primary goal of a storage index is to reduce the amount of disk I\/O required&nbsp;to service requests for Exadata Smart Scan. By considering actual databases rows&nbsp;scanned, you can measure the I\/O savings derived from using storage indexes.&nbsp;Storage indexes are used during direct-path read operations, when the query&nbsp;contains a predicate (that is, a WHERE clause) and the underlying AutomaticStorage Management (ASM) disk group has the `<em>cell.smart_scan_capable=TRUE`&nbsp;<\/em>attribute set. In other words, storage indexes compliment Exadata Smart Scan for&nbsp;SQL statements with query predicates. Additionally, storage indexes yield the<br \/>\ngreatest performance savings when your data is well ordered with respect to the&nbsp;columns in your query predicates.<\/p>\n<p><strong>Oracle Exadata Architecture<\/strong><\/p>\n<p>From a design perspective, storage indexes are different from traditional&nbsp;Oracle B*Tree indexes or other index types. Storage indexes are not&nbsp;physical structures stored as a segment inside your databases but memory&nbsp;structures that reside on the Exadata storage cells. While the goal of&nbsp;traditional indexes is to assist Oracle in rapidly finding rows in a table,&nbsp;the goal of storage indexes is to provide a very efficient means to instruct&nbsp;the cell services software to skip physical database row reads if the values&nbsp;in the storage index indicate that the requested data is not contained within&nbsp;those rows.<\/p>\n<p>If the data in a storage region is well ordered with respect to columns typically&nbsp;used in a query predicate, storage indexes enable the Cell Server (CELLSRV)&nbsp;processes to bypass physical I\/O requests and save disk I\/O. The cell physical&nbsp;I\/O bytes saved by storage index is a system statistic that you can use to measure&nbsp;this I\/O savings benefit.<\/p>\n<p>If, on the other hand, the data is not well ordered, storage indexes provide&nbsp;limited or no benefit because each storage region has a higher probability of&nbsp;containing a large range of potential values for a given column or query&nbsp;predicate. Like traditional B*Tree indexes, clustering is an important&nbsp;consideration for storage indexes. One of the interesting facts about storage&nbsp;indexes is that Exadata\u2019s CELLSVR processes use them only if the predicate values&nbsp;in a query fall outside the high and low values tracked in the region indexes&nbsp;for each storage region, regardless of whether the storage region actually&nbsp;contains data within the tracked ranges.<\/p>\n<p>Consider an example in which a storage region contains data for ten rows in a&nbsp;table. Within these ten rows, let\u2019s assume there is a column called <strong>FIRST\\_NAME&nbsp;<\/strong>and within this column, the region contains rows with the FIRST\\_NAME containing<br \/>\n\u201cjohn\u201d, \u201canto\u201d, \u201cmax\u201d, \u201cleigh\u201d, \u201ctheo\u201d, \u201crachel\u201d, \u201clauren\u201d, \u201cbob\u201d, \u201cdenise\u201d,&nbsp;and \u201cjen\u201d. If you issued a query searching for `<em>FIRST_NAME=&#8221;chris<\/em>&#8220;`, any existing&nbsp;storage indexes for this table would not disqualify this region from being accessed<br \/>\nbecause \u201cchris\u201d alphabetically falls between \u201canto\u201d and \u201ctheo\u201d. However, if you&nbsp;run a query based on `FIRST_NAME=&#8221;victor&#8221;`, CELLSVR will bypass a physical I\/O&nbsp;to this storage region because the value falls outside the high and low values.<\/p>\n<p>In short, this means that storage index functions can return false positives&nbsp;(with respect to allowing I\/O requests to be issued), but they never return&nbsp;false negatives.<\/p>\n<p>Bypassing I\/O equates to skipping physical reads and skipping physical reads&nbsp;helps save time. The following image provides a logical representation of how&nbsp;storage indexes work:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26552-body-Picture1_40.png\" alt=\"storage index pic 1\" \/><\/p>\n<p><strong>Image source<\/strong>: Oracle Exadata Recipes by John Clarke&nbsp;<\/p>\n<p><strong>Conclusion<\/strong><\/p>\n<p>Exadata automatically maintains time-based storage indexes on your application&nbsp;usage. There is nothing an Exadata Database Machine Administrator (DMA) can do&nbsp;to influence storage index behavior outside of potentially ordering your data<br \/>\nto encourage their use or change your application\u2019s query predicates.&nbsp;Consider using storage indexes in the following situations:<\/p>\n<ul>\n<li>&nbsp; &nbsp; During direct-path read operations.<\/li>\n<li>&nbsp; &nbsp; With smart scans.<\/li>\n<li>&nbsp; &nbsp;When the queries contain predicates.<\/li>\n<\/ul>\n<p>Storage Index is the smartest feature available in the Oracle Exadata product,&nbsp;and it helps you search data in the fastest and most optimized manner.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oracle Exadata and the storage index feature<\/p>\n","protected":false},"author":2,"featured_media":7966,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"content-type":"","nid":"26552","content_type":"blog","created_by":"10130","authored_on":"2024-01-30T12:52:59+00:00","field_article_industries":"","tag_category":"Technical","field_blog_author_text":"by Rackspace Technology Staff","seo_description":"Understand the storage index feature of Oracle Exadata, boosting database performance with enhanced disk I\/O operations.\r\n","field_featured_image":"","insights_image":"\/wp-content\/uploads\/2026\/blog_technical_images\/26552-insights_image-oracle-technical-blog-1-insights.jpg","field_partners":"","rxt_platforms":"Oracle","product":"","publisheddate":"2019-07-10T11:52:59","rxt_solutions":"Cloud Management & Operations, Cloud Optimization, Data","opengraph_tag":"","x_tag":"","teaser_flag":"Technical Blog","seo_titile":"Oracle Exadata: Understanding the Storage Index Feature | Rackspace Technology","field_topics":"","field_slug":"oracle-exadata-and-storage-index-feature","footnotes":""},"categories":[178],"tags":[204],"class_list":["post-7964","blogs","type-blogs","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7964","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs"}],"about":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/types\/blogs"}],"author":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/comments?post=7964"}],"version-history":[{"count":3,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7964\/revisions"}],"predecessor-version":[{"id":9792,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7964\/revisions\/9792"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/media\/7966"}],"wp:attachment":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/media?parent=7964"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/categories?post=7964"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/tags?post=7964"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}