IBM Db2 Spatial Extender offre un index spatial à trois niveaux de grille permettant aux applications d’interroger les données géographiques bidimensionnelles contenues dans une colonne spatiale et d’identifier rapidement l’ensemble des géométries situées dans une étendue donnée.
L’index spatial bidimensionnel diffère de l’index d’arborescence B hiérarchique traditionnel fourni par Db2. Ce dernier peut ne pas être appliqué à une colonne spatiale, la caractéristique bidimensionnelle de la colonne spatiale nécessitant la structure d'un index spatial. De même, il est impossible d'appliquer un index spatial à une colonne non spatiale et un index spatial ne peut être appliqué à aucune colonne composite.
Par conséquent, la syntaxe CREATE INDEX de l’index spatial comprend la clause supplémentaire USING, qui indique à Db2 d’utiliser l’index spatial Spatial Extender plutôt qu’un index d’arborescence B. La syntaxe complète est la suivante :
CREATE INDEX <index_name>
ON <table> (<spatial column>)
USING db2gse.spatial_index (<grid level 1>, [grid level 2], [grid level 3])
L'ajout de la clause USING distingue l'index spatial de l'index d'arborescence B. Le nom de structure db2gse doit compléter le nom de l'extension spatial_index, car cette instruction ne suit pas le chemin de fonction courant.
En raison de la simplicité des données indexées par une arborescence B, le concepteur de base de données indique simplement à Db2 de créer l’index sur une ou plusieurs colonnes de table. Toutefois, la complexité des données spatiales exige de la part du concepteur de comprendre leur distribution de taille relative. Le concepteur doit déterminer la taille optimale et le nombre des niveaux de grille de l'index spatial.
Les niveaux de grille ([niveau de grille 1], [niveau de grille 2], [niveau de grille 3]) sont saisis par taille de cellule croissante. Le deuxième niveau doit donc avoir une taille de cellule supérieure au premier et le troisième une taille de cellule supérieure au deuxième. Le premier niveau de grille est obligatoire, mais vous pouvez désactiver le deuxième et le troisième niveau en spécifiant une valeur nulle (0).
Reportez-vous à la documentation Db2 disponible dans IBM Knowledge Center pour plus d’informations sur les index spatiaux.