Hash partitioning

In hash partitioning the value of a hash function determines about the membership in a partition. In this case no areas are defined but only the number of partitions has to be set. This procedure is always recommended if a separation into partitions is desired but the sorting on the basis of attributes is impossible. In such a case it is impossible to speed up the query externally by using a partition value.

Note for Oracle: To achieve a uniform distribution with hash partitioning in Oracle the number of partitions must be set to a power of 2 (e.g. 2, 4, 8, 16, 32 etc.). Otherwise the outcome is an uneven distribution where some partitions, on average, contain a multiple of rows (e.g. double the number of rows) compared to other partitions.

Configuration example

The example below shows a storage definition that defines a hash partition with 3 partitions.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<dbTableStorageDefinition:tableStorageDefinition

      xmlns:dbTableStorageDefinition="http://www.tsystems.com/ima/9.0/dbTableStorageDefinition">

    <defaultTablespaceDefinition tablespace="IMA_TABSPACE" indexspace="IMA_IDXSPACE"/>

    <partitionMethod>

        <hashPartitioning>

            <partition name="PARTITION_1">

                <tablespaceDefinition tablespace="IMA_TABSPACE" indexspace="IMA_IDXSPACE"/>

            </partition>

            <partition name="PARTITION_2">

                <tablespaceDefinition tablespace="IMA_TABSPACE" indexspace="IMA_IDXSPACE"/>

            </partition>

            <partition name="PARTITION_3">

                <tablespaceDefinition tablespace="IMA_TABSPACE" indexspace="IMA_IDXSPACE"/>

            </partition>

        </hashPartitioning>

    </partitionMethod>

</dbTableStorageDefinition:tableStorageDefinition>