• Aucun résultat trouvé

SDO_RTR_PCTFREE définit le pourcentage d’espace libre dans chacun des nœuds de l’arbre. Cet espace libre sera utilisé par la suite dans le cas d’ajout de données.

Tableau 2 : Valeurs des paramètres d’indexation pour les différents index

Quad-tree hybride Quad-tree fixe R-tree (« Region tree ») SDO_LEVEL > 0 SDO_LEVEL > 0 SDO_FANOUT = 35 par défaut SDO_NUMTILES > 0 SDO_NUMTILES = 0 SDO_INDX_DIMS = 2 par défaut

SDO_RTR_PCTFREE = 10 par défaut

2.2.2Quad-tree

Lors de la réalisation d’une indexation de type Quad-tree, chaque géométrie est représentée par un ensemble de tuiles exclusives et exhaustives. En effet, aucune tuile ne se superpose à ces voisines (exclusif) et l’ensemble des tuiles couvre l’intégralité des géométries du calque (exhaustif) ; L’espace vide n’étant pas indexé.

La figure 31 montre la représentation des deux types d’index Quad-Tree.

Figure 31: Visualisation des index avec Spatial Advisor

En haut à gauche : QTF SDO_LEVEL = 7 En haut à droite : QTF SDO_LEVEL = 6 A gauche : QTH SDO_LEVEL = 7, SDO_NUMTILES = 6

2.2.3R-tree (RTR)

Les index de type R-tree (Region Tree) ont été implémentés en bêta dans la version 8.1.6 et en production dans la version 8.1.7 d’Oracle Spatial. Les index de type R-tree définissent pour chaque géométrie la MBR (Minimum Bounding Rectangle ie. l’étendue). Cette étendue constitue les feuilles de l’arbre de l’index. Ensuite ces feuilles sont regroupées dans des rectangles plus grands. Cette action est réalisée jusqu’à l’obtention d’un seul rectangle contenant l’ensemble des géométries du calque.

Du fait de ses propriétés il peut être facilement utilisé pour l’indexation d’objet en 3 dimensions ou plus18.

Figure 32: Concept de l’indexation de type R-tree

2.2.4Choix du type d’index selon les données

Avec la Release 3 d’Oracle, les différents guides d’utilisation conseillent l’utilisation des index de type R-Tree dans la majorité des cas. Il est possible de maintenir 2 types d’index différents sur la même colonne de type SDO_GEOMETRY. Lors des requêtes, il sera alors nécessaire de spécifier la table d’index à utiliser en utilisant le paramètre idxtab1 or idxtab2.

18 L’indexation sur 3 et 4 dimensions pour les index de type R-Tree est en production depuis la version 9 d’Oracle.

Tableau 3 : Comparaison des deux grands types d’index:

Quad-tree R-Tree

L’approximation d’une géométrie peut être très fine du fait des 2 paramètres de l’index hybride

L’approximation d’une géométrie ne peut pas être bien réglée car les R-Tree se basent sur la MBR

Difficulté de réglage Création facile

Peu sensible aux mises à jour Peut devenir instable en cas de nombreuses mises à jour (dans ce cas il faut augmenter le paramètre RTR_PCTFREE)

Peut être étendu à 3 voir 4 dimensions

Plus rapide pour les requêtes de type SDO_NN (plus proches voisins)

Les caractéristiques d’un bon index de type Quad-Tree sont les suivantes:

• Environ 200 tuiles pour une zone de requête

• Environ 10000 tuiles pour l’étendue du calque

• Présence de tuile à l’intérieur des géométries Un index hybride est préférable dans les cas suivants :

• Si un calque possède un mélange de petites géométries couvrant une petite surface et de grands polygones couvrant une grand surface (ie. lorsque l’écart type des aires des polygones est important). Ainsi le nombre de tuile par géométrie reste constant ce qui limite l’augmentation de la taille de l’index.

• Si des requêtes de type jointure doivent être réalisées entre 2 calques dont la différence des SDO_LEVEL optimum est supérieure à 4, alors les performances seront sans doute meilleures en diminuant le SDO_LEVEL du calque ayant le SDO_LEVEL le plus élevé, puis en créant un index de type Quad-Tree hybride en lui donnant une valeur non nulle pour SDO_NUMTILES.

Une bonne valeur de départ pour le SDO_NUMTILES est :

SDO_NUMTILES = nb de ligne de l’index QTF / nb de ligne de la table

Un certain nombre de fonctions a été mis en place au sein des serveurs spatiaux afin d’aider la mise en place des index :

• SDO_TUNE.ESTIMATE_INDEX_PERFORMANCE Estime la sélectivité d’un index en fonction du niveau de tuilage.

• SDO_TUNE.ESTIMATE_TILING_LEVEL Détermine une valeur du niveau de tuilage pour un index Quad-Tree

• SDO_TUNE.ESTIMATE_TILING_TIME Estime le temps de création de l’index (en s)

• SDO_TUNE.ESTIMATE_TOTAL_NUMTILES Estime le nombre total de tuile pour un calque

La création d’un index fait donc appel à l’analyse des données à indexer mais aussi de leur utilisation (fréquence des mises à jours). De plus la création d’un index est une tâche

relativement longue, coûteuse en ressource matérielle (CPU et mémoire) qui augmente avec la quantité de données et avec le niveau de tuilage pour les index de type Quad-tree.

L’indexation spatiale est une des étapes les plus importantes de la mise en place d’un serveur spatial. Trois types d’index présentent des caractéristiques différentes :

• Le type R-Tree basé sur les MBR, semble être le plus simple à mettre en place et le plus performant dans la majorité des cas. Son problème majeur réside sans doute dans son instabilité face aux mises à jour.

• Le type Quad-Tree Fixe dont le paramètre principal est le niveau de tuilage présente de bonnes performances. Il est à conseiller pour les calques présentant des géométries aux caractéristiques (surface et répartition) assez homogènes. La précision s’obtient en augmentant le niveau de tuilage et donc en augmentant parfois considérablement la taille des tables d’index.

• Le type Quad-Tree hybride est à utiliser dans des cas particuliers (calques non homogènes).

Afin de choisir les meilleurs paramètres d’indexation, un certain nombre de fonctions d’estimation aide à la mise en place de ces index et permet d’évaluer leurs performances pour l’accès aux données.

2.3 Relation spatiale et analyse spatiale

L’analyse spatiale des données directement au sein des serveurs spatiaux permet de s’affranchir du logiciel SIG. D’après Alain Prallong (Realia), « 80% des données manipulées par les organisations, qu’elles soient publiques ou privées, sont localisées dans l’espace ».

L’implémentation de ces fonctions d’analyse spatiale permet d’étudier des phénomènes géographiques sans faire appel nécessairement à une visualisation cartographique.

L’implémentation des méthodes d’analyse spatiale a été définie dans l’OGC Geometry Model. Les principaux opérateurs spatiaux seront présentés via la description des opérateurs implémentés dans différentes applications dont SVGib dont l’interface a été présentée dans la section 1.4.2.e.

2.3.1Analyse des relations spatiales grâce aux modèles des 9 intersections

De manière générale, les relations spatiales sont séparées en trois catégories :

• les relations spatiales de distance

• les relations spatiales d’orientation

• les relations spatiales topologiques

Cette section décrit les différents types de relation spatiale réalisable au sein des serveurs spatiaux. Ces relations ont été définies dans l’OGC Geometry Model. De plus des exemples de syntaxe des commandes SQL pour Oracle Spatial montreront les possibilités d’analyses offertes au sein des SGBD.

Documents relatifs