Category: Binary-, CLOB-, Object Relational Storage

August 17

Binary XML storage can also be combined with an XML Schema. As shown in Mark Drakes presentation whitepaper (slide 6), the lower right of the diagram, shown below, marks the section for XML Schema (structured, schema based) binary XML storage.

Slide 6 of “Oracle Database 11g XML DB Presentation (PDF) July 2007”

XML Use Cases - Oracle Database 11g XML DB Presentation (PDF) July 2007, Mark Drake, Oracle

Click picture to enlarge

The following example will show how you can create an XMLType table making use of a defined XML Schema and how to avoid the ORA-44424 error (BINARY XML storage requires XML Schema registered for BINARY usage).

August 13

As said in the former post, one of the disadvantages of creating a full blown XMLIndex, indexing on all possible values, is that the size of the XMLIndex is most of the time larger in size then the table itself.

This is one of the reasons that it is possible to make use of what is called “XMLIndex Path Subsetting“. In short, one creates only indexes on XPath locations which are needed. By default, XMLIndex indexes all possible XPath locations in your XML data, this is easy if you have no knowledge of what data will be selected. As said, the disadvantage is that this will use a lot of space.

Path Subsetting

With XMLIndex Path Subsetting one can remove all the index values that one doesn’t need after indexing all Xpath locations OR you create a skeleton structure and add all the index values on the XPath locations you actually need.

As in the relational database world, one should not build an index on every possible table column and concatenated column combinations. So, IMHO, I think it is easier to start from scratch with no index available and build only those indexes on index paths you need.

In the following example, I will demonstrate how you can do this. Given the examples from the “Oracle 11g – XMLIndex (part 1)” post, you can use XMLIndex path subsetting the following way…

July 10

The following is an extension on the former post about “About Table(XMLSequence()) and XMLTable”. These examples where based on a XMLType column using CLOB storage. If you have read the “Oracle 11g – XMLType Storage Options“, then you should now know that this storage model is only performing if you had a document centric environment in mind.

Oracle’s 11g addition “XMLIndex”, will give you an solution for these kinds of environments.

The XMLIndex is a domain index, specially crafted for use in a XMLDB environment. It is a logical index with 3 components (excerpt Oracle 11g beta XMLDB Developers Guide):