Using the NO_SORT index parameter
About this task
If the DataBlade® module that you are using provides a function that returns a numeric spatial key given an object of the data type that is being indexed, you can use this function to create a statically clustered table according to a functional B-tree index. Then, when you create an R-tree index on the resulting clustered table, the R-tree secondary access method does not need to sort the data as it builds an index from the bottom up, because the table is already sorted according to the same criterion that the R-tree bottom-up build would use.
To first sort a table and then create an R-tree index using the NO_SORT index parameter:
Procedure
- Check your DataBlade® module
documentation for a function that returns a spatial key given an object
of the data type that is being indexed.
For this procedure, assume this function is called SpatKey().
- Create a clustered functional B-tree index on your table
using the SpatKey() functionFor example,
CREATE CLUSTER INDEX btree_func_index on table1 (SpatKey(column1));
In the example,
btree_func_index
is the name of the clustered functional B-tree index,table1
is the name of the table, andcolumn1
is the name of the column that contains the spatial data. - Create the R-tree index on the spatial_column_name column,
specifying the NO_SORT='YES' index parameter:
CREATE INDEX rtree_index ON table1 (column1 my_ops) USING RTREE (NO_SORT = 'YES');
In the example,
rtree_index
is the name of the R-tree index andmy_ops
is the name of the operator class associated with the data type of columncolumn1
. - Because the R-tree index does not use the clustered functional
B-tree index, you can drop the B-tree index if you want:
DROP INDEX btree_func_index;