Partitioning for Parallel Query

You can optimize query performance of large document sources by storing the crawler index in partitions distributed across several independent disks. Oracle SES then executes parallel subqueries automatically against the partitions. Both I/O and CPU resources are used in parallel.

These administrative objects support parallel query:

Note:

To support parallel query, you must create the partitions immediately after installing Oracle SES. You cannot create them after crawling a document source.

To support parallel query: 

  1. Open a SQL session as the administrative user:

    sqlplus eqsys
    
  2. Execute two PL/SQL procedures to enable the partitioning feature of the Oracle SES instance:

    exec eq_adm.use_instance(1)
    exec eq_par.enable_partition
    
  3. Define one or more storageArea objects with a usage of PARTITION on each physical storage device available to this instance.

  4. Update the partitionConfig object to have a rule type of HASH and to use the new storageArea objects.

  5. Create document sources and schedule them for crawling.

See Also:

"Parallel Query Indexing" in the Oracle Secure Enterprise Search Administrator's Guide.

Parallel Query Example

This example creates two partitions, using the default OES storage area and a newly created OES1 storage area:

  1. Using searchadmin, export the XML description of the default OES storage area to a file named oes.xml:

    export storageArea --NAME=oes --OUTPUT_FILE=oes.xml
    
  2. Export the XML description of the partition configuration to a file named part.xml:

    export partitionConfig --OUTPUT_FILE=part.xml
    
  3. Open oes.xml in a text editor and edit it as follows:

    <search:config productVersion="11.1.2.0.0" xmlns:search="http://xmlns.oracle.com/search">
       <search:storageAreas>
          <search:storageArea>
             <search:name>OES1</search:name>
             <search:description>
                Default storage area extension
             </search:description>
             <search:usage>PARTITION</search:usage>
             <search:locations>
                <search:location>
                   <search:path>/ses_storage/</search:path>
                   <search:device>default</search:device>
                   <search:preAllocatedSpace>20</search:preAllocatedSpace>
                   <search:quota>400</search:quota>
                </search:location>
             </search:locations>
          </search:storageArea>
       </search:storageAreas>
    </search:config>
    
  4. Open part.xml in a text editor and edit it as follows:

    <search:config productVersion="11.1.2.0.0" xmlns:search="http://xmlns.oracle.com/search">
       <search:partitionConfig>
          <search:partitionRules>
             <search:partitionRule>
                <search:partitionValue>EQ_DEFAULT</search:partitionValue>
                <search:valueType>META</search:valueType>
                <search:ruleType>HASH</search:ruleType>
                <search:storageArea>oes, oes1</search:storageArea>
             </search:partitionRule>
          </search:partitionRules>
       </search:partitionConfig>
    </search:config>
    
  5. Create the new storage area:

    create storageArea --NAME=oes1 --INPUT_FILE=oes.xml
    
  6. Update the partition configuration:

    update partitionConfig --INPUT_FILE=part.xml --UPDATE_METHOD=overwrite